miércoles, mayo 03, 2006

Sobre Lenguajes de Programacion y otros demonios

Hace mucho tiempo que no escribia en mi blog. Diversos motivos me llevaron a esto, en especial que ahora me encuentro trabajando a tiempo completo en TUMI Labs.
Dado que mi labor principal es la de programador, he tenido contacto con diversidad de lenguajes de programación asi como plataformas.
En este pequeño artículo paso a revisar algunos de estos dando sus pro y contras asi como algunas recomendaciones.

Java. El primer lenguaje de programación orientado a objetos que aprendí, es por eso que lo considero como mi lenguaje materno (además que me hizo ganar un concurso!).
Pros:
  • Facilidad de aprendizaje
  • Gran cantidad de librerias
  • Portabilidad (!!)
Contras:
  • Al ser un lenguaje que necesita un compilacion intermedia (por su JVM), suele ser lento, aunque luego de la primera compilacion, los tiempos decrementan considerablemente.
Mi recomendación es que si tienes que programar una aplicacion de tiempos criticos, utilices la extension que te da el Java con su Java Native Interface (JNI) wrappeando codigo C, en otro artículo explicaré mas sobre eso.

ASP.NET (VBScript y C#). No hablo del ASP (no en .NET) porque si bien es cierto he programado algo utilizando VBScript, la forma de codificación no permite un buen mantenimiento en el futuro.
Con el lanzamiento de la plataforma ASP.NET, se trató de darle una mejor forma utilizando el patrón MVC (Model-View-Controller).
Pros:
  • Desarrollo rápido y facil diseño de interfaces gráficas.
  • Comunicación perfecta con componentes de windows.
Contras:
  • Muy amarrado a la plataforma. Se necesita compilar las fuentes en cada entorno donde se desea instalar la aplicación.
  • Sus muchas facilidades que brinda quitan libertad a los programadores (hay veces que se necesita algún artificio para aumentar la eficiencia).

C/C++. Desde la primera vez que me enseñaron C en la universidad, vi un mundo lleno de libertades en la cual podia literalmente hacer de todo. En este lenguaje realicé mi primer videojuego (al cual llame originalmente Navecitas).
Pros:
  • Manejo flexible de punteros. Se puede acceder toda a toda la memoria!, no solo la asignada a la data ni al heap.
  • Eficiencia y rendimiento al máximo. Bueno para aplicaciones de alto rendimiento (juegos, sistemas críticos, servidores, etc.)
Contras:
  • Difícil de comprender (synctree), aunque en la version C++, la orientacion a objetos mejoraba considerablemente el entendimiento.
Estos se podrían decir que son los 3 lenguajes mas importantes en el momento en que se escribo este artículo. Como les dije, yo me quedaría con Java. Me parece un lenguaje muy estándar, portable, de fácil extensibilidad y de fácil sintaxis.

No he hablado de los lenguajes script (python, ruby, javascript, etc) ya que pienso dedicarle un artículo completo a cada uno dada su importancia. La mayoría no los considera como lenguajes de programación serios, gran error, el futuro va por ahi, y adelantándoles un cachito de mi próxima entrada... javascript es el lenguaje del futuro, asi... hay q ir aprendiendolo!

0 comentarios: