Should I consider Erlang for web mvc?

Can I do it? I am afraid that this may be redundant, and in the end I get much less performance than with a traditional stack like Ruby / Python /, which you name. I understand that you will start with much lower productivity if you start working with new technologies, but .. is it possible to try it and finally switch to Erlang as the only tool for web development and all backends.

Or is Erlang more suitable only for some high-performance backend tasks?

+6
erlang
source share
7 answers

Probably no.

You can? Oh sure. You should? Probably not.

If your goal is to learn a new language, then be sure to do it. The best way to learn a language is to jump and use it.

However, installed web frameworks and languages ​​are popular for some reason; they work. More importantly, if you need people to work with you in the future, using a more obscure language narrows the talent pool per ton. I came across this problem several times in the past when something that started as a training exercise in the X language ended up in production. Then, as soon as this developer moves further or in another project, or the scale becomes too large for one developer, you are largely attached to a set of new talents.

As in the commentary from Jer, you really need to ask yourself why you want to use Erlang for a web application. Some tools and technologies are well-oriented to certain tasks, and some are not. For example, a screwdriver is great for screwing screws, but it is only a passive hammer.

+8
source share

Check out http://nitrogenproject.com/ this is an erlang-only web framework.

+5
source share

Nitrogen is great, but it's really not mvc.

A weather question that you should use or not depend on your project. If you have other aspects of your project using Erlang, then the argument "no one knows Erlang" becomes controversial.

It is still very difficult to say what level of adoption of Erlang Web technologies will ultimately reach, but Erlang as a whole is a solid platform and very productive language as soon as you understand it. The community is stronger than others, and you will believe.

There is a reason that ejabberd is a canonical XMPP server, and that rabbitmq becomes a canonical AMQP server and that Damien Katz used its CouchDB. Erlang provides the best platform for distributed, scalable, fault-tolerant servers, and web servers are no exception - there is no reason to believe that a wider deployment cannot happen.

+5
source share

The real question is whether MVC should be considered. The concept of MVC is a little outdated, in my opinion, and only helps to give the illusion of simplicity to clogged frameworks.

If you want a lightweight framework or toolkit with minimal touch, which contributes to erlang's reputation for excellent performance, then consider erlang.

You should start by browsing Webmachine

+2
source share

Beyond a specific web application oriented answer. Erlang.org get your own productivity scores:

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

5.16 ... evaluate performance in an Erlang project?

A rough rule of thumb is that approximately as many lines of code are produced per developer as in project C. A rather complicated distribution and fault tolerance problem will be approximately five times shorter in Erlang than in C.

Traditional ways of slowing down projects, such as adding armies of consultants halfway through spending a year on the detailed design of the specification before writing any code, strictly following the waterfall model, expanding development in several countries and holding group meetings to determine the color of wipes used on The dining table is as good for Erlang as for other languages.

+2
source share

In fact, yes it can. I use WebMachine to create the REST API and I really like the Chicago Boss to build the web application.

But it’s really important to consider what requirements are your web applications. Although it is true that Erlang uses a significantly good umbrella of third-party libraries, it is not in the panel with Ruby, Python, or Java.

Performance differs from one developer to another. One developer can be really productive with SpringMVC. I really care about “creating” your system. And with Clojure and Erlang, I feel like I am creating my own code.

+2
source share

I am sure that you will be more productive in Python / Ruby than in Erlang, especially considering web development.

Speaking of Python, with which I deal more. There are many libraries that simplify the implementation of most functions related to web functions, many manuals have been written covering almost all aspects of what you plan to do.

Erlang is a tool for different tasks, and it has a smaller community (for example, only one new answer appeared when I wrote mine, if it was a Python thread, there would be at least ten :)

+1
source share

All Articles