15 puntos por regentag 2024-11-06 | 62 comentarios | Compartir por WhatsApp

“Hay dos tipos de lenguajes de programación: aquellos de los que la gente se queja y aquellos que nadie usa.” — Bjarne Stroustrup.

“Quienes critican y se quejan de Java por lo general parecen ser jóvenes y estar más expuestos a JavaScript que a cualquier otra cosa. En comparación con JS, Java puede parecer un poco pesado y restrictivo. Hay código repetitivo por todas partes, además de un sistema de tipos que el compilador hace cumplir estrictamente. Pero si pudiera elegir, escogería una base de código Java no óptima antes que JS. Sin duda alguna.”

“Solo después de adquirir experiencia real trabajando con código distribuido en decenas o cientos de archivos se empieza a entender que las llamadas ‘restricciones’ de Java en realidad son mecanismos de protección que evitan que te dispares en el pie.”

“Descubrir Java y volver a cambiarme fue como una revelación. Me di cuenta de que amo Java y su ecosistema. Así que decidí anotar algunas de las cosas que más me gustan del ecosistema Java. Así que, si alguien critica a Java, aquí tienes 25 razones para decirle por qué está equivocado.”

  1. Ecosistema maduro
  2. WRITE ONCE, RUN EVERYWHERE
  3. Compatibilidad con versiones anteriores (backward compatibility)
  4. Lenguaje de tipado fuerte
  5. Ciclo de lanzamientos rápido, mejora continua
  6. Buenos IDEs
  7. Soporte de Native Image en GraalVM
  8. Bibliotecas y frameworks de código abierto
  9. Multithreading
  10. Orientación a objetos madura
  11. Gestión de memoria y recolección de basura
  12. Observabilidad y monitoreo
  13. Soporte para programación funcional
  14. Documentación abundante
  15. Herramientas de build y gestión de dependencias
  16. Potentes capacidades de testing
  17. Comunidad enorme
  18. Anotaciones
  19. Funciones de seguridad
  20. Rico conjunto de APIs
  21. Rendimiento
  22. Concurrencia estructurada
  23. Hilos virtuales
  24. Pattern matching para la sentencia switch
  25. Plantillas de cadenas

62 comentarios

 
suckjava 2025-09-24

Todas las ventajas que enumeraron de Java en realidad parecen ser cosas en las que otros lenguajes son mucho mejores que Java.

 
sungwoo 2024-11-14

Nadie menciona Spring.
No tengo quejas sobre el lenguaje Java en sí,
pero la realidad local de que haya que aprender Spring me resultó algo frustrante, así que no me pareció tan atractivo.

 
regentag 2024-11-14

