lunes, abril 21, 2008

Para donde va la micro: ¿En qué me especializo?

Respondiéndole a Malw Dark, en relación a que lenguajes escoger para especializarnos debo decir que no es precisamente un tema simple. Esto es ya que el mercado de la informática tiene períodos erráticos donde muchos piensan en la muerte de este o aquel lenguaje.

Sin embargo mi respuesta natural a la pregunta es una sola:
Aprendan y especialízence en JAVA

Mis argumentos van básicamente sobre una cosa de mercado. Java ha demostrado ser un lenguaje sólido, tanto técnico, práctico como formalmente, su penetración en el campo de las TI es no despreciable y tienes algo cuyo valor agregado supera a todos los demás lenguajes: Al funcionar sobre máquinas virtuales es multiplataforma. No se vuelve necesario reescribir o recompilar el código para cada sistema operativo o cada máquina en la que quieras usar tu programa.

Muchos dirán que precisamente el hecho que la característica de ser multiplataforma de Java sea basado en máquinas virtuales hace que Java sea un lenguaje lento y pesado.
  • Lento: Cada benchmark dependerá de quien lo haga. Yo he conseguido excelente resultados para operaciones muy pesadas. He logrado optimizaciones increibles usando rutinas de la librería Javalution, así que debo discrepar. Probablemente en un 386 las rutinas en Assambler muestren un rendimiento insuperable, pero seamos realistas. La idea es demostrar que nuestra mejor solución es precisamente mejor en nuestro contexto.
  • Pesado: Evidentemente más pesado que Assambler, pero no más que C (consideremos la cantidad de librerías que necesitamos para hacer cualquier cosa), para que hablar del infierno de DLLs y dependencias de cualquier Visual .
    .NET , claro, el framework pesa tanto como la JRE de Java, que por lo demás cada vez es más liviana.
Tengo como rebatir casi cualquier argumento.

Pero como casi todo lenguaje, por si solo no es mucho tampoco. Se vuelven indispensables hoy en día conocimientos avanzados en HTML, Javascript (de hecho miren las librerías de JQuery), SQL y XML (idealmente con XSL).


La especialización se vuelve cada vez más atractiva para los empleadores, quieren tener expertos, lamentablemente buscan el experto en TODO y que además les cobre barato. Háganse valer, profesionales mediocres sobran, pero de los buenos hay pocos.


Muchos hubieran agregado Ruby y Python. Si bien es cierto son lenguajes robustos y muy poderosos, la realidad del mercado informático chileno apunta hacia Java. Cada cual en su propio país puede darse cuenta hacia donde va el mercado.


PHP, ASP, ASPX y lenguajes para web son algo por lo que todos debiéramos pasar. El problema es que en términos prácticos no aplicas casi nada de lo que has aprendido, modelamiento, programación estructurada u orientada a objetos. Salvo muy curiosas y raras prácticas que debo confesar no haber visto de manera cercana, los lenguajes para web son enemigos de los desarrollos bien hechos. Hay que conocerlos y dominar sus aspectos clave, pero no necesariamente convertirlos en nuestra especialidad.
No agregue JSP, pués lo considero incluido en Java.


Yo digo Java, vean ustedes que les dice una vista al mercado.
Espero que mi respuesta les dé una buena idea. Y como esto parece que funcionara sigamos con las preguntas.

3 comentarios:

Paula Edith dijo...

Gracias por tu respuesta.
Ya había pensado en java (me encanta eso de que pueda ejecutarse en distintos sistemas operativos) pero está el problema de la parte visual: se hace muy engorroso programarla. ¿Hay alguna buena herramienta que sirva para simplificar esa parte de la tarea?

José Ignacio Santa Cruz dijo...

Nuevamente respondiéndote, ya que por lo visto eres la única que lee este blog.

La herramienta "por defecto" para desarrollar GUIs (interfaces gráficas de usuario) es Netbeans, gratuita, relativamente simple, muy completa.

A mi personalmente me gusta más Eclipse, pero al final es cosa de gustos. Yo vengo de la vieja escuela donde las interfaces gráficas las hacíamos 100% a mano.

Si la limpiza y manejabilidad del código generado no te importa demasido usa Netbeans, en caso contrario prende a usar Eclipse con las bondades de la libreria MigLayout.

Paula Edith dijo...

Ya me lo descargué. Se ve interesante, y el eclipse ya lo se manjar (por lo menos lo basico) así que no creo que tenga ningún problema.
El netbeans lo he oído nombrar pero no tengo ni idea que es XD y algo que suena a miniaplicación red no me llama mucho la atención, me gusta más el ámbito de las aplicaciones comunes.

PD: probablemente la ausencia de lectores se deba al tiempo de inactividad del blog, podrías hacer un poco de publicidad o esperar a que aparezca otro. De todos modos, hay mucha gente vaga que lee los blogs de los demás y no comenta. Conozco varios.