2008/08/13 |
Hoy, de camino a la Universidad, me topé con uno de mis profesores. Hablamos de varias cosas: maestrías, salarios y lenguajes de programación. Específicamente, hablamos de cantidad. ¿Cuántos lenguajes debería de conocer un Ingenierio en Computación?
Eso me puso a pensar en una cita de Alan Perlis: A language that doesn’t affect the way you think about programming, is not worth knowing. Así que la respuesta a la pregunta anterior es muy sencilla: por lo menos un lenguaje perteneciente a cada uno de los paradigmas más importantes.
Por lo tanto, según mi muy humilde opinión, lo más recomendable es saber:
Cada uno de los paradigmas arriba mencionados te obliga a pensar de manera distinta. La posible excepción son los lenguajes de scripting, que generalmente tienen características de los lenguajes estructurados y/u orientados a objetos; sin embargo, la capacidad que tienen para manejar texto, flujos y programas a muy alto nivel los hace lenguajes muy interesantes y valiosos.
Actualización (2008/11/24): No he mencionado otra característica que hace que la programación con los lenguajes de scripting sea distinta: (casi) todos son tipeados dinámicamente, lo que al principio causa mucha confusión para los que hemos programado en lenguajes tipeados estáticamente (C, Java, C#, etc.); además, debido a esta característica, hay ciertas cosas que debemos tomar en cuenta a la hora de escribir nuestros programas, como el hecho de que es perfectamente posible leer una cadena y almacenarla en una variable que nosotros habíamos estado usando como entero. Además, generalmente tienen estructuras y sintaxis que hacen la programación mucho más fácil y rápida; libran al programador de muchos detalles de implementación.