Java es bueno, pero Spring es... terrible :(

 
nullvana 2024-11-08

Los 25 carecen de diferenciación. Al margen del respeto, son hienas en un festival de legado.

 
fau1ty 2024-11-07

Aunque se presentan hasta 25 razones por las que sigue siendo popular incluso en 2024,
parece que hay suficientes lenguajes que podrían reemplazar a Java sin problema...

 
lazyhack 2024-11-07

Lo popular es la JVM.

 
sunrabbit 2024-11-07

La mayoría de las razones, al compararlas con los ecosistemas de otros lenguajes modernos,
realmente no son una gran fortaleza, y parece que el autor escribió el texto sin separar a Spring de Java.

 
progdesigner 2024-11-07

Es natural preferir Java porque tiene un entorno de desarrollo muy bien consolidado.

Del mismo modo, como solo puedes rendir bien trabajando dentro de ese entorno, terminas queriendo trabajar solo ahí, y si te piden otro entorno también puede generarte rechazo.

Sin embargo, de aquí en adelante parece que la IA programará cada vez mejor en este tipo de lenguajes, y más que nunca hará falta la capacidad de adaptarse para sobrevivir también en entornos diversos, no solo en el que a uno le resulta cómodo.

En ese sentido, la capacidad de adaptarse a distintos lenguajes ya no parece una opción, sino una necesidad.

 
love7peace 2024-11-06

Si tuviera que hacer una web app de registros, probablemente usaría Java sí o sí. Con solo el punto 1 basta... Si es para desarrollo simple y rápido, creo que Python es una buena opción. JS... no sé, a mí me desespera porque es demasiado enredado.

 
newmanjoo 2024-11-06

Si voy a usar Java, mejor usaría Kotlin, y considero que más que Java como lenguaje, los lenguajes del ecosistema .NET son los que siguen el ritmo del desarrollo de Kotlin.
Creo que Java debería quedarse como lenguaje de mantenimiento para los servidores de organismos públicos que fueron construidos hace tiempo con Java; además, en Corea los CEOs tienden a insistir con Java porque están familiarizados con la palabra “Java” por haberla visto en publicidad. Prueben Kotlin y .NET antes de considerar Java.

 
tsboard 2024-11-06

A propósito de que salió el tema de Java... ¿qué opinan de Go? A mí, la verdad, me gusta más Kotlin que Java, pero como tuve demasiadas frustraciones con Gradle, al final me estoy quedando con Go. Desde mi experiencia de haberlo usado aunque sea un poco, pensé: ¿no será que en cualquier lugar donde se necesite Java, Go también puede cubrirlo?

En el caso de JS/TS, a mí también me gusta, pero aun así me parece que compararlo en el mismo nivel que Java quizá es un poco forzado. Al final, sigue teniendo la limitación de ser single-thread, y aunque dicen que hacen multiprocessing con pm2 y cosas así, Java también tiene muy bien resuelto lo de virtual thread, y de hecho creo que eso es mejor. Claro, siguiendo esa línea de pensamiento terminé viendo las goroutines y me asenté en Go... jajaja;;

Creo que lo mejor es usar cada lenguaje en el lugar adecuado según la necesidad. Yo, incluso ahora en 2024, sigo amando PHP, y también les tengo cariño a JS y Java (Kotlin), aunque no tanto como a Go. Los lenguajes son herramientas, así que mientras se usen bien de acuerdo con su propósito, no hay problema; por eso dejo este comentario.

 
shortstories 2024-11-07

Creo que ahora de verdad llegó a un nivel realmente usable. En mi empresa también trabajo únicamente con Go.
En la época en que usábamos godep y glide, si una sola dependency se desalineaba, te podías pasar todo el día tratando de hacer que encajara, y te quedabas pensando si esto era realmente un lenguaje o apenas algo que se le parecía.. 😂

 
sunrabbit 2024-11-07

Aunque exista la limitación del single-thread, en una era donde se orquesta envolviendo en contenedores para que no consuma demasiado por CPU por cada pod, no puedo evitar pensar: ¿realmente esa limitación es tan grande?

A menos que, en lugar de levantar varios contenedores en un solo servidor como antes, ese contenedor estuviera consumiendo muchísimo CPU.

En la mayoría de los casos de servidores web, como no consumen mucho CPU y más bien tienen alto throughput de I/O, creo que Node también puede considerarse como una opción.

Por supuesto, si se trata de un dominio que requiere mucho CPU, entonces habría que considerar otro lenguaje, o también se podría llamar código nativo mediante napi.

 
savvykang 2024-11-06

Creo que es un lenguaje útil para el trabajo asíncrono porque tiene la característica de abstraer bien las tareas asíncronas con goroutines. El código asíncrono de Rust o Python me parece un caso de pensarlo demasiado. Tanto al escribirlo como al leerlo, la carga cognitiva suele ser alta.

 
regentag 2024-11-06

Yo solo he usado Go de antes de que incluyera genéricos, pero me parece un lenguaje excelente. Al principio las herramientas de verdad eran bastante malas, pero han mejorado mucho.

La sintaxis es tosca, pero precisamente por eso es fácil de aprender.

 
seunghaekim 2024-11-06

No se peleen....

 
moderator 2024-11-06

La discusión se está acalorando.
Si tienen alguna objeción, por favor escriban solo su contenido.
Se han eliminado los comentarios que infringen las normas de uso del sitio.
Además, tengan en cuenta que se han bloqueado las cuentas que repiten actividades que no se ajustan a las normas de uso.
Les pedimos mantener una discusión sana.

 
[Este comentario fue ocultado.]
 
regentag 2024-11-06

¡Java 1.8 es realmente una versión excelente!

 
roxie 2024-11-06

Creo que ya va siendo hora de dejar atrás ese lema de write once run everywhere... jaja

 
regentag 2024-11-06

Pero bueno, ¡así es Java! jajaja

 
secret3056 2024-11-06

Programar en Java en IDEA es un placer, pero si no fuera por IDEA sería infeliz. (Y lo fui)

 
tested 2024-11-06

En Corea hay muchas personas desarrolladoras de Java, al punto de que se dice que es una "república de Java", ya que también tiene ventajas en contratación y está el Electronic Government Framework.
En las empresas también hay muchos casos de migración desde otros lenguajes a Java, y por experiencia, algunas personas desarrolladoras de Java solo quieren trabajar con Java.
Dicen que los sistemas existentes hechos en otros lenguajes son el problema y que hay que migrarlos a Java. Pero tampoco quieren usar Kotlin.
Me dio la impresión de que había cierta resistencia a aprender algo nuevo. Como con esa idea de: si de todos modos todo se puede hacer con Java, ¿para qué?

 
[Este comentario fue ocultado.]
 
dyumadel 2024-11-06

¿No suelen usar genéricos los que trabajan en SI?

 
mse9000 2024-11-08

Creo que ese es justamente el problema... jajaja

 
everyharu 2024-11-06

A este punto, siento que Java es una religión.
Si le damos la vuelta a la frase
Las personas que critican y se quejan de Java suelen ser jóvenes y parecen haber estado más expuestas a JavaScript que a cualquier otra cosa.
lo que también está diciendo es que mucha gente que ha usado JS llegó a la conclusión, por experiencia, de que Java no es tan bueno.
¿Por qué no reconocer que cada uno tiene sus propias ventajas y desventajas, en lugar de decir solo que Java es mejor...?
Se parece a la gente que dice que SQL es mejor sin haber usado una document db y sin importarles realmente sus características.

Creo que también se está dejando fuera el hecho de que ya existía una situación donde Java se usaba muchísimo, y que muchos desarrolladores senior solo saben Java y no quieren cambiar, por eso no se ha podido cambiar. Viéndolo desde este momento, creo que las fortalezas propias de Java ya son casi inexistentes.

 
cosine20 2024-11-06

Por mi larga experiencia, creo que Python y JS tienen una mayor proporción de fanáticos.

 
kbumsik 2024-11-06

Creo que puede parecerte que hay más insistencia porque probablemente estás en una posición donde necesitas promover JS/Python en lugar del lenguaje Java.

En lo personal, sí he visto a algunas personas que ni siquiera consideran por completo otro lenguaje aparte de Java. En cambio, la mayoría de quienes trabajaban con otros lenguajes sí mostraban disposición a usar un lenguaje distinto según la situación.

 
cosine20 2024-11-06

Supongo que podría pasar si tu primer lenguaje fue Java, pero nunca he visto un caso así a mi alrededor, así que me cuesta imaginarlo.

En mi caso también, el primer lenguaje que aprendí al entrar a la universidad fue C++, y conforme avancé de año fui conociendo otros lenguajes de forma natural, así que no me pesa tanto aprender un lenguaje nuevo... Al final, la sintaxis básica (declaración de variables, estructuras de control, funciones, etc.) suele ser bastante parecida en todos.

En esos casos, creo que quizá al principio aprendieron el lenguaje de una forma demasiado limitada y por eso su espectro se volvió más estrecho. Y eso lo he visto más seguido en personas que conocieron Python como primer lenguaje con fines de deep learning o estadística matemática. Yo también lo he visto, y como ambas son experiencias personales, supongo que las dos posturas tienen algo de razón.

 
moderato 2024-11-06

Yo también tuve una experiencia similar, así que pienso lo mismo.

 
hobbycoder 2024-11-06

A quienes les gusta Python no andan diciendo que Python sea un gran lenguaje. Tampoco hay gente de JS insistiendo en que el lenguaje sea bueno. Tanto Python como JS simplemente tienen buenos ecosistemas para desarrollar en áreas específicas. Solo con Java da la impresión de que siempre hay gente empeñada en decir que es bueno sí o sí..

 
aer0700 2024-11-07

Los propios desarrolladores de JS lo usan como motivo de broma. ¿Esto siquiera es un lenguaje?.. Si no fuera por ts T_T

 
roxie 2024-11-06

Si me pusiera a defender a Java, parecería que, al contrario, Java es justo el que más terminan molestando por una u otra razón. ¿La clásica posición del tío del barrio que todos conocen...?

 
kandk 2024-11-06

Si buscas contenido relacionado con Java en Google estos días,
se inunda de publicaciones de blogs en coreano con el mismo contenido que enseñan en las academias,
y me frustra que sea difícil encontrar referencias de verdad.

 
regentag 2024-11-06

La búsqueda de Google se ha deteriorado bastante...

 
jjpark78 2024-11-06

18, 25, 20, 10, 8, 6, 5, 3, 2, 1, etc., no son exclusivos de Java. Comparación errónea

 
regentag 2024-11-06

Viéndolo ahora, Java también tiene estas funciones y no parece que haya motivos para criticarlo; no creo que se trate de decir que usen Java solo porque esas cosas solo se pueden hacer en Java.

 
lazydonkey456 2024-11-06

Más bien, mientras lo leía, no podía dejar de pensar: "Mmm... ¿no es mejor .NET?"

 
regentag 2024-11-06

A mí también me gusta C#, pero en entornos que no son Windows, no sé si realmente valga la pena usarlo.

 
lazydonkey456 2024-11-07

Es el mismo contenido que el comentario de arriba. Esa época terminó hace muchísimo tiempo.
La decisión tardía de MS terminó arruinando así la percepción de la gente.

 
rabbitcarrot 2024-11-06

Si solo desarrollas aplicaciones para Windows, el ecosistema de MS tiene muchas ventajas, así que está bien, pero en Linux o macOS no veo nada mejor que Java. Aunque MS lo esté soportando tardíamente, no hay una razón real para usarlo. El momento no es bueno.

 
lazydonkey456 2024-11-07

Ya no es .NET de la época de .NET Framework, ¿por qué limitarlo a aplicaciones de Windows?
De hecho, en los teléfonos que ustedes ya tienen en la mano están corriendo motores de juegos basados en .NET;

 
leetleet 2024-11-06

222

 
bichi 2024-11-06

333

 
gigisusu8888 2024-11-06

No es por criticar a Java, pero la razón por la que Java resulta molesto es porque, curiosamente, solo los desarrolladores de Java desprecian y comparan a los de otros lenguajes, y tienen un extraño orgullo por Java. Me gusta Java, pero no entiendo por qué se comportan así. Cada lenguaje tiene su propia filosofía, sus ventajas y desventajas, y un ecosistema distinto; lo único que logran es caer mal cuando de repente muestran ese raro orgullo por Java.

 
fooandbar 2024-11-06

Parece que hacen falta materiales para presentar como fundamento del orgullo que sienten los desarrolladores de Java por Java. Si es difícil presentarlos, creo que es una afirmación difícil de aceptar.

 
regentag 2024-11-06

Parece que siempre hay gente así con cualquier lenguaje o herramienta. Creo que Java destaca más porque, cuando salió, era un lenguaje más cool que C/C++ y, al mismo tiempo, se usó ampliamente en entornos empresariales, así que la base de desarrolladores creció mucho.

Y últimamente me da la impresión de que los desarrolladores de Rust están ocupando ese papel.

 
puersum 2024-11-06

Sorprendentemente, la razón por la que Java se volvió dominante es porque gastaron muchísimo dinero en marketing jajajaja
https://www.youtube.com/watch?v=NVuTBL09Dn4

 
puersum 2024-11-06

Hay un video de YouTube sobre cómo un lenguaje se vuelve mainstream; ¡también les parecerá interesante si lo ven!
https://www.youtube.com/watch?v=QyJZzq0v7Z4

 
limc132 2024-11-06

Deberías desquitarte con el desarrollador de Java, pero lo estás haciendo con Java...

 
gigisusu8888 2024-11-06

Eso es por tu comprensión lectora…

 
limc132 2024-11-06

Ya no hace falta que yo responda, otra persona ya lo escribió.

 
gigisusu8888 2024-11-06

No, no es así.

 
secret3056 2024-11-06

La razón por la que Java es desesperante es

 
gigisusu8888 2024-11-06

Parece que ni siquiera sabe qué es la alfabetización.

 
kayws426 2024-11-06

De repente, si se te vino a la mente Eclipse hecho en Java y VSCode hecho en JavaScript (TypeScript)... ¿será una comparación equivocada? Claro, Eclipse tiene más funciones.

 
koxel 2024-11-06

Es una comparación equivocada..
Hay que ver cuándo salió.
Cuando apareció Eclipse y durante un tiempo, Eclipse tenía una posición similar a la que tiene VS Code ahora.
Yo tampoco uso Eclipse porque de verdad es muy incómodo,
pero en ese entonces no había otra opción decente más que Eclipse.

 
[Este comentario fue ocultado.]
 
[Este comentario fue ocultado.]
 
kandk 2024-11-06

La fortaleza de JavaScript es que Google mantiene el motor V8.
Java, abandonado..

 
lazydonkey456 2024-11-06

El backend de una app de Electron sí es JavaScript... el proceso principal y el proceso de renderizado corren por separado, pero ambos funcionan con código JavaScript.

Del mismo modo, ¿la JVM al final no es también un runtime implementado en nativo?