Java es perjudicial para la ingenieros del mañana

Ahora bien, antes de opinar, lo mejor es ir a la fuente directamente y leer el paper original para saber con exactitud que están diciendo estas "eminencias". Encontré el artículo, pero estoy seguro que debido a la extensión .mil de la url que lo presenta, no se puede ingresar directamente. Pero decidí no darme por vencido encontrar alguna forma de ver el artículo. Aquí tienen 2 opciones:

Realizada mi descarga de rabia, pasaré a expresar mi opinión del artículo. Los autores presentan tres tendencias fundamentales de los ingenieros de software actuales y futuros. Concuerdo completamente con estas falencias, especialmente con una presente consecuencia "We are training easily replaceable professional".
Perspectiva personal - experiencia diaria
El otro día me puse a ver unas charlas de Google Developers acerca de Cluster Computing y Map Reduce (por cierto, tengo que escribir de esto y lo recomiendo muchísimo). Varios algoritmos de árboles y grafos, super interesante. Lo malo fue que para resolver un problema, el presentador empezó a hablar de LISP y lenguajes funcionales. Lo único que vi en la facultad de LISP es "QUE ES UN LENGUAJE FUNCIONAL!!!!!". Tengo como pendiente estudiar un poco más de este paradigma, realmente me avergonzó no saber que es el cálculo lamda y cómo maneja las listas este lenguaje.
En ese momento me di cuenta de que no tengo una formación demasiado amplia en cuanto a paradigmas, salvo por la orientación a objetos y funcional. Pero los demás también sirven!!!!
Perspectiva educativa local - Argentina - Córdoba - UTN
Bien, los que cursan o cursaron hasta hace poco en esta universidad, sin duda pueden ver lo "actualizado" que estamos en relación con universidades estadounidenses. Yo tuve la suerte de comenzar en primero y segundo año con C y C++, después aprendí Java por mí cuenta. Desde hace 3 o 4 años se abandonó C y C++ en favor de Java.
Hagamos una comparación sencilla: Como alumno, después de aprender C++ (y ni siquiera en profundidad), aprender Java fue cosa de niños, la verdad. Sin embargo, me doy cuenta como profesor que enseña Java como lenguaje inicial de lo difícil que les resulta a las nuevas generaciones de programadores, realmente complicado. Y la verdad es que esto me pone un poco nervioso. Y ni siquiera estamos hablando de punteros (a.k.a. apuntadores).
Qué quiere el mercado de ti, querido programador?
Salvo que actualmente no estés trabajando, esta pregunta tiene respuesta sencilla: el mercado quiere piezas intercambiables con facilidad, que sepan lo mínimo e indispensable para terminar las altas, bajas y modificaciones usando Struts, Hibernate, Spring, etc. sin saber bien porqué esos requerimientos (tal vez moda, tal vez recomendación de otros desarrolladores, etc).
Ah, por si no te has dado cuenta, las "pieza intercambiable" eres tú, querido desarrollador. Pero este debate con tintes sindicalistas es harina de otro costal y para otra oportunidad.
Para resumir, el mercado no quiere que reinventemos la rueda, si ya está hecho, no hace falta hacerlo de nuevo, lo que también se puede traducir en "No intentar mejorar lo que está hecho", "No innovar", "No pienses mucho", etc.
Si, mucho bla bla, pero cuál es la conclusión de todo esto?
La conclusión no es ni revolucionaria, ni novedosa, ni pro ni en contra Java, C, C++, LISP. Te lo explicaré con un ejemplo:
Hace varios años fui a una entrevista de trabajo, donde me preguntaron cuál era el mejor lenguaje según mi consideración. Mi respuesta fue C++ y nunca me dieron el trabajo. Por supuesto reflexioné sobre el tema durante mucho tiempo y me di cuenta de la mejor respuesta a era: "Depende ¿Qué problema intentas resolver?"
Y que mejor para resolver un problema, que conocer las opciones que tenemos a mano para resolverlo. Estas opciones NO SON LENGUAJES, son PARADIGMAS de programación.
Si el único paradigma de programación que aprendemos es el orientado a objetos, entonces es probable que podamos resolver muchos problemas, pero siempre quedará la duda: "¿Habrá algo mejor?"
Recuerda: "Cuando la única herramienta que tenemos a mano es un martillo, todos los problemas son clavos"
Saludos
Pablo
- Google Caché: pueden seguirlo en este link, pero no hay imágenes (de todos modos no importa ya que las únicas imágenes que aparecen son los 2 "eminentes").
- Estos .mil hijos de "mil" discriminan a los que pueden ver el artículo por la dirección ip, así que usando el querido Anonymouse.org, se puede ver en este link.

