Ver Mensaje Individual
  #9 (permalink)  
Antiguo 25/04/2017, 12:31
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 4 meses
Puntos: 52
Respuesta: Las universidades finalmente se dan cuenta que java es un mal lenguaje int

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
Cuando se trata de lenguajes, casi siempre, en mi opinion, hay que ser agnostico y usar el que mas se adecue a lo necesitado, y tal vez tambien a lo que necesites en el futuro.
Por esta razon es importantísimo introducirse usando un lenguaje de programación que soporte los CONCEPTOS que se usan en casi todos los lenguajes (modernos, no java).

java resulta totalmente inadecuado según este criterio, ya que carece de una enorme cantidad de conceptos que en cualquier otro lenguaje se dan por sentados:

- Properties: Kotlin, Swift, C#, Javascript y hasta PHP las tienen, java no.

- Funciones: Hasta antes de java 8 no existian. Esto significa que los 20 años del ecosistema de java se construyeron sin esto, y una persona que comience a aprender dentro de ese ecosistema va a tener poco o nada de contacto con este concepto tan importante. Kotlin, Swift, C#, Javascript y hasta PHP las tienen, java no.

- Generics: Se sabe que los generics de java son un chiste patético. Kotlin, Swift, C#, Scala y F# los tienen. Javascript no porque es un lenguaje dinámico y los generics son una característica de los type systems estáticos. Además, resulta confuso y estúpido para alguien que lo ve de afuera el hecho de que en java no se puede hacer un List<int> y hay que hacer workarounds idiotas para poder meter un int en una lista.

- Parámetros opcionales/default: Kotlin, Swift, C#, Javascript y hasta PHP los tienen. java no.

- Y lo más importante de todo: Un ecosistema SANO. Aún no he encontrado ejemplos de frameworks o librerías en java que sean usables y tengan APIs decentes. Hibernate en particular, con toda su basura stringly typed, es el peor asco que vi en mi vida. Comparado con NHibernate donde puedo usar QueryOver<T> o LINQ para hacer queries sobre un modelo estático, la API de Hibernate parece diseñada por una persona con retraso mental. Esto no me soprende ya que las APIs se tienen que ajustar a las enormes, monstruosas deficiencias del lenguaje java.

Todo esto lleva a que aquellos que aprenden java como primer lenguaje desconocen los CONCEPTOS y paradigmas que se usan en cualquier lenguaje moderno (sobre todo la parte funcional) y por lo tanto tienen una curva de aprendizaje mayor al momento de programar en proyectos reales con otros lenguajes.

En contraste, cualquiera que aprende C# por definición ya conoce el 100% de java, ya que java es un subconjunto patético y retardado de lo que era C# hace 10 años. Otros ejemplos de esto mismo son Swift, y Kotlin, que de hecho corre sobre la propia JVM, pero es un lenguaje moderno y bien diseñado.

De cualquier forma, yo como lenguaje introductorio usaria Javascript, que de hecho es lo que están haciendo las universidades que menciona el artículo.