¿Cuáles son las ventajas o desventajas de usar Java vs JavaScript como marco de back-end para aplicaciones móviles?

Como regla, cualquier persona mayor de 25 años dirá que Java puede hacer cualquier cosa, cualquier persona más joven dirá que Javascript puede hacer cualquier cosa. Y ambos tienen razón.

Lo que realmente importa es ¿cómo quieres programar? ¿Cómo piensas sobre el código? ¿Qué estilo de codificación va a ser la construcción y el mantenimiento más efectivos?

Si está muy estrictamente orientado a objetos y se siente cómodo con las fábricas y los singletons, Java podría ser el camino a seguir.

Si te gusta más el código imperativo y funcional, un código que hace lo que dice que hace (y nada más), Javascript será tu atasco.

En cuanto a las desventajas, si aún no lo sabe, no se preocupe. La velocidad del código del mundo real (no del tipo que te enseñan en la universidad) es MUY complicada, así que a menos que estés diseñando un nuevo tipo de compilador JIT, no te preocupes por la velocidad al elegir un idioma.

En verdad, esa es una pregunta muy difícil de responder. Ambos idiomas (y cualquiera de los marcos que probablemente usaría) tienen sus ventajas y desventajas.

Probablemente depende de los detalles del proyecto, su conjunto de habilidades y varios otros factores.

Personalmente, nunca he sido fanático de Java y encuentro muy laborioso desarrollar y mantener SIN EMBARGO, no puedo negar que hay algunos proyectos y condiciones en los que sería mejor que JavaScript.

Diré que me sorprende escuchar que consideras esas dos opciones dadas que son bastante diferentes. Más a menudo las personas evaluarían los pros y los contras entre Python, Ruby y Java.

¿Hay alguna razón por la que no haya considerado Python o Ruby?

¡Hola!

Sugeriría mirar Enonic XP. Es un sistema operativo web para sus sitios y aplicaciones, y en realidad puede construir su backend en JavaScript y Java ejecutándose en la misma JVM. Use Java para el trabajo pesado y Javascript para su funcionalidad MVC general.

Más detalles en nuestra documentación: Guía del desarrollador: documentación de Enonic XP 6.4.0-SNAPSHOT

La plataforma es de código abierto (enonic / xp).

Saludos,

Morten Ø. Eriksen

Depende del tamaño, la complejidad y los requisitos de escalabilidad de su proyecto. Si eres experto en Java, entonces ve con Java. Si elige Java, recomiendo encarecidamente Java 8, con lambdas en realidad es bastante expresivo y tiene un buen soporte ide (por lo que, de hecho, la productividad puede ser mayor que, por ejemplo, JavaScript).
Incluso si necesita un backend asincrónico altamente concurrente, puede hacerlo en Java. Eche un vistazo a vertx ( http://vertx.io/ ): es IMO más fácil de entender y trabajar que nodejs.

No puedo evitarlo, pero para mí JavaScript todavía parece demasiado “salvaje oeste” en comparación con otros lenguajes populares

Puedes escribir el backend en lo que quieras. Para proyectos grandes, Java será más manejable y escalable que JavaScript. También puede mirar cualquier otro lenguaje (PHP, Ruby, etc.). Elegiría lo que sea que tengas más habilidades en