En este artículo haré una breve reseña de todos los lenguajes de programación que usé alguna vez en mi vida.
Esto no es ni un ránking ni una comparativa. Aquí no vas a encontrar análisis ni benchmarks. Lo que te voy a contar es mi historia con cada uno de estos lenguajes de programación. Cuándo los usé, qué me parecieron en su momento y qué recuerdo general tengo de ellos.
Desde ya, todo el artículo se basa en mi opinión y si por casualidad ofendo a tu lenguaje favorito… madurá. Los lenguajes de programación son solamente herramientas. Nunca te olvides de eso.
¡Comencemos!
Mis lenguajes
BASIC
Cuando era adolescente cayó en mis manos un manual que había comprado mi hermano mayor. Era algo así como Aprende a programar en 21 días de la editorial Sams. Hace poco le pregunté a mi hermano si todavía tenía el libro y me confirmó que sí.
La obra reunía conceptos básicos de programación ilustrando todo con diagramas y con ejemplos de programación… en BASIC.
No tengo un buen recuerdo de BASIC. En realidad, debo ser sincero, no tengo recuerdo cómo era exactamente, aunque debo admitir que en conjunción con el libro, reforcé algunos conceptos que ya conocía.
Hice todos los ejemplos y ejercicios del libro y creo que esa fue toda mi experiencia con BASIC.
Visual Basic
Cuando estaba en la secundaria empecé a tener una obsesión con aprender a programar. Fue así como asistí a un curso presencial que se daba los sábados en Avellaneda.
Así que hacía el sacrificio cada sábado. Me levantaba temprano, me tomaba el 95 y me iba a aprender Visual Basic.
En su momento, el curso me gustó pero el recuerdo que tengo es que fue horrible. Era uno de esos cursos donde se explican temas de programación como si fuera Word o Excel. De hecho, la entidad que dictaba el curso también tenía cursos de ofimática.
Para potenciar mis conocimientos en VB6 (Visual Basic 6) compré un libro que tampoco ayudó demasiado.
Visual Basic es un lenguaje que nunca más volví a tocar. Siempre me pareció horrendo. Todo esto de arrastrar componentes como si fuera un programa de dibujo me parecía una falta de respeto a la programación. Entiendo que en realidad hay mucho más que eso, pero sacarme esa impresión es simplemente imposible.
C
De pie, señoras y señores. El mejor lenguaje de la historia. C es todo lo bueno que hay en el universo.
Aprendí a programar en C por mi cuenta cuando estaba en la secundaria. Tenía un manual impreso que me había conseguido mi hermano uno de esos: «Aprenda X como si estuviera en primero».
Hice un par de ejemplos y algunos jueguitos. Me acuerdo de haber hecho un Space Invaders y el juego de la Serpiente. Empecé un Tetris también pero nunca lo terminé.
C reapareció en mi vida en la universidad. Solo que el nivel era otro. En esta etapa aprendí a dominar los punteros. Vinieron las pilas, listas, colas y árboles. La cosa se puso complicada y tuve que resolver complejos trabajos prácticos. Pero me fue muy bien porque tenía un dominio importante del lenguaje.
Mis conocimientos de C se potenciaron con la lectura de El Lenguaje de Programación C, de Brian Kernighan y el gran Dennis Ritchie.
Por ese entonces usaba el IDE Anjuta en Ubuntu y me sentía todo un groso por programar en C y en Linux. Y lo era, claro.
C++
C++ lo tuve que aprender a las corridas para una asignatura de la universidad. Jamás logré entenderlo en su totalidad. De hecho, creo que si no fuera por los compañeros de grupo que me tocaron, difícilmente hubiera aprobado el complejo trabajo práctico para el cual tuve que aplicar este lenguaje.
Yo venía contento de usar Java y de trabajar con PHP y JavaScript y esto era algo completamente diferente. Acá había herencia múltiple y cosas que no recuerdo ahora pero que nunca las pude comprender del todo dado el tiempo que tuve para aprenderlo.
Para hacer las cosas más difíciles, la aplicación para la cual tuve que aplicar C++ incluía manejo de streams y algo de álgebra.
Sé que C++ es uno de los lenguajes más importantes que existen así que no voy a tirarlo abajo. Pero mi experiencia con este lenguaje fue algo traumática.
C#
Hace unos años hice un impass en mi carrera como programador. Me dediqué casi un año entero a generar contenido para mis blogs. Sin embargo, nunca solté el código del todo.
Por esa época se me dio por aprender algo de Unity para hacer videojuegos y esta tecnología utiliza C#. Seguí los tutoriales básicos y algunos más que encontré en YouTube.
Debo decir que me gustó. ¿Por qué no seguí? Porque el desarrollo de videojuegos me parece una disciplina enorme y yo ya estoy volcado al desarrollo web.
De hecho, poco tiempo después de haber probado Unity y C# retomé mi carrera de programador web que comenzó con un fuerte repaso de PHP y JavaScript.
Java
Con Java aprendí programación orientada a objetos en la universidad. Por eso, cada vez que pienso en objetos, en el fondo, pienso en Java.
Mi experiencia con esta tecnología fue hermosa. La utilicé en al menos dos o tres asignaturas de la facultad. Codeaba en Eclipse, corría tests unitarios con jUnit, usaba Ant para deployar, hacía diagramas UML y… era feliz.
No sabría decir por qué, pero no seguí usando Java fuera de la universidad.
JavaScript
Con JavaScript tuve tres etapas.
Primera Etapa
Mi primera etapa fue a finales de los noventa cuando JavaScript era un lenguajecito que acompañaba al HTML para darle algo de vida. Recuerdo leer y releer un ejemplo en JavaScript (que estaba en un libro… de Java) y no terminaba de entenderlo.
Así y todo aprendí a usar el lenguaje y lo utilicé para hacer algunos programas básicos que me permitían resolver de forma más rápida los ejercicios de Teoría de Circuitos de la secundaria. Para ello, programé una serie de scripts que me resolvían matrices con el método de determinantes.
Segunda etapa
La segunda etapa con JavaScript fue seguramente la más extensa. Y fue la etapa en la que este lenguaje fue para mí un complemento para PHP, el lenguaje de servidor que usaba.
Aprovechaba JavaScript sólo del lado del cliente y, en general, a través de librerías como MooTools o jQuery. En contadas ocasiones tenía que recurrir al vanilla JavaScript.
Con JavaScript cargaba campos de formulario de forma dinámica, abría ventanas, hacía algunas animaciones y realizaba peticiones HTTP.
No había reactividad así que el proceso para hacer todo esto era increíblemente tedioso.
Tercera etapa
Mi tercera etapa comenzó cuando empecé a estudiar Node.js que había sido una cuenta pendiente para mí. Por uno u otro motivo nunca me había hecho un hueco para explorarlo.
Node.js me abrió el camino al ecosistema de JavaScript. Del backend me fui al frontend. Ya había visto algo de Vue.js pero volví con otro enfoque y luego pasé a React.
Actualmente JavaScript es el lenguaje que más uso, desplazando a PHP que quedó detrás.
Si tengo que ser sincero, JavaScript no me parece un gran lenguaje de programación. Tiene un montón de incoherencias y aspectos que a esta altura me parece que ya no se pueden mejorar. Sin embargo, me otorga la libertad que necesito para trabajar con el paradigma que quiera y resulta sumamente práctico.
TypeScript
¿Vale poner a TypeScript en esta lista? TypeScript es un supertipo de JavaScript, lo que significa que es JavaScript más el tipado del cual carece.
TypeScript no es difícil de aprender una vez que sabés bien JavaScript, ayuda a ordenar los proyectos y a reducir los bugs. Pero por otro lado, por momentos se genera código críptico que se hace difícil de leer.
No sabría cómo explicarlo realmente, pero en los últimos tiempos he comenzado a pasar todos mis proyectos de JavaScript a TypeScript. Es como si no pudiera soportar que queden escritos en JavaScript.
PHP
PHP es el lenguaje que me ha dado de comer durante al menos 15 años. Interpretado y no tipado, odiado y amado. Por supuesto que yo le tengo un cariño especial.
PHP tiene un ecosistema impresionante de librerías, frameworks y, especialmente, CMSs. El más popular, por supuesto es WordPress a quien también le debo un montón.
Pero también están Drupal, Joomla, OpenCart, Magento, PrestaShop, Laravel, CodeIgniter, Symfony y Moodle. Cada uno de ellos es un mundo aparte y tiene su gran comunidad.
Los que critican a PHP no tienen idea de PHP. Deben haber visto código de 1998 y piensan que el lenguaje nunca evolucionó. Actualmente, PHP8 combinado con Laravel puede ser una gran opción para desarrollar aplicaciones web.
Hace 15 años que vengo escuchando que PHP está muerto, pero ahí sigue estando, actualizado, cada vez más seguro y cada vez más rápido. El lenguaje de moda que te decían que había que aprender hace 10 años desapareció y PHP sigue ahí, bancando la parada. Y a mí me siguen llegando ofertas de trabajo vinculadas.
Si bien PHP no es más mi tecnología principal, me sigo manteniendo al tanto de sus actualizaciones y lanzamientos. No lo relegué porque no me gustara más. Simplemente, 15 años con la misma tecnología es demasiado para cualquier programador. Hay que ir evolucionando y cambiando para no aburrirse.
Prolog
En la universidad, alrededor del 2009, cursé una materia llamada Inteligencia Artificial que no era la gran cosa pero tenía algunos temas interesantes.
Los ejercicios y los trabajos prácticos de esta asignatura se resolvían en Prolog, un lenguaje que nunca me gustó. Así y todo lo aprendí y hasta rendí un examen que aprobé con muy buena nota.
Assembler para microcontroladores
En la escuela secundaria estudié electrónica y en una de las asignaturas nos presentaron los microcontroladores. Se trata de pequeños chips que pueden ser programados.
En ese momento se me abrió un mundo de posibilidades, ya que uno de estos microcontroladores podía ser conectado a optoacopladores o a relés para manejar luces, motores o cualquier otro dispositivo que se le conectara.
El microcontrolador que usé fue el popular PIC16F84 y el código de programación era un Assembler que no recuerdo muy bien pero que en su momento estudié bastante.
No hice demasiados programas con este Assembler pero recuerdo haber hecho e implementado el código de un semáforo para un trabajo práctico.
Assembler IBM 370
Este Assembler para antiquísimos mainframes lo aprendí para la asignatura Organización del Computador de la Facultad de Ingeniería de la UBA. Al principio me costó mucho pero, a la larga, logré dominarlo. Mi trabajo práctico fue una versión simulada de una partida de truco.
Para mí, aprender este lenguaje fue un despropósito total y una pérdida de tiempo absoluta. Un lenguaje completamente obsoleto que se complementaba con ejercicios de… cintas magnéticas.
Y eso es todo lo que tengo para decir al respecto.
SQL
El lenguaje SQL lo fui aprendiendo de a poco, cuando comencé a trabajar con PHP, allá por el 2004 o incluso un poco antes. Para ello fue fundamental el sitio web MySQL con Clase, que por lo que veo sigue existiendo, pero con un formato actualizado.
Yo no me considero un experto en base de datos, pero he tenido bastante experiencia creando y usando bases. Me tocó trabajar con MySQL y Oracle, entre otras.
Hace un año más o menos decidí hacer un curso de SQL porque quería formalizar un poco mis conocimientos. Tenía la idea de que en realidad no sabía bien y que tocaba un poco de oído, lo cual me parece poco profesional.
Al terminar el curso me di cuenta que esto no era así. Tenía y tengo aceptables conocimientos de este lenguaje. Al menos en lo práctico. De todos modos, creo que puedo mejorar mucho más.
Bash
¿Puedo considerar Bash como lenguaje de programación? Lo voy a contar por lo que lo he sufrido. Lo utilicé cuando trabajaba en el departamento de sistemas de una empresa. El objetivo era correr algunos scripts de mantenimiento para servidores.
Lo que recuerdo de Bash es que cada línea de código escrita era un martirio. Un espacio de más o uno de menos podía romper todo.
No obstante, como ocurre con algunos lenguajes que cuestan, el hecho de ver el programa funcionando da una sensación de poder increíble.
Assembler 8086
Este Assembler lo usé en dos etapas diferentes. Primero, en la secundaria. Y luego, en la universidad. No sé bien por qué, pero las versiones de Assembler no eran exactamente iguales. Quizás el que usaba en la secundaria estaba de alguna forma simplificado.
El Assembler de IBM370 que te conté antes nunca me gustó pero al menos tenía algo de sentido. Este 8086 simplemente no me gustaba y nunca terminé de aprenderlo bien.
El futuro
Quiero seguir aprendiendo nuevos lenguajes y en la lista hay varios. El siguiente es Python. Compré un curso y en cuanto me libere de los que estoy haciendo ahora, seguramente lo empiece. Hace muchos años que quiero aprenderlo.
Hay otros dos que le siguen atrás y estos son Go y Ruby. En el caso de Go, por la novedad y lo que me han recomendado algunos colegas programadores. Por el lado de Ruby, simplemente por el respeto que le tengo a la tecnología y a su comunidad.
Más contenido en Crónicas Freelancer
Esta ha sido mi historia con los lenguaje de programación que usado a lo largo de mi carrera. Espero que haya sido de tu interés.
No te enojes si hablé mal de una tecnología que te gusta mucho, o si hablé bien de una que no te gusta. No te olvides que los lenguajes de programación son solamente herramientas.
Te invito a que recorras el blog para descubrir más entradas sobre tecnología, programación, viajes y otros temas de los que suelo escribir.
Si estás buscando hosting web o servicios en la nube para tus apps, te recomiendo Digital Ocean. Seguí este enlace para obtener US$ 200 de crédito para usar en un periodo de 60 días.
Seguime en las redes. Estoy en X, en Instagram, en GitHub y seguime en LinkedIn si querés también. Suscribite al blog y recibí las novedades en tu correo electrónico.
Gracias por tomarte el tiempo de leerme.