El zoológico de los lenguajes de programación:¿cómo empezar a programar?

A pesar de lo que digan los más apasionados, no hay un único lenguaje de programación de alto nivel que sea adecuado para resolver absolutamente todos los problemas. Características intrínsecas a cada lenguaje, como el paradigma sobre el que se basa (funcional, procedimental, lógico) o el sistema de tipado que utiliza (estático, dinámico, fuerte), pueden hacerlo más o menos adecuado para resolver problemas de ciertas clases. También, hay factores externos importantes, tales como la calidad y disponibilidad de librerías y herramientas de desarrollo.  Esta combinación de factores ha hecho que algunos lenguajes hayan sido más usados que otros, independientemente de qué tan interesantes y revolucionarias fueran las ideas que propusieron.

Dentro del zoológico de lenguajes de programación encontramos entonces, desde clásicos como Fortran, LISP, Cobol y Prolog, hasta los modernos, ricos y famosos como C, C++, Java, Ruby, Python, Php, C#, Objective-C y JavaScript. A estos hay que sumar una gran cantidad de nuevos lenguajes que aparecen año tras año: algunos han surgido de pequeñas iniciativas académicas (ej. Scala – funcional orientado a objetos sobre la JVM) o personales (ej. Clojure – funcional a lo LISP sobre la JVM), mientras que otros son el resultado de proyectos en grandes empresas (ej. Go y Dart de Google).

Ante tantas opciones y promesas, a muchos nos surge la duda de cuál lenguaje es el siguiente que vale la pena estudiar y utilizar. Y en el contexto de la universidad, la pregunta se transforma en cuál lenguaje vale la pena enseñarle a nuestros estudiantes. Otra pregunta relacionada es cuál lenguaje deberíamos usar para enseñarles a programar por primera vez.

En nuestra universidad, y en muchas otras a nivel mundial, la introducción a la programación se hace con lenguajes orientados a objetos basados en clases (Java / C++). Esto me parece adecuado porque es el estilo de los lenguajes más utilizados en proyectos reales [1] y, según mi impresión, en nuestro país. Otras universidades utilizan C, y hay quienes defienden esta decisión [2] con el argumento de que hay características del lenguaje que permiten desarrollar habilidades importantes que otros no permiten. Finalmente hay universidades que optan por utilizar lenguajes fundamentalmente basados en otros paradigmas, como por ejemplo Scheme o Python [3][4]. Esta decisión responde a dos motivaciones: la primera es que ellos consideran que esos lenguajes y paradigmas son extremadamente adecuados para resolver muchos problemas (más que programación orientada a objetos y lenguajes similares a Java) y que por ende los estudiantes deberían conocerlos; la segunda es que ellos consideran que la exposición a estos lenguajes y paradigmas es enriquecedora, y que probablemente durante sus carreras profesionales los estudiantes no van a tener la oportunidad de encontrarlos nuevamente.

La discusión sobre qué alternativa seguir está activa en todo el mundo y prueba de esto es el proyecto para desarrollar un nuevo lenguaje, Grace [5],  específicamente diseñado para enseñar a programar.

¿Qué paradigma o cuál lenguaje debe usarse para enseñar a programar? No creo que haya una única respuesta correcta, pero sí creo que hay importantes motivos por los cuales todos deberíamos estudiar diferentes lenguajes a lo largo de nuestra formación y del ejercicio profesional. El primero es poder tomar buenas decisiones sobre  cuál utilizar para resolver cada problema. El segundo es poder apreciar y comparar las ventajas y desventajas de cada uno. Esto debería llevarnos a aprovechar mejor las ventajas, y a buscar soluciones para combatir las desventajas.

Sobre el autor
Mario Sánchez Puccini (1 Entrada(s))


Profesor Asistente Universidad de los Andes.

AVISO LEGAL: Los artículos aquí registrados expresan la opinión de sus autores y colaboradores. Este sitio no representa necesariamente la opinión del DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y COMPUTACION ni de la UNIVERSIDAD DE LOS ANDES.


Tweet about this on TwitterShare on Facebook0Share on Google+0Email this to someonePin on Pinterest0

Comentarios

El zoológico de los lenguajes de programación:¿cómo empezar a programar? — 3 comentarios

  1. Vale la pena destacar también ambientes diseñados para la enseñanza de la programación, como son Alice (www.alice.org) o Scratch (http://scratch.mit.edu). En particular, en @Colombia3punto0, la directora actual del programa Alice.org dará una charla y se dará un tutorial sobre la herramienta el jueves 25 de Octubre. Más información en col30.co

  2. Me gusto tu articulo y es bueno comenzar a utilizar estas herramientas que facilitan el aprendizaje de la programacion dado que en mi proyecto de maestria es implementar un AA con la mediacion de las TIC. y estas herramientas que las he referenciado en dicho trabajo.
    Me seria de mucho valor obtener el tutorial que van a dar en col3.0 ya que me es imposible asistir a este evento aunque estoy registrado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 caracteres disponibles