¿Qué opinan de Java?

Iniciado por Mortal_Poison, Noviembre 03, 2017, 02:51:49 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Noviembre 03, 2017, 02:51:49 PM Ultima modificación: Noviembre 03, 2017, 03:09:02 PM por Mortal_Poison
Hola a tod@s,


Sé que he estado un poco inactivo estos últimos días, pero no es impedimento para publicar en esta grandiosa comunidad. Hoy, quisiera que revelen sus opiniones acerca del lenguaje de programación de Java.

¿Por qué?

Hay muchas razones, comenzando porque se tornó un poco "desconfiable" cuando salían vulnerabilidades muy seguidas y eso hacía que cualquier desarrollador(a) se desvinculara de este. Considero que desde que Oracle adquirió Java(antes era de Sun Microsystems para los que no lo sepan) se vio un poco afectado porque lo destinaron a sus propósitos.

Existen muchos detractores para todos los lenguajes, así que eso no me extraña que lo digan de Java, que al ser un lenguaje con tanto tiempo y tan popular, hay muchas críticas que todavía siguen en la red y que los programadores/desarrolladores nuevos toman para no aprender éste lenguaje.

A ver, aún hay personas que critican Java 5, sí, Java 5. Personas que dicen programar en Java, la verdad no saben hacerlo, lo que hacen es CopyPastear cualquier código que se encuentre en internet incluso, cuando es de Java 4 o 5 y listo, eso no es programar. ¿Sabías que Java ya está en su edición 9?.

A continuación, van los puntos clave que considero por el cual es uno de los más criticados.


  • Verbosidad

    Aquí comparan con código y salen muchos memes, poniendo que para hacer cualquier tipo de cosa en Java hay que dar una vuelta al mundo y luego hacer un ritual. Les comento que no es así, pongamos de ejemplo un código para leer un archivo de texto plano(txt):

Código: java
BufferedReader Reader = new BufferedReader(new InputStreamReader(new FileInputStream(FILE_NAME)));
String linea = Reader.readLine();
while(linea != null){
System.out.println(linea);
linea = Reader.readLine();
}


Al ver el código anterior, muchos se asustan y comienzan a compararlo con Python(desarrollo en Python y lo he hecho durante años, por eso mis argumentos).

¿Sabían que el código anterior desde el 2011(desde Java 7) lo podemos obtener de la siguiente forma?

