Java - recomiendan aprender Java?

 
Vista:
sin imagen de perfil

recomiendan aprender Java?

Publicado por Oscar Alberto (3 intervenciones) el 03/03/2017 00:38:00
Hola !, soy nuevo en Java y quiero saber si recomiendan aprender Java o no, si es complicado o no, o si ya es un programa obsoleto o viejo, y si se pueden vender los programas que yo haga, gracias hasta pronto !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

recomiendan aprender Java?

Publicado por xve (345 intervenciones) el 03/03/2017 08:34:59
Hola Oscar, Java, es un gran lenguaje muy utilizado, sobre todo para las aplicaciones nativas de Android!!!

Creo que es un buen lenguaje para aprender a programar, es multiplataforma y gratuito con OpenJDK http://openjdk.java.net/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 973
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

recomiendan aprender Java?

Publicado por Agustin (170 intervenciones) el 03/03/2017 11:15:17
Argumentos a favor de java como primer lenguaje:

- Los conceptos que aprendes con java son los fundamentos básicos y rudimentarios de la programación orientada a objetos. Basicamente lo que aprendas en java te va a servir para trasladar ese conocimiento a cualquier otro lenguaje OOP.

- Hay ejemplos de codigo para cualquier cosa que quieras hacer.

- Por el momento, es el lenguaje oficial para desarrollar aplicaciones sobre la plataforma Android.

- Pasar de java a un lenguaje moderno es una experiencia placentera, pero pasar de un lenguaje moderno a java (como me esta pasando a mi en este momento) es algo bastante tortuoso, que se debe soportar y ciertamente no se disfruta para nada. Por lo tanto, si vas a aprender java en algun momento es preferible que sea al principio.

Argumentos en contra de java como primer lenguaje:

- Los lenguajes modernos tienen formas mucho mas simples de hacer muchas cosas, y si pasaste demasiado tiempo con java, tenes que "desaprender" algunas cosas eventualmente. Por ejemplo, muchos de los llamados "patrones de diseño" que se usan en java casi todo el tiempo, existen solo para compensar carencias o deficiencias del lenguaje, y por lo tanto casi no se usan o se usan muy poco y en casos muy puntuales en lenguajes modernos. Hay una frase muy conocida de Brendan Eich, el creador de Javascript, que dice "los patrones de diseño son simplemente fallas en tu lenguaje de programación"

- La experiencia de "logré hacer algo que funciona!" puede ser mas lenta que en otros lenguajes. Esto al principio puede resultar muy desalentador para alguien que se está iniciando.
- En Javascript, por ejemplo (que no es java, y no tiene nada que ver), uno puede crear una aplicacion web en minutos y sin tener que instalar ningun entorno de desarrollo, ni runtime, ni nada. Tan solo con el notepad y un browser como Google Chrome ya se puede desarrollar aplicaciones web en Javascript.

- En C#, por ejemplo, crear una aplicacion de escritorio para Windows, que funcione y se pueda usar en cualquier PC es cuestion de hacer 3 clicks. Lo mismo para el caso de una aplicacion web, que también son 3 clicks.

- En contraste, aca hay un video de 15 minutos que explica como crear una aplicacion web en java, siempre y cuando ya tengas el entorno de desarrollo instalado y configurado correctamente, y por lo que veo implica tocar configuracion en XML, pasar por un monton de pantallas, etc.

Argumentos a favor de java como lenguaje para trabajar profesionalmente:

- Hay mucho mercado, casi en cualquier parte del mundo, y en general se gana un salario decente.

- Hay estabilidad, ya que los proyectos en java suelen ser sistemas de tipo "enterprise" que tardan años en construirse y siempre requieren mejoras y mantenimiento.

- Se usa en muchas grandes empresas y para diversos tipos de desarrollos: backend / web, sistemas embebidos, smartphones (Android), etc.

Argumentos en contra de java como lenguaje para trabajar profesionalmente:

- Dependiendo lo que te interese hacer en tu carrera profesional, java puede no ser la mejor opcion:
Si vas a trabajar de manera independiente (en tu comentario preguntaste si "se pueden vender los programas que yo haga", lo que me da la pauta de que tu idea es ser independiente), java definitivamente no es la mejor opcion, ya que es "muy aparatoso" y requiere mucho mas codigo que los lenguajes modernos para hacer las mismas cosas, con lo cual los costos de desarrollo se van para arriba, y vos tenes entonces la opcion de cobrar mas caro tu trabajo o cobrar lo mismo pero tardar más, que si lo hubieras hecho por ejemplo en C#. Tener mas codigo no solo implica escribir mas codigo, sino pensar mas codigo, y esa es la parte realmente costosa.

