Opinión sobre Java J2EE

Urien

Buenas tardes.

Soy un programador multidisciplinar (o sea una mierda que ha tocado muchos palos pero ninguno en profundidad y por eso no lo contratan) que ha decidido probar suerte con J2EE.
Estoy inmerso en un curso, ofertado por el paro, de unas 250h en este lenguaje. El profesor que lo da es un auténtico bestia en la materia así que contento.

Contento... en parte la verdad. Estoy viendo que la cantidad de soplapolleces que hay que hacer en J2EE para hacer lo mismo en, por ejemplo, PHP es anormalmente grande. Por no hablar de que tienes que tener un control brutal sobre por donde va el flujo, aprender etiquetas de JSP, etc.

La gran ventaja radica en aquello llamado JPQL, que no es más que un lenguaje que se inventó Java para que independientemente de la base de datos a la que conectemos funcionen todas las consultas. Bravo. Fantástico. Un gran punto a favor... si no fuera porque entonces llegan los frameworks y dicen que no, que se va a usar un SQL que ellos mismos crean, como pasa por ejemplo con Hibernate y su HQL. Con que toda la ventaja inicial se va al traste porque luego tienes que aprender HQL.

La otra gran ventaja es la metodología de trabajo. J2EE te obliga a trabajar en Modelo Vista Controlador, lo que me parece excepcional pero resulta que PHP (por poner un ejemplo claro de competidor en la materia) implementó esa misma metodología de trabajo hace 2 años. Aún así es cierto que está a años luz de la de J2EE, las cosas como son.

Los frameworks que presenta J2EE es el pan nuestro de cada día. O sabes una cantidad decente de ellos o despídete de encontrar curro en esto porque aunque bien podrías hacerte un proyecto web con los Servlets de J2EE no dudes en que te pedirán Struts, Hibernate, Spring, etc.
Estos frameworks se solapan entre si multitud de veces y cada uno tiene sus propias etiquetas para crear formularios, tablas, listas, combos...
Acabo de terminar de ver el framework Java Server Faces (JSF) que potencia las vistas y lo que tu quieras pero que a mi juicio es exactamente lo mismo que Struts solo que peor.

Sinceramente estoy un poco desencantado, tanto por la complejidad que supone con respecto a otras alternativas de trabajo (espero que alguien pueda decirme aquí lo contrario) como por la cantidad de duplicidades y movidas de la plataforma estandar (J2SE) que han decidido clavar aquí. Es como programar en estandar para hacer web. Para mi un verdadero pisto.

Me gustaría saber vuestras opiniones al respecto sobre este lenguaje.

Spacelord

"Estoy viendo que la cantidad de soplapolleces que hay que hacer en J2EE para hacer lo mismo en, por ejemplo, PHP es anormalmente grande".

Y esa es la clave.

Como dijo un señor que sabía más que yo de esto, "Java es un lenguaje que sirve para muchas cosas. Hacer páginas web no es una de ellas". En serio, es UNA MIERDA. El sistema MVC es una ventaja hasta que te paras y piensas que podrías estar haciendo lo mismo con la mitad de esfuerzo y de parafernalia.

Java, en sí, es como cualquier otro lenguaje: sirve para unas cosas y para otras no. Y para las que sirve, sirve muy bien. Pero por favor, dejemos de usarlo para programación web porque no es la mejor solución ni de lejísimos.

1 respuesta
cabron

#2

Creo que confundes el objetivo de J2EE, no está pensado para hacer páginas web, está pensado para hacer aplicaciones empresariales distrubuidas, si simplemente vas a hacer un blog, un foro, o cualquier otra página de contenido dinámico, no tiene ningún sentido usar J2EE, solo es para aplicaciones con miles de usuarios simultáneos, fuertes controles de acceso, fuentes de datos distribuidas por varias máquinas, incluso la lógica de la aplicación puede estar distrubida, y ni siquiera es necesario acceder por página web, puede haber un cliente de escritorio o cualquier tipo de terminal, de hecho el grueso de J2EE está en los enterprise beans que no tienen nada que ver con el front end que es lo que harías en jsp/servlets. Es una mierda igual, aunque nunca he usado otra cosa para este tipo de aplicaciones para poder comparar.

#1

J2EE es un soberano coñazo, pero más que por la tecnología en sí (que también), por el tipo de desarrollos a los que está orientado, pero bueno para gustos los colores, a alguien le gustará trabajar en esto, hay gente que hasta le gusta trabajar con COBOL...

Los frameworks que se basan en J2EE (que ya es un framwork por sí mismo) se supone que intentan hacer más fácil el uso de J2EE y ocultar un poco su complejidad. Yo trabajé unos años con un framework privado que se desarrolloaba internamente en la empresa, y en general siempre es bueno conocer algo de J2EE por debajo para entender lo que hace, puede ser la diferencia entre saber que hacer o morir de desesperación cuando te da un pete que parece no tener sentido, pero lo normal si trabajas con el framework, es que J2EE no lo vas a usar, aunque no he tocado nunca los conocidos (struts, hibernate, etc), así que no sé como es trabajar con ellos, pero en general esto es así para cualquier framework de lo que sea.

