2010-06-10 8 views
6

¿Puedo hacer eso? Me temo que esto puede ser una exageración y eventualmente terminaré con mucha menos productividad que con la pila tradicional como Ruby/Python/lo que sea. Entiendo que comenzará con una productividad mucho menor si comienza a trabajar con nueva tecnología, pero ... ¿vale la pena intentarlo y finalmente cambiar a Erlang como la única herramienta para el desarrollo web y todas las cosas de back-end.¿Debo considerar Erlang para web mvc?

¿O es Erlang más adecuado solo para algunas tareas de back-end de alto rendimiento?

+6

Una cosa que debes hacer primero, es pregúntate por qué querrías usar Erlang para este propósito. Si aún no lo ha hecho, hágalo, se sorprenderá si no puede encontrar una respuesta que le parezca adecuada. – jer

Respuesta

8

Probablemente no.

¿Puede usted? Sí, por supuesto. ¿Deberías? Probablemente no.

Si su objetivo es aprender un nuevo idioma, entonces, sin dudas, hágalo. La mejor manera de aprender un idioma es saltar y usarlo.

Dicho esto, los marcos web e idiomas establecidos son populares por una razón, funcionan. Aún más importante, si necesita personas que trabajen con usted en el futuro, usar un lenguaje más oscuro reduce el grupo de talentos por tonelada. Me he encontrado con este problema algunas veces en el pasado, donde algo que comenzó como un ejercicio de aprendizaje en lenguaje X terminó yendo a la producción. Luego, una vez que el desarrollador se traslada a un proyecto diferente o la escala se vuelve demasiado grande para un solo desarrollador, está bastante confundido para reclutar nuevos talentos.

Como dijo el comentario de Jer, realmente necesitas preguntarte por qué usarías Erlang para una aplicación web. Ciertas herramientas y tecnologías están bien orientadas hacia ciertas tareas y otras no. Por ejemplo, un destornillador es ideal para atornillar tornillos, pero es solo un martillo transitable.

1

Estoy bastante seguro de que será notable más productivo en Python/Ruby que en Erlang, especialmente considerando el desarrollo web.

Hablando de Python con el que estoy tratando más. Existen muchas bibliotecas que hacen que la mayoría de las funcionalidades relacionadas con la web sean más fáciles de implementar, se escriben miles de manuales que cubren casi todos los aspectos de lo que planeas hacer.

Erlang es una herramienta para diferentes tareas y tiene una comunidad más pequeña detrás (por ejemplo, sólo una nueva respuesta apareció mientras estaba escribiendo el mío; eran que el hilo del pitón, habría por lo menos diez :)

5

El nitrógeno está bien, pero no es realmente mvc.

La cuestión del tiempo en que debe usar esto o no realmente depende de su proyecto. Si tiene otros aspectos de su proyecto usando Erlang, entonces el argumento "nadie sabe Erlang" se convierte en discutible.

Todavía es muy difícil determinar el nivel de adopción de las tecnologías Web de Erlang, pero Erlang en general es una plataforma sólida y un lenguaje muy productivo una vez que lo comprende. La comunidad es más fuerte que otros te harán creer.

Hay una razón por la que ejabberd es el servidor XMPP canónico y que rabbitmq se está convirtiendo en el servidor AMQP canónico y que Damien Katz lo usó CouchDB. Erlang proporciona la mejor plataforma para servidores distribuidos, escalables y tolerantes a fallas, y los servidores web no son una excepción; no hay motivo para pensar que una adopción más amplia no podría ocurrir.

2

La verdadera pregunta es si debe considerar MVC.La noción de MVC está un poco desactualizada en mi opinión y solo ayuda a dar la ilusión de simplicidad a los marcos obstruidos.

Si desea tener un marco de trabajo liviano o de herramientas con el toque mínimo que contribuye a la reputación de Erlang de un rendimiento excelente, entonces sí, considere erlang.

usted debe comenzar por echar un vistazo a Webmachine

+3

¿Puedes explicar por qué crees que MVC está desactualizado? – jocull

+0

Mi opinión no relacionada: después de un tiempo descubres que en realidad es más fácil crear una pila más delgada con solo los componentes que deseas, en lugar de incluir el 80% de las cosas que no usarás en un marco típico, lo que a veces genera una sobrecarga innecesaria dependiendo de es diseño. – bojo

2

Al lado de la respuesta específica se centra en las aplicaciones web. Erlang.org llegar es estimaciones propias sobre las productividades:

http://www.erlang.org/faq/how_do_i.html#id55052

5,16 ... estimar la productividad en un proyecto de Erlang?

Una regla aproximada es que aproximadamente el mismo número de líneas de código se producen por desarrollador como en un proyecto C. Un razonablemente complejo problema que implica la distribución y la tolerancia a fallos será aproximadamente cinco veces más corto en Erlang que en C.

Las formas tradicionales de desaceleración proyectos, como la adición de ejércitos de consultores a medio camino, pasar un año escribiendo diseño detallado especificaciones antes de que se escriba cualquier código, siguiendo rígidamente un modelo de cascada , expandiendo el desarrollo en varios países y celebrando reuniones de equipo para decidir el color de las servilletas utilizadas en el almuerzo funcionan igual de bien para Erlang que para otros idiomas.

2

En realidad, sí se puede. Para construir API REST, uso WebMachine y para crear aplicaciones web, realmente me gusta Chicago Boss.

Pero es realmente importante considerar cuáles son los requisitos de sus aplicaciones web. Si bien es cierto que Erlang disfruta de un paraguas considerablemente bueno de bibliotecas de terceros, no está en la barra con Ruby, Python o Java.

La productividad es diferente de un desarrollador a otro. Un desarrollador, podría ser realmente productivo con SpringMVC. Lo que realmente me importa es 'diseñar' tu sistema. Y con Clojure y Erlang, siento que creo mi código.

Cuestiones relacionadas