¿Qué opinas sobre elegir Java EE como backend?

He trabajado en pequeños proyectos usando la pila MEAN, el framework java Play, Python-pyramid y frameworks php como codeIgnitor.

En 2011–2012, pasé un poco de tiempo leyendo los conceptos básicos de J2EE para mi trabajo de curso en mi licenciatura. Me pareció bastante trabajo mostrar una página web de alguna manera. Cuando lo haces, sabes que es un buen trabajo, ya que tienes el control de muchas maneras y puedes cambiar muchas cosas con los métodos expuestos.

Pero después de eso, intentas algo como php o python y te das cuenta de que se desarrolló la misma página web en lo que podría parecer 1/10 del tiempo necesario para hacerlo en Java.

Esto, por supuesto, mucha gente estará de acuerdo en que si tienes un pequeño proyecto y decides ir a Java (JEE – Spring u otros marcos de Java), tomarán mucho tiempo para la configuración inicial. Tienes que configurar muchas cosas y escribir código para muchas cosas. A la gente le resulta frustrante, uno porque lleva mucho tiempo y 2 porque necesitas saber todo eso para que funcione. No puede escribir esas cosas, necesita conocer muchas clases y métodos para hacer la configuración correctamente.

(O use el código de la placa de la caldera o siga algunos blogs que dan el código y una explicación paso a paso)

Mi punto es que hay tantas cosas involucradas, que debes seguir una referencia de algún tipo para hacer lo más básico también. Lleva mucho tiempo y terminas desperdiciando la lectura y probando algo, lo que si hubieras tomado un marco más ligero, se habría hecho en tan poco tiempo.

Sin embargo, y aquí es donde se pone interesante, vale la pena. – A la larga. Spring no está destinado a proyectos pequeños o incluso a hackatones donde tienes que codificar algo y mostrar una buena demostración en 2 a 3 días como máximo.

JEE está destinado a aplicaciones empresariales. Imagine una base de código donde hay cientos de clases. Te darás cuenta de que configurarlo hace que sea tan fácil a largo plazo, para ti y para cualquiera que trabaje contigo seguir la estructura y hacer lo que sea necesario.

Personalmente, sentí que aprendía la primavera y JEE valió la pena el tiempo dedicado a comprender las cosas complejas a su alrededor. No es la mejor manera de hacer las cosas, pero ciertamente tiene un encanto.

Si tuviera que usar Java, y no tiene demasiado tiempo para implementar, sugeriría Play Framework. Es más fácil, además tienes la posibilidad de usar scala con él (si te apetece funcional 🙂)

¿Backend para qué? Si crea un blog de recetas, use PHP. Si crea una aplicación bancaria, use J2EE.

J2EE y el ecosistema en el que vive le proporciona las capacidades transaccionales que no existen en el mundo PHP / Ruby / Python / Node.js.

Bueno, depende de quién va a hacer el trabajo y (posiblemente más relevante) quién va a mantener el código en el futuro. Pero como regla general, Java tarda más en desarrollarse, pero probablemente será de mayor calidad y será relativamente fácil contratar a más personas. Los mercados empresariales también adoran Java. Hay algunos lenguajes intermedios (Python, Ruby, Javascript) que les gustan a los niños geniales y ofrecen beneficios significativos en términos de velocidad de desarrollo, pero en mi humilde opinión, necesitan un cuidado significativamente mayor cuando se desarrollan y pueden hacer que algunas operaciones se sientan enfermas.

Lo odio. He usado Java EE dos veces y nunca más. Es demasiado complicado. Si piensa en sus clases cs y le dicen “no use variables globales porque rompe la encapsulación y representa el estado no administrado”, y luego mire todos los valores de configuración en Java EE donde cada valor representa una variable global, Veo mi preocupación por las complicaciones. En consecuencia, puedo y he escrito mejores bibliotecas para resolver los mismos problemas y, como resultado, he mejorado mi velocidad.

Pero mi software nunca fue vendido para que otras corporaciones lo usaran. Todo mi software está oculto en un servicio que poseo y mantengo, y está diseñado solo para el entorno de Amazon. Cuando otras compañías necesitan integrarse con mi software, llaman a mi servicio.

No le doy mi código a otras compañías para que lo posean, lo mantengan y lo integren con su entorno. Java EE destaca en su capacidad para cambiar radicalmente las características de rendimiento / integración modificando cualquiera de docenas y docenas y docenas de archivos de configuración.

Volviendo a la cuestión del uso de Java EE para su backend, ¿cómo se están integrando sus clientes con su software?