Luego también ten en cuenta que en muchas ofertas de trabajo se flipan lo que no está escrito, en plan "experto en J2EE, Struts, Hibernate, Spring, Oracle, DB2, HTML, PHP, Wodpress, Jomla, C++, ensamblador, y pilotaje de naves espaciales". Lo cierto es que en la mayoría de trabajos luego siempre estás trabajndo con lo mismo. Saber de otras cosas siempre va a ser un plus por que antes o después tu proyecto se cruzará con otro que está hecho en otra tecnología, y poder meterte en las discusione y decir cosas con sentido va a hacer que te valoren más, pero vamos, si ya es difícil ser experto en una tecnología, ni te cuento en más de una, saber moverte por varias tecnologías es más realista que aspirar a ser experto, para lo demás están las referencias, google, stackoverflow, etc, para buscar como se hace X cosa según te van surgiendo problemas. Si realmente en una empresa te exigen que cada día toques una cosa distinta y lo hagas con máxima eficiencia, echandote en cara lo malo que eres por no poder hacerlo, cambia de empresa...

De todas formas el problema real, más que poder plantarte en la entrevista a decir que te sabes de pe a pa todos los frameworks, es la experiencia laboral, ya sabes, eso de solo te contratan si tienes experiencia, pero como no te contrata nadie no la consigues...

2 respuestas
Spacelord

#3 Esa es la teoría y el uso real del estándar J2EE, pero la práctica es que un montón de gente usa J2EE para cosas que no debería y se complica un montón la existencia. Debería haber matizado que no es una cosa de la herramienta, sino del mal uso que le dan muchas empresas.

BLZKZ

java para web es la peor idea del mundo. Antes que seguir ese camino probaría nuevas tendencias como nodejs

B

#1: Yo no me metería en el mundo J2EE, es como la bandera de las empresas rancias y explotadoras. Eso sí, esas empresas son un alto porcentaje y si no tienes pensado irte del país... siempre es una opción.

Yo hice mi PFC de la técnica con Hibernate, Spring, Tapestry (y otros más) y no me disgustó, pero luego probé Django y fue como... chúpamela J2EE (eso sí, PHP me da aún más asco).

#7: Pues entonces me callo la boca. Groovy no tiene mala pinta, está en mi interminable lista de TODOs. Yo es que JEE lo asocio a Indra y Everis, que para mí son como el demonio: mediocridad técnica y explotación a partes iguales.

Me alegra saber que fuera también hay oportunidades para Java. Eso sí, insisto, Django lo vi muchísimo más rápido que JEE. Pero claro, hablo desde el punto de vista de hacer cuatro chorradas, no desde el punto de vista de tener plataformas de la hostia en producción.

También he de decir que he visto pocas ofertas de trabajo de empresas aparentemente atractivas que sean de JEE.

PD: De PHP es mejor ni hablar, la verdad.

1 respuesta
Khanser

#6 Yo estoy en UK currando con J2EE y no por 4 duros precisamente, así que eso de que si no tiene pensado irse del pais... De hecho, con mas de 7 años de experiencia, y habiendo aprovechado bien tu carrera, en Londres puedes llegar a pillar curros de 90k para arriba. Es muy "cool" currar con Django, NodeJS, Grails y mil tecnologias, pero esto está enfocado para empresas, tanto es asi que pagandole 2 meses a un "arquitecto" que deje todo bien montado, luego pueden hacer sus desarrollos pagando a 5 juniors durante 1 año ahorrandose una pasta, o contratar a varios ingenieros "que sepan" y aprovechar al maximo porque sí, habrá otras herramientas que hagan mil historias con 1 sola instrucción, pero de que le sirve a una empresa si cuando te marches de ella otro ingeniero tiene que pillar tu codigo y no entiende una mierda? Y cuando no es un ingeniero y es un pobre chaval que acaba de salir de la universidad? Curré picando PHP durante casi 1 año en una empresa de E-commerce y no vuelvo a esa mierda en mi vida. Java es más mantenible que PHP y Python por regla general(basicamente por restringir que puedas hacer ciertas cosas) pero si nos ponemos a mirar esta grafica:

Sacaremos que hay que estudiar Groovy, que es lo "que se lleva" ahora :D

Llevo ya 5 años trabajando con J2EE en varias empresas, para tropecientos proyectos y con 40 frameworks, y he visto cosas... desde cosas que me han aterrorizado, hasta cosas que me han molado mucho. Como dice #3 si haces una web dinamica simple con Java es porque se te ha ido la olla :D

Pero bueno, la verdad es que desde JEE6 la cosa esta mejorando bastante, y del mojon infumable que era en Java 1.4 ahora me gusta bastante más.

1 2 respuestas
JuAn4k4

#7 ¿ Lo de groovy va de coña no ? La cosa es que la grafica muestra 2 naranjas y no se diferencian bien... pero el que va para arriba no es groovy.

Todo en indeed, ofertas de trabajo para busquedas:
Java Developer = 31,716
.Net Developer = 24,674
C# Developer = 18,805
Mobile Devleoper ~ 16,500
PHP Developer - 10,000
iOS Developer / Android Developer ~ 5,000
COBOL Developer - 1052
Groovy Developer = 753
Scala Developer - 521
Clojure Developer - 134

Puedes encontrar más/menos cambiando keywords y quitando "Developer", pero vamos...

1 respuesta
Khanser

#8 es una gráfica dinámica, si solo ponemos java y groovy:
http://www.indeed.com/trendgraph/jobgraph.png?q=java%2C+groovy&relative=1

Pero lo que deberías mirar es que la grafica es una gráfica de crecimiento relativo, es normal que salgan estas cosas xD

Si lo ponemos como ofertas de trabajo absolutas:

Usuarios habituales