2012-01-08 5 views
6

Sé que incluso una pregunta Erlang o Java parece bastante extraño, porque son bastante diferentes idiomas con paradigmas incluso diferentes. Pero, ahora sé muy superficialmente ambos, así que, ¿qué le parece más valioso saber, rápido, escalable? Lo que me viene a la mente:Java (Grails) o Erlang (Elixir) en solicitudes web cortas: velocidad, escalabilidad?

  1. Java es el idioma principal. No estoy seguro acerca de Groovy y Grails, pero si el proyecto se convierte en algo más que su propio hobby, es mucho más fácil encontrar programadores Java que admitan este código. Elixir es un hobby de un buen programador de Erlang, por lo que sería muy difícil admitir el código en Elixir. Además, Grails ya está escrito marco, por lo que debe ser mejor implementado que mi propio auto escrito en el marco Elixir.
  2. La aplicación Erlang (está bien escrita) es sinónimo de escalabilidad. Pero cuando se trata de aplicaciones web que comienzan, hacen algunas consultas livianas y mueren, no hay necesidad de escalarlas más que las simples consultas de los usuarios de Round-Robin (procesos Java en diferentes máquinas).
  3. Si hablamos de muchas consultas simples (no largas encuestas, etc.) - tantos procesos despiertan y mueren cada segundo - Erlang tiene un modelo de proceso realmente liviano, así que ... ¿Qué pasa con Java y muchos nuevos generados y asesinados? procesado cada segundo?

Gracias de antemano.

PS Chart de this prueba de rendimiento arroja dudas sobre Java VM perfomance.

+0

Esto es _probably_ una buena opción para [Programadores SE] (http://programmers.stackexchange.com). He llamado a sus moderadores para echar un vistazo. Es probable que su pregunta migre allí en el futuro cercano. Sin embargo, lo dejo abierto por ahora, aunque es demasiado amplio para Stack Overflow. Creo que esto podría obtener algunas respuestas realmente buenas e interesantes, pero quiero verificar con mis colegas antes de migrar. –

+0

En general, "¿qué idioma/marco debería usar?" las preguntas están fuera del tema para los programadores ya que no incluyen ningún criterio claro para hacer la elección. Esto es * posiblemente * correcto, ya que tiene algunos criterios, pero no estoy seguro de que la comparación que está tratando de hacer sea válida. Sin embargo, no sé lo suficiente como para decirlo de una forma u otra. – ChrisF

+0

@Minner: No creo que ese punto de referencia tenga validez. –

Respuesta

-2

Definitivamente, Java. El rendimiento test al que se hace referencia muestra que el rendimiento de Java/Netty es igual al de Erico multinúcleo. Puede utilizar numerosas bibliotecas de E/S asincrónicas y de actor Java, para que cada solicitud no inicie un nuevo proceso o subproceso; simplemente cree un nuevo controlador en nanosegundos.

+3

Bueno, la prueba de rendimiento utiliza el servidor web OTP y Erlang tiene muchos otros servidores disponibles que son preferidos por su comunidad, como el vaquero. Confiar en que el punto de referencia es como confiar en el rendimiento de los servidores web de Ruby es el dado por webrick. En cualquier caso, como han dicho otros, no creo que esta decisión deba ser impulsada solo por esos puntos de referencia. –