Si vas a trabajar para empresas, como te mencione, java tiene bastante mercado, pero la realidad es que al ser un lenguaje que no ha evolucionado significativamente en más de 10 años, mucha gente se termina aburriendo y se pasa a trabajar en lenguajes modernos o en algun lenguaje dinamico como Ruby o Javascript. Existe un importante numero de ejemplos de personas que trabajan en java por necesidad o simplemente por el dinero, pero a las que no les apasiona o les "da igual" su trabajo. Como muestra de esto basta con observar que java no aparece en el ranking de los lenguajes mas amados en la encuesta 2016 de Stackoverflow, una encuesta con altísima reputación y confiabilidad.

Ademas de esto, esta el tema del salario, esa misma encuesta muestra que las tecnologías mejores pagas en 2016, en lo que se refiere a lenguajes de programación, son lenguajes o bien directamente funcionales (como F#, Scala y Clojure) o bien que incorporan conceptos funcionales desde su origen (como Dart, por ejemplo). Cabe remarcar que como dije antes, java es "un subconjunto" de los conceptos que se usan en lenguajes avanzados como estos, con lo cual es muy facil para un programador F#, por ejemplo, "bajarse de nivel" y escribir java, pero no es tan facil para un programador java, que no sabe lo que son funciones de orden superior, escribir o siquiera entender codigo en F# o Scala.

- Dependiendo de qué tipo de software te interese construir, java puede no ser la mejor opción:

Si querés crear aplicaciones de escritorio, seguramente vas a usar el Sistema Operativo Windows, ya que al dia de la fecha este tiene casi el 90% del mercado mundial de computadoras de escritorio, con lo cual es muy probable que lo usen los usuarios a los que vaya dirigida tu aplicacion desktop.


Si queres crear aplicaciones web, estas en la practica requiren javascript. Lo que podes hacer desde el servidor es muy limitado en cuanto a interactividad en la pantalla. Por lo tanto en la gran mayoria de los proyectos web que vayas a hacer o participar vas a tener que saber Javascript para trabajar en el frontend (la parte visual). Y si ademas de eso tambien tenes que saber java (mas todos sus frameworks monstruosos, XML, etc) para poder hacer el backend (la parte del servidor), ya se vuelve mayor la carga cognitiva. Es por esta razon que Node.js se transformó en una plataforma muy exitosa, porque permite usar el mismo lenguaje (Javascript o algun lenguaje que compile a Javascript) tanto del lado del servidor como del lado del browser. Eso y el hecho de que implemento asincronicidad desde el principio, cosa que java no hizo, pero si lo tienen hace varios años otras plataformas como ASP.NET (C#)

Si queres crear aplicaciones móviles, java te limita a la plataforma Android. El codigo que escribas no se puede portar por ejemplo a iOS (iPhone / iPad). En contraste, con C# podes crear una aplicacion nativa para Android, iOS y Windows usando el mismo codigo.
Ademas de esto, cabe mencionar que la version de java que usa Android no es la ultima, sino que es una version del año 2011, que no tiene las ventajas que proveen las ultimas versiones.
Y lo peor de todo es que el futuro de java en Android es incierto: existe un litigio entre google y oracle donde oracle le reclama a google el pago de miles de millones de dolares en regalias por haber infringido el "copyright" de java al implementar Android. Si bien esta situacion hoy en dia no tiene ningun impacto en el desarrollo en si, hay que ver si google finalmente le va a terminar pagando a oracle miles de millones, o va a invertir solamente unos cuantos millones en pasar su plataforma de java a algo mas moderno y que no implique que le hagan ningun juicio (como C#)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

recomiendan aprender Java?

Publicado por Oscar Alberto (3 intervenciones) el 04/03/2017 00:56:47
Gracias por su aporte, lo tendré en cuenta !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

recomiendan aprender Java?

Publicado por xve (345 intervenciones) el 04/03/2017 09:26:42
Excelente Agustin!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar