CIUDAD DE MÉXICO (proceso.com.mx).- La manera más sencilla de crear un lenguaje de programación se dio cuando una serie de usuarios de las primeras computadoras se dieron cuenta de que tenían que echar a andar los sistemas a través de una serie de interruptores. De ahí nació la idea de crear un lenguaje que hiciese todas estas tareas monótonas, las cuales se realizaban todos los días.
Los primeros lenguajes de programación eran muy rudimentarios y tenían instrucciones para modificar registros, mover datos de un lado a otro de la memoria y hacer algunos cálculos. Pero esto eventualmente llevó a la creación del primer intérprete, el cual en una sola instrucción (un código numérico), se abstraía las ideas de mover un pedazo de memoria o hacer un cálculo específico.
Con el tiempo y la llegada de los primeros microprocesadores, se empezaron a crear intérpretes que hacían las tareas de los programadores de manera cada vez más simples.
Un primer intérprete, que fue casi una obligación en las primeras computadoras, fue el lenguaje BASIC, creado en Dartmouth College (https://en.wikipedia.org/wiki/Dartmouth_BASIC), y que ocupaba poca memoria, pudiendo así escribir una serie de programas ya en un “alto nivel”, sin tenerse que ocupar de registros internos de los procesadores.
Aunque fue una gran idea, pronto se entendió que los programas interpretados, que tenían que analizar cada instrucción del programador (aunque ya la hubiese analizado antes), eran muy lentos. Y bueno, era lo que había y ese era el estado del arte de las computadoras.
Los compiladores
Pasaron algunos años, las computadoras incrementaron los recursos disponibles y de pronto surgieron los compiladores. Estos programas tomaban el código fuente, es decir, el código que escribían los programadores, y lo convertían –usando un compilador– en el equivalente del programa escrito, pero a bajo nivel, en código de máquina.
Ya no se necesitaba, pues, hacer la interpretación de cada instrucción una y otra vez. El compilador traducía todo y, si el software estaba bien escrito, entonces se ejecutaba en la computadora.
La diferencia de velocidades entre código interpretado y compilado era un cambio de velocidad, a favor del código compilado de 20 o más veces el tiempo de ejecución del código interpretado.
En pruebas relativamente informales, la mayoría de los lenguajes interpretados y compilados hoy en día no presentan estas diferencias del pasado. Sí, siempre el código compilado suele ser más veloz, pero tal vez la velocidad de los intérpretes haga que la diferencia ya no sea de más de 20 veces, sino de unas dos o tres veces a lo más.
La elección del lenguaje
El código interpretado tiene algunas virtudes, por ejemplo, el poder analizar lo que va pasando línea por línea, de manera muy sencilla. Y sí, los lenguajes compilados tienen también ya herramientas para esta misma tarea, aunque son mucho más complicadas de usar.
¿Qué lenguaje elegir, ya sea para aprender a programar o a usar en sus tareas cotidianas? La realidad es que hay que irse no sólo por las características de intérprete o compilador, sino con las posibilidades que los lenguajes ofrecen. Hoy, por ejemplo, Python o C son dos opciones interesantes para aprender a programar, pero como todo, hay que aplicarse y estudiar, hacer los ejercicios para entender lo que hacen las instrucciones.
La programación –hay que decirlo– requiere de gente preparada y especializada y hoy en el mundo hay mucha oferta para dedicarse a programar computadoras. Es una carrera que desde hace más de 20 años promete ser de las mejores en términos profesionales.