Ya terminé con Java, ¿este lenguaje está maldito o algo así?

R2A (gracias):

Ningún Java no está maldecido, pero es un lenguaje muy desafiante, “difícil” y de “problemas de grandes ligas”. Puede ser extremadamente frustrante, y FWIW, yo también he “terminado” con Java en el sentido de que evito activamente el empleo y las situaciones en las que se requiere Java; aunque, por supuesto, no me mataría de hambre ni privaría a mis hijos solo para evitar Java.

OTOH, me parece perfectamente razonable preguntarme por qué alguien querría soportar Java cuando tenemos notaciones nuevas y maravillosas como GO y Rust.

No me malinterpretes. La arquitectura JVM de Java, compilar una vez y ejecutar en cualquier lugar es brillante y un avance tecnológico. Para cualquiera que haya vivido los años de la “Torre de Babel” de programación, donde esencialmente todo tuvo que volver a implementarse por entorno, Java es realmente excelente en ese sentido. OTOH, el lenguaje en sí es una sintaxis mestiza, no idealmente orientada a objetos, que toma prestada la lengua C de una manera poco convincente, congelada para la recolección de basura en momentos extraños y sumamente inconvenientes, etcétera ad nauseum.

E irónicamente, la portabilidad de JVM se produjo en un momento en que la tecnología de hardware sufrió una sacudida masiva, dejando solo muy pocos objetivos de plataforma viables de todos modos. Hizo que la portabilidad de JVM fuera relativamente discutible en comparación con solo cinco años antes de su llegada. Por supuesto, la JVM ha provocado un florecimiento de docenas de idiomas que se han portado a esa máquina, o que originalmente están destinados a la JVM. Este es ahora un fenómeno importante, pero desde el punto de vista de Java como lenguaje en sí mismo, solo sirve para enfatizar las deficiencias de Java.

Java no es muy diferente de otros lenguajes desde la perspectiva de aprender a programar. Todos llevan equipaje que puede hacer tropezar a un principiante. Solo mire Python, JavaScript, C #, C / C ++, PHP, Ruby. Todos y cada uno de estos idiomas tienen sus problemas. Python es probablemente el más fácil del grupo, pero tampoco es un juego de niños.

Es por eso que para los principiantes, siempre recomiendo esta respuesta: la respuesta de Richard Kenneth Eng a ¿Cuál es el lenguaje de programación más fácil, mejor y más simple de aprender?

Tengo curiosidad por qué estás tan molesto por este idioma. ¿Eres un estudiante? ¿Un trabajador de TI? ¿Otro?

Tengo que admitir que Java puede ser un poco demasiado al principio, pero después de un tiempo tiene bastante sentido …

Si tiene tantas dificultades con el idioma pero aún desea seguir este camino profesional, mi consejo es que pruebe temporalmente un idioma diferente. Pruebe algo como Swift, C # o tal vez algunas secuencias de comandos web como HTML. Creo que después de experimentar otro idioma, verá una perspectiva diferente de por qué / cómo Java funciona de la manera que lo hace.

Cuando estaba en la universidad, tuve muchas dificultades para comprender C ++ MFC. Tuve tanta dificultad que reprobé mi clase de C ++. Creo que la mayoría de mis problemas se debieron a mi profesor arrogante y egocéntrico, pero independientemente de este hecho, me sentí como un fracaso total y comencé a cuestionar mi dirección con la informática. Después de tomarme unos días lejos de la codificación, reuní algo de perspectiva y recordé lo bien que me fue en mis otras clases de CS. Con estas motivaciones en mi cabeza, decidí tomar una clase de Java en lugar de C ++. ¡GUAU! … ¡qué cambio! Todo tenía sentido. OOP … no hay problema. Encapsulación … Polimorfismo … Herencia … ¡Demasiado fácil! Después de terminar mi clase de Java, volví a mirar mis libros de texto de MFC y luego entendí hacia dónde iba la clase.

A veces, uno solo necesita retroceder y reunir sus pensamientos. Todavía veo que situaciones como esta suceden hoy en día, cuando encuentro un problema difícil, solo tengo que tomar un descanso, pensarlo un poco, a veces hablar con otros y leer la tecnología más en profundidad y cómo otros han logrado un problema similar. tarea.

No, el idioma no está maldito. No hay evidencia de que existan maldiciones e, incluso si lo hacen, miles de personas usan Java sin sufrir ningún efecto negativo. A algunas personas les gusta y a otras no. Cuando me obligaron a usarlo, lo odiaba, pero no me enfermé ni sufrí ningún otro tipo de desgracia, aparte de estar irritado por tener que programar en un idioma que no me gustaba.

Solo porque empezaron a sucederle eventos negativos cuando comenzó a codificar en Java, eso no significa que Java sea la causa. Esa es una correlación y, como estoy seguro de que has escuchado, la correlación no implica causalidad.

Estoy contigo hermano!

He desarrollado algo de Java a fines del siglo pasado y la mayoría de los programas que escribí no duraron ni una hora antes de que Garbage Collector hiciera un berrinche.

Luego hice un poco de control de calidad en un paquete de software (un navegador PIM primitivo, correo electrónico …) de SUN (Sí, Java todavía era propiedad de SUN en ese momento) y encontré tantos errores que SUN detuvo el desarrollo por completo y nos envió a alguien más 🙂

Desde entonces (desde aproximadamente 2006) he desarrollado mucho C # y nunca he tenido ninguno de esos problemas. Tal vez sea C # lo que funcione mejor conmigo, tal vez la VM de Microsoft sea mucho mejor que la VM Java o tal vez 6 años después todas las VM hayan aprendido algunos trucos.

Estoy empezando a buscar en Android y tal vez usaré Java, tal vez C # (Xamarin) tal vez Kotlin, veré cómo funciona. (Actualmente prefiero la idea de C #, pero quién sabe)

Si puede, puede ser una buena idea tomar un descanso de Java e intentar algo completamente diferente. Luego, después de unas semanas, vuelva e intente nuevamente. Lo creas o no, eso es algo que funciona para mucha gente.

Si tiene preguntas más concretas en lugar de una diatriba general, puede probar las preguntas más nuevas de ‘java’ sobre el desbordamiento de la pila, que podría ser una mejor plataforma para programar preguntas específicas.

Si no te gusta Java pero aún quieres jugar en la JVM, prueba el lenguaje de programación Kotlin.

Descargo de responsabilidad: aún no lo he usado, pero escucho cosas buenas al respecto