Categoría: Professionals

Grado de dificultad: 3 (El presente artículo – más bien filosófico – está destinado a gente que sabe de programación, los demás necesitarán un “traductor” [AKA un programador] para explicarles).

Columnista: Roberto

Nuestros Dummies se sentirán abandonados por el presente artículo, definitivamente reservado a programadores. Estudiaremos para ellos una forma de introducción a esta apasionante, aunque difícil, disciplina.

La programación se puso de moda

Los programadores conocen más de un lenguaje

Durante mi carrera de ingeniero electrónico, practiqué varios lenguajes de programación:

  • Fortran, hace, entendiblemente, mucho tiempo, y de manera más académica que productiva,
  • Pascal, que me interesó por sus principios de estructuración. En la actualidad, podría probar Delphi, si su licencia no fuera tan costosa,
  • BASIC, de varios sabores, las últimas oportunidades siendo el genial VBA y el elaborado VB.Net de Visual Studio,
  • SQL, en el marco de un estudio involucrando una base de datos,
  • Y, también, conocimiento indispensable, trabajé en lenguaje ensamblador, sobre microcontroladores NEC, National Semiconductors, y Motorola.

Lo anterior solo es un típico recorrido de ingeniero (un tanto vintage, por cierto).

Una reciente obsesión por la programación

El recuento anterior solo me hace un humilde miembro de una gran fraternidad.

Probablemente han notado una extraña y reciente obsesión con los lenguajes de programación. El siguiente artículo es una de las múltiples manifestaciones de esta compulsión:

Which programming languages are most popular now (and what does that even mean)?

Seamos claros: los lenguajes de programación son muchos … Y comparten muchos principios cuando no son simples copias unos de los otros.

Ejemplo no exhaustivo de listas de lenguajes de programación - Origen ZDNET

Eso quiere decir que un programador que ya desarrolló aplicaciones/macros/API’s/ActivX’s con un lenguaje, fácilmente se adaptará a otros.

Y el elemento clave de una programación no es su lenguaje sino su propósito. Sin un enfoque sobre un proyecto particular, el conocimiento de un lenguaje se quedará sin servir.

Los lenguajes son como los idiomas … son extranjeros

Resulta que los artículos sobre lenguajes de programación parecen olvidarse de estos hechos y reglas … Por una simple y única razón: están redactados para un público que nunca escribió código.

Ocurre con la programación lo mismo que con los idiomas. Los cursos de idiomas suelen ser temas de discusión muy populares … Entre personas que solo hablan su idioma nativo.

No hay, en la frase anterior, ningún desprecio. Durante siglos, el conocimiento de “otros” idiomas no era requerido. La gente vivía en un entorno de alcance limitado, en el cual todos hablaban la misma lengua.

Es más: los extranjeros que llegaban eran mirados con desprecio por no conocer los modismos locales.

Un conocimiento que se puso de moda

Aprender un nuevo idioma solo era una leyenda, y fingir conocer unas palabras extranjeras bastaba.

Lo mismo está ocurriendo en la actualidad con la programación. Quieren convencen a los principiantes de que escribir tres líneas de código alrededor de una API es programar.

Toma más tiempo que eso, y, notablemente, requiere una formación inicial a los principios de programación.

Es donde empieza el engaño (¿y autoengaño?). En la actualidad, nos hablan de los lenguajes de moda, de “nuevos y mejores lenguajes”.

Traducción: que permiten a sus “creadores” lucrarse con los cursos que se venderán sobre el tema.

Y suelen elaborar listas por orden de popularidad …

Lista de los lenguajes preferidos según ZDNET - Origen ZDNET

Lenguaje ensamblador, el olvidado

Listas por popularidad

¿Qué propósito tienen tales listas?

  • ¿Avergonzar a los que no encuentran su lenguaje habitual en ellas?
  • ¿Generar un sentido de pertenencia entre jóvenes desarrolladores?
  • ¿Crear una clientela captiva?

Creo que se trata de una combinación de todas las anteriores.

Aun así, son Python y Javascript los que encabezan generalmente las listas (son típicos lenguajes de desarrollo de aplicaciones web).

Significa que el impacto de la “Inteligencia Artificial” (habría que encontrarle un nombre más apropiado) no se siente (¿todavía?)

El alto nivel es indisociable del bajo nivel

De acá, la pregunta final:

Los nuevos lenguajes son todos de alto nivel. AKA están muy lejos del lenguaje de las máquinas.

¿Quién, entonces todavía está dispuesto a programar en bajo nivel (ensamblador)?

Probablemente muy pocos, y es muy desafortunado: las instrucciones en lenguaje de alto nivel se traducirán en códigos máquina … Y no se tiene idea de lo ineficiente de sus resultados.

Ejemplo: un programa que escribí (hace mucho tiempo) pesaba 1Kbyte en memoria. Su versión funcionalmente idéntica reescrita en C++ ocupó 70 Kbyte … Y se supone que C es el más compacto.

Es decir que, en nombre de la facilidad de escritura, los nuevos lenguajes sacrificaron la eficiencia y la certeza del resultado.

Pero ¿a quién le importa? Debería importarnos.