domingo, junio 24, 2007

¿Qué lenguaje escoger?

Cada año, cuando preparo Programación Avanzada y Arquitectura Cliente Servidor, me fijo en las estadísticas del Índice Tiobe.



Posición Lenguaje
Java
C
C++
(Visual) Basic
PHP
Perl
C#
Python
JavaScript
Ruby
PL/SQL
SAS
Delphi
D
Lisp/Scheme
ABAP
Ada
FoxPro/xBase
COBOL
Fortran



Al menos aquí en Mendoza, Educación Superior, a la fecha no exige lenguajes concretos para enseñar programación en la carrera de Analista en Sistemas. Esto otorga bastante flexibilidad al docente cuando quiere impartir Algoritmos, Orientación a Objetos u otras materias basadas en lenguajes de programación.

De esta manera, ante el abanico de lenguajes, el docente puede escoger el que mejor se adapta a su materia.

(Aunque en la practica el docente sigue el axioma del programador:
tiende a trabajar en el lenguaje que mejor conoce).

Luego, el dilema pasa por otro aspecto: ¿cuál es el lenguaje correcto?

Sin ánimo de crear un LanguajeWar, están los lenguajes que deberían aprender los alumnos:
  • C / Eiffel
  • Python
  • Ruby
  • PHP
... y los lenguajes que las empresas exigen
  • Java
  • Visual Basic
  • C#
  • PHP / ASP
La primer lista los prepara mejor para su futuro. La segunda lista les aporta salida laboral rápida. Incluso tengo alumnos que se pagan sus estudios programando pequeños sistemas.

Tengo los Moodles totalmente desplegados para arrancar Java en el segundo cuatrimestre. Para que los alumnos aterricen suavemente, y no odien los objetos de entrada, también preparé dos semanitas en Ruby, donde con unas pocas lineas utilizando irb, pueden jugar con objetos a gusto sin tener la sensación de que van volarse una pierna.

Los chicos se han acostumbrado a utilizar Linux en las computadoras, y MySQL con PHP en el primer cuatrimestre, de modo que lo primero que me van a preguntar es si pueden seguir usando sus mismas bases. También tengo algunos que vienen de Visual Basic, y añoran las conexiones simples.

Por desgracia con Java no me alcanzan las horas curriculares para enseñar JSP + Hibernate o equivalente, pero con (cualquier otro lenguaje) es cuestión de minutos.

A todo esto, me preocupa que en el índice Tiobe, C# viene subiendo, lentamente. Es casi comprensible: tiene una sintaxis muy seductora, opera en forma horizontal con otro lenguajes, toma lo mejorcito de C++ y de Java. Incluso para enseñar objetos es interesante.

¿Cuántas posibilidades existen que si tengo que enseñar C# algún día, predisponga a mis pollos a seguir siendo esbirros del framework .NET ?

Me di una vueltita por el proyecto Mono, para ver que tanto ha mejorado con el tiempo. En pocos minutos tenía andando algunos programitas simples. MonoDevelop 0.12 todavía esta verde en cuanto al debugging, pero realmente promete mucho, incluso para programar en la mayoría de los lenguajes conocidos.

En las computadoras del Instituto está instalado only Ubuntu, de modo que veamos si podemos accesar MySQL mediante C# utilizando Mono.

1 comentario:

John Ortiz Ordoñez dijo...

Hola! Muchas gracias por la información. La encuentro organizada y significativa. En el momento me estoy dicidiendo por un lenguaje de programación, y por eso que consulte este sitio, espero que en pocos días ya me haya decidido. Hasta pronto!