Código: java
List<String> Lineas = Files.readAllLines(Paths.get("texto.txt));


Sencillo, ¿cierto?.

Critican una verbosidad que realmente no existe.

Por favor, revisen éste post: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: java
public List<Product> getProducts() {
    List<Product> products = new ArrayList<Product>();
    for (Order order : orders) {
        products.addAll(order.getProducts());
    }
    return products;
}


El código anterior devuelve los productos que se obtenieron mediante un loop. Sin embargo, él compara que en Scala se hace de la siguiente manera:
Código: java
def products = orders.flatMap(o => o.products)


Pero es que en las nuevas versiones de Java también podemos hacerlo, podríamos hacer esto por ejemplo:
Código: java
productos = orders.stream().flatMap(o -> o.getProducts().stream())


Y listo.

Tomemos otro ejemplo de éste blog, por ejemplo:

Código: java

List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");


En Scala es de la siguiente forma:
Código: java
val list = List("1", "2", "3")


Pero en Java podemos usar asList y lo podemos hacer de igual forma.
Código: java
Arrays.asList("1","2","3");


Y si nos vamos a Java 9, nos lo hace aún más sencillo:
Código: java
List<String> strings = List.of("1","2","3");


¿Lo quieres con Int? no hay problema.
Código: java
Set<Integer> ints = Set.of(1, 2, 3);


Pero espera... los frameworks.

Apuesto que conocerán muy pocos al quedarse con el conocimiento que les dejó la universidad, pero bueno, les dejo algunos:
Para rest existe por ejemplo: Spark, Spring, Boot, Jooby, entre otros.
Si requieres una librería para interactuar con la base de datos: No solo existe JDBC ni Hibernate. Están JOOQ, Spring, Data, MyBatis, SQL20.

Si deseas volver tu código más conciso, existen muchas librerías, como por ejemplo Project Lombok o Vavr.

Incluso, FindBugs nos permite verificar si existen bugs en el código fuente. Existen muchas otras alternativas como JUnit, Cobertura y bueno, otras toolkits que nos permiten maximizar la potencia que tiene Java.

Para finalizar, muchos ponen que las interfaces gráficas de usuario quedan feas o un poco grotescas, creo que sería bueno que revisaran No tienes permitido ver los links. Registrarse o Entrar a mi cuenta donde sé que la GUI quedó un poco bonita.

Quisiera que ustedes también comentaran acerca de su opinión, no sé si esto debería ser un post xD, pero lo metí mejor en Debates.

Un saludo.
[/font]
Become the change you seek in the world. -Gandhi.


+1

Quedo excelente, espero ver la continuación de estos aportes.

Saludos!!!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Hola No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muchas gracias ;D, espero con mis aportes que crezca en parte la comunidad.

Un saludo.
Become the change you seek in the world. -Gandhi.


Me ha gustado mucho el thread y añado mucho karma +1 soy un adicto a la taza desde 2014 y sigo aprendiendo todos los días de mi vida.

Por cierto muy chulas las interfaces del thread de Neptuno no sé si será casualidad o no pero has aplicado estilos muy parecidos a los que utilizar un genio de las interfaces en Java llamado Keeptoo.

Salu2 brother

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola Hu3c0,

Sí, la verdad lo que hice fue aprender de él, me molaría como lo hacía así que destine un tiempo hace tiempos para aprender bien lo del diseño. Sin embargo, uno ya lo adapta a sus necesidades de lo aprendido, y como dices, ¡siempre se aprende algo nuevo!.

Un saludo y muchas gracias ;D.
Become the change you seek in the world. -Gandhi.


Sinceramente lo llevo usando desde hace mes y algo y de momento me gusta, parecido a c++, sigue siendo un lenguaje de programacion de verdad, se critica mucho por dos razones creo yo, las interfaces graficas que no quedan bonitas como pueden quedar en c# y por las applets (en esto coincido, no se me ocurre nada peor que una web con back-end en java, desde el lado del usuario).

Suele pasar con lenguajes de este estilo, c, java c++ que mucha gente dice que no le gustan, normalmente suele ser gente que usa un lenguaje como python en el que solo hacen llamadas a funciones y manejan estructuras basicas por que no son capaces de programar de verdad (abro paraguas)

Como pega a java frente a C le veo el tema de punteros y control de memoria, por lo demas lo veo todo correcto
Mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si necesitas ayuda, no dudes en mandar MP

Hola No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

La verdad que Java en lo que respecta por ejemplo a JSP, nunca me ha gustado y me parece que es realmente tedioso. Pero como todo, ventajas y desventajas tendremos en los lenguajes de programación.

Por otra parte, te doy la razón, de hecho, Java es una 'fusión' entre C# y C++.

Un saludo y gracias por comentar ;D.
Become the change you seek in the world. -Gandhi.


Yo empecé a estudiar Java en el 2014 para poder hacer aplicaciones Android. Me cautivo tanto que a fecha de hoy sigo aprendiendo, después de comprender :la abstracción , modularidad, encapsulamiento, herencia y polimorfia, estoy aprendiendo sobre threads y sockets.

Por otro lado dispongo conocimientos sobre JSP, persistencia usando el driver mysql ,configuración de Pool de conexiones  y ahorita mismo también estoy estudiando persistencia con hibernate, para el postre estoy dejando JSF.Éste es mi target actual.

Yo también he visto varios videos de Keeptoo es todo un experto en diseño gráfico con material design lo encontré por casualidad  buscando información sobre Fx Scene builder con el cual se extiende  a un grado superior la creación de Interfaces de usuario.

Salu2  y seguir dándole duro porque esto no tiene fin.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Claro que sí, todos esos conceptos a uno le hacen cambiar la perspectiva cuando uno desarrolla. Por otra parte, ni JSF/JSP me han gustado mucho, por eso no los he trabajado mucho. Prefiero un Symfony de PHP por ejemplo, ya va a cuestión de gustos. También lo encontré a él(KeepToo) porque antes hacía las GUI's con JavaFX. Sin embargo, con Swing también pueden quedar bonitas y él nos lo demostró.

Un saludo y happy hacking.
Become the change you seek in the world. -Gandhi.


Enero 01, 2018, 09:29:24 PM #9 Ultima modificación: Enero 01, 2018, 09:58:14 PM por InVader
Sé que puede sonar newbie, y lo es, pero he buscado en todo el internet (saben que no es cierto) y no he encontrado respuesta, ¿puedo programar algún aparato inteligente desde cero con Java? Por cierto, ésto me levanta los ánimos con el lenguaje que más interesante me parece, aunque claro, creo que java al ser Poo puro está más destinado a estructuras (porque se forman con partes) y ésto tendría el mismo concepto de objeto aquí objeto allí para crear un gran objeto. ¿Opinan que es una buena idea conocerlo bien? He escuchado que es el programador no el programa, ¿si utilizas una función (como vienene en la API) no podrías simplemente cambiar su funcionamiento tomando su código base para adaptarlo más a tus deseos? Opino que el límite es la muerte.

//El Spellcheck no está en función, no lo había notado.
¿Ves?

En mis primeros años de estudio y trabajo, fui un "Java Advocate". Llegué a usar Java 8/Java EE 7 y a conocer el lenguaje, muy bien. De hecho, es lo que me enseñaron en la Universidad y ese, bajo mi perspectiva, es uno de los errores más importantes.

Llegó un punto en que si tenía que realizar algo, lo hacía en Java; de hecho no sabía usar otra cosa. Hasta el momento defendía a capa y espada al lenguaje, más que todo porque era lo único que conocía.

Sin embargo, con el pasar del tiempo, como programador/analista/arquitecto/ingeniero, te ves en la necesidad de ver y evaluar distintas opciones desde el punto de vista estructural y funcional. Allí es cuando te empiezas a cuestionar si lo que sabes/usas es suficiente ante el problema que tienes frente.

Sin prolongarme demasiado, en mi opinión, Java está en proceso de muerte como lenguaje. Como plataforma tiene larga vida y se ha demostrado con proyectos como Scala, Groovy, Ceylon y Kotlin; pero como lenguaje, ya no tiene nada que ofrecer.

Uno de los principales problemas, si no el más relevante, es la falta de inversión por parte de Oracle. Desde que Oracle se hizo cargo de Sun, ha tratado a Java como ciudadano de segunda clase para centrarse en sus servicios Cloud, esto se puede ver en la actvidad de Oracle a lo largo del tiempo como lo representa y queja bien JavaGuardians.

Actualmente, hay mejores alternativas incluso para desarrollo empresarial. Un claro ejemplo es NET Core, el cual es moderno, seguro, eficiente y libre. Otras alternativas que, por ejemplo, usamos en producción en la empresa donde trabajo, son Go y Node.js.

Java tuvo su época pero la falta de interés e inversión le pasó factura.
Cuanto más duro trabajas, más difícil es rendirse.

¿Mi opinión de Java?


"A programar se aprende programando", lo resume bien en pocas palabras (no son palabras mías).


Hay más lenguajes, con una manta y humo sería pasarse, pensad un poco en la interfaz de conexión, no todo cabe en los balcones de la gente.

Un saludo.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En mis primeros años de estudio y trabajo, fui un "Java Advocate". Llegué a usar Java 8/Java EE 7 y a conocer el lenguaje, muy bien. De hecho, es lo que me enseñaron en la Universidad y ese, bajo mi perspectiva, es uno de los errores más importantes.

Llegó un punto en que si tenía que realizar algo, lo hacía en Java; de hecho no sabía usar otra cosa. Hasta el momento defendía a capa y espada al lenguaje, más que todo porque era lo único que conocía.

Sin embargo, con el pasar del tiempo, como programador/analista/arquitecto/ingeniero, te ves en la necesidad de ver y evaluar distintas opciones desde el punto de vista estructural y funcional. Allí es cuando te empiezas a cuestionar si lo que sabes/usas es suficiente ante el problema que tienes frente.

Sin prolongarme demasiado, en mi opinión, Java está en proceso de muerte como lenguaje. Como plataforma tiene larga vida y se ha demostrado con proyectos como Scala, Groovy, Ceylon y Kotlin; pero como lenguaje, ya no tiene nada que ofrecer.

Uno de los principales problemas, si no el más relevante, es la falta de inversión por parte de Oracle. Desde que Oracle se hizo cargo de Sun, ha tratado a Java como ciudadano de segunda clase para centrarse en sus servicios Cloud, esto se puede ver en la actvidad de Oracle a lo largo del tiempo como lo representa y queja bien JavaGuardians.

Actualmente, hay mejores alternativas incluso para desarrollo empresarial. Un claro ejemplo es NET Core, el cual es moderno, seguro, eficiente y libre. Otras alternativas que, por ejemplo, usamos en producción en la empresa donde trabajo, son Go y Node.js.

Java tuvo su época pero la falta de interés e inversión le pasó factura.

Efectivamente. Quizá Java no muera nunca, pero lo que si es cierto es que las empresas cada vez buscan más alternativas, y más ahora que C# está siendo multiplataforma, y Kotlin busca reemplazar Java para Android, y Python de por sí cumple mucho en otros aspectos.

Pero Java no va a morir porque tradicionalmente las empresas les cuestan confiar en nuevas tecnologías, o ya tienen mucho tiempo super montados, y cambiar de tecnología sería demasiada inversión tanto de dinero como de tiempo... Pero las nuevas empresas se lanzan con C#, Python, Go, Node.JS entre otras alternativas.

Aportaré mi mera opinión:

1º No sé programar en Java por mucho "public class Hola Mundo" que yo ponga, ¿pos no sé? Eclipsao que estoy.

2º Es obvio que su máquina virtual está en cualquier plataforma, la tengo yo en mi móvil del 2007, pos imagina, lo que lo hace de lo más funcional.

3º Su nombre se deriva de una charla con café y "Duke" es un quesito muy divertido...


Un saludo.



En mi opinión es un buen lenguaje para aprender en un inicio pues diría que está entre lenguajes como C y otros más modernos como Python y permite escoger si aprender lenguajes más antiguos o más modernos en poco tiempo. Ahora, centrarse solo en él creo que sería un error pues, com9 han dicho arriba, luego no sabes nada más.
En resumidas cuentas. Es un buen lenguaje para aprender TODOS los paradigmas de la programación som frustrarse demasiado y luego virar a otros lenguajes que necesites.
Un saludo.

Enviado desde mi ONEPLUS A6003 mediante Tapatalk


¿Virar a otros lenguajes que necesites?


Ya te digo yo que en muchos bancos todavía "se practica el COBOL" (¿Y sabes qué? ¡¡¡ No usan protección !!!)...


¿Programar?

Ya lo dije, ir para que te digan que te las apañes tú solo: "a programar se aprende programando", pos...

Un saludo.