Realizada mi descarga de rabia, pasaré a expresar mi opinión del artículo. Los autores presentan tres tendencias fundamentales de los ingenieros de software actuales y futuros. Concuerdo completamente con estas falencias, especialmente con una presente consecuencia "We are training easily replaceable professional".
Perspectiva personal - experiencia diaria
El otro día me puse a ver unas charlas de Google Developers acerca de Cluster Computing y Map Reduce (por cierto, tengo que escribir de esto y lo recomiendo muchísimo). Varios algoritmos de árboles y grafos, super interesante. Lo malo fue que para resolver un problema, el presentador empezó a hablar de LISP y lenguajes funcionales. Lo único que vi en la facultad de LISP es "QUE ES UN LENGUAJE FUNCIONAL!!!!!". Tengo como pendiente estudiar un poco más de este paradigma, realmente me avergonzó no saber que es el cálculo lamda y cómo maneja las listas este lenguaje.
En ese momento me di cuenta de que no tengo una formación demasiado amplia en cuanto a paradigmas, salvo por la orientación a objetos y funcional. Pero los demás también sirven!!!!
Perspectiva educativa local - Argentina - Córdoba - UTN
Bien, los que cursan o cursaron hasta hace poco en esta universidad, sin duda pueden ver lo "actualizado" que estamos en relación con universidades estadounidenses. Yo tuve la suerte de comenzar en primero y segundo año con C y C++, después aprendí Java por mí cuenta. Desde hace 3 o 4 años se abandonó C y C++ en favor de Java.
Hagamos una comparación sencilla: Como alumno, después de aprender C++ (y ni siquiera en profundidad), aprender Java fue cosa de niños, la verdad. Sin embargo, me doy cuenta como profesor que enseña Java como lenguaje inicial de lo difícil que les resulta a las nuevas generaciones de programadores, realmente complicado. Y la verdad es que esto me pone un poco nervioso. Y ni siquiera estamos hablando de punteros (a.k.a. apuntadores).
Qué quiere el mercado de ti, querido programador?
Salvo que actualmente no estés trabajando, esta pregunta tiene respuesta sencilla: el mercado quiere piezas intercambiables con facilidad, que sepan lo mínimo e indispensable para terminar las altas, bajas y modificaciones usando Struts, Hibernate, Spring, etc. sin saber bien porqué esos requerimientos (tal vez moda, tal vez recomendación de otros desarrolladores, etc).
Ah, por si no te has dado cuenta, las "pieza intercambiable" eres tú, querido desarrollador. Pero este debate con tintes sindicalistas es harina de otro costal y para otra oportunidad.
Para resumir, el mercado no quiere que reinventemos la rueda, si ya está hecho, no hace falta hacerlo de nuevo, lo que también se puede traducir en "No intentar mejorar lo que está hecho", "No innovar", "No pienses mucho", etc.
Si, mucho bla bla, pero cuál es la conclusión de todo esto?
La conclusión no es ni revolucionaria, ni novedosa, ni pro ni en contra Java, C, C++, LISP. Te lo explicaré con un ejemplo:
Hace varios años fui a una entrevista de trabajo, donde me preguntaron cuál era el mejor lenguaje según mi consideración. Mi respuesta fue C++ y nunca me dieron el trabajo. Por supuesto reflexioné sobre el tema durante mucho tiempo y me di cuenta de la mejor respuesta a era: "Depende ¿Qué problema intentas resolver?"
Y que mejor para resolver un problema, que conocer las opciones que tenemos a mano para resolverlo. Estas opciones NO SON LENGUAJES, son PARADIGMAS de programación.
Si el único paradigma de programación que aprendemos es el orientado a objetos, entonces es probable que podamos resolver muchos problemas, pero siempre quedará la duda: "¿Habrá algo mejor?"
Recuerda: "Cuando la única herramienta que tenemos a mano es un martillo, todos los problemas son clavos"
Saludos
Pablo