也就是说,已建立的 Web 框架和语言之所以流行是有原因的,它们很有效。更重要的是,如果你将来需要有人与你一起工作,使用更晦涩的语言会大大缩小人才库的范围。我过去曾多次遇到过这个问题,最初作为 X 语言的学习练习的东西最终投入了生产。然后,一旦该开发人员继续或进入不同的项目,或者规模对于单个开发人员来说太大,那么您在招聘新人才时就陷入困境。
正如 Jer 的评论所说,你真的需要问自己为什么要使用 Erlang 作为 Web 应用程序。某些工具和技术非常适合某些任务,而有些则不然。例如,螺丝刀非常适合拧螺丝,但锤子的作用还过得去。
Probably not.
Can you? Yes of course. Should you? Probably not.
If your goal is to learn a new language then sure, by all means do so. Best way to learn a language is to jump in and use it.
That said, established web frameworks and languages are popular for a reason, they work. Even more important, if you need people to work with you in the future, using a more obscure language narrows down the talent pool a ton. I've run into this problem a few times in the past, where something that started out as a learning exercise in language X ended up going into production. Then, once that developer moves on or into a different project, or the scale gets too large for a single developer, you are pretty much screwed at recruiting new talent.
As the comment from Jer said too, you really need to ask yourself why you would use Erlang for a web application. Certain tools and technologies are well geared towards certain tasks and some aren't. For example, a screwdriver is great at screwing in screws but is only a passable hammer.
The question of weather you should use this or not really depends on your project. If you have other aspects of your project using Erlang, then the "nobody know Erlang" argument becomes moot.
It's still very hard to tell what level of adoption Erlang Web technologies will eventually reach, but Erlang in general is a solid platform and a very productive language once you understand it. The community is stronger than others will have you believe.
There is a reason that ejabberd is the canonical XMPP server and that rabbitmq is becoming the canonical AMQP server and that Damien Katz used it CouchDB. Erlang provides the best platform for distributed, scalable, fault tolerant servers, and web servers are no exception -- there is no reason to think wider adoption could not happen.
Actually yes can. For building REST APIs, I use WebMachine and for building web application, I really like Chicago Boss.
But it is really important to consider what are the requirements of your web applications. While it is true that Erlang enjoys a considerably good umbrella of third-party libraries, it is not on the bar with Ruby, Python or Java.
Productivity is different from one developer to another. One developer, could be really productive with SpringMVC. What I really care about is 'crafting' your system. And with Clojure and Erlang, I feel that I do craft my code.
The real question is whether you should consider MVC. The notion of MVC is a bit outdated in my opinion and only helps give the illusion of simplicity to clogged up frameworks.
If you want to have a lightweight framework or toolkit with the minimal touch that contributes to erlang's reputation for excellent performance, then yes consider erlang.
5.16 ...estimate productivity in an Erlang project?
A rough rule of thumb is that about the same number of lines of code are produced per developer as in a C project. A reasonably complex problem involving distribution and fault tolerance will be roughly five times shorter in Erlang than in C.
The traditional ways of slowing down projects, like adding armies of consultants halfway through, spending a year writing detailed design specifications before any code is written, rigidly following a waterfall model, spreading development across several countries and holding team meetings to decide on the colour of the serviettes used at lunch work just as well for Erlang as for other languages.
I'm pretty sure you will be notable more productive in Python/Ruby than in Erlang, especially considering web development.
Speaking about Python which I'm dealing more with. Lots of libraries exist making most of web-related functionality easier to implement, tons of manuals are written covering almost every aspect of whatever you are planning to do.
Erlang is a tool for different tasks and it has a smaller community behind (for example, only one new answer appeared while I was writing mine; were it Python thread, there would be at least ten :)
发布评论
评论(7)
可能不会。
你可以吗?是的当然。你应该吗?可能不会。
如果您的目标是学习一门新语言,那么请务必这样做。学习一门语言的最好方法就是投入并使用它。
也就是说,已建立的 Web 框架和语言之所以流行是有原因的,它们很有效。更重要的是,如果你将来需要有人与你一起工作,使用更晦涩的语言会大大缩小人才库的范围。我过去曾多次遇到过这个问题,最初作为 X 语言的学习练习的东西最终投入了生产。然后,一旦该开发人员继续或进入不同的项目,或者规模对于单个开发人员来说太大,那么您在招聘新人才时就陷入困境。
正如 Jer 的评论所说,你真的需要问自己为什么要使用 Erlang 作为 Web 应用程序。某些工具和技术非常适合某些任务,而有些则不然。例如,螺丝刀非常适合拧螺丝,但锤子的作用还过得去。
Probably not.
Can you? Yes of course. Should you? Probably not.
If your goal is to learn a new language then sure, by all means do so. Best way to learn a language is to jump in and use it.
That said, established web frameworks and languages are popular for a reason, they work. Even more important, if you need people to work with you in the future, using a more obscure language narrows down the talent pool a ton. I've run into this problem a few times in the past, where something that started out as a learning exercise in language X ended up going into production. Then, once that developer moves on or into a different project, or the scale gets too large for a single developer, you are pretty much screwed at recruiting new talent.
As the comment from Jer said too, you really need to ask yourself why you would use Erlang for a web application. Certain tools and technologies are well geared towards certain tasks and some aren't. For example, a screwdriver is great at screwing in screws but is only a passable hammer.
看看http://nitrogenproject.com/,它是一个仅基于erlang的Web框架。
Take a look at http://nitrogenproject.com/ it's a web framework based only on erlang.
氮气很好,但不是真正的 MVC。
您是否应该使用它的天气问题实际上取决于您的项目。如果您的项目的其他方面都使用 Erlang,那么“没人知道 Erlang”的论点就变得毫无意义。
仍然很难判断 Erlang Web 技术最终会达到什么水平,但一旦你理解了 Erlang,总的来说,Erlang 是一个可靠的平台,也是一种非常高效的语言。这个社区比其他人让你相信的更强大。
ejabberd 成为规范的 XMPP 服务器、rabbitmq 正在成为规范的 AMQP 服务器以及 Damien Katz 使用 CouchDB 是有原因的。 Erlang 为分布式、可扩展、容错服务器提供了最好的平台,Web 服务器也不例外——没有理由认为不可能得到更广泛的采用。
Nitrogen is fine, but is not really mvc.
The question of weather you should use this or not really depends on your project. If you have other aspects of your project using Erlang, then the "nobody know Erlang" argument becomes moot.
It's still very hard to tell what level of adoption Erlang Web technologies will eventually reach, but Erlang in general is a solid platform and a very productive language once you understand it. The community is stronger than others will have you believe.
There is a reason that ejabberd is the canonical XMPP server and that rabbitmq is becoming the canonical AMQP server and that Damien Katz used it CouchDB. Erlang provides the best platform for distributed, scalable, fault tolerant servers, and web servers are no exception -- there is no reason to think wider adoption could not happen.
其实是可以的。为了构建 REST API,我使用 WebMachine,为了构建 Web 应用程序,我非常喜欢 Chicago Boss。
但考虑 Web 应用程序的要求非常重要。虽然 Erlang 确实享有相当好的第三方库保护,但它还无法与 Ruby、Python 或 Java 相提并论。
不同开发人员的生产力是不同的。一名开发人员使用 SpringMVC 可以真正提高工作效率。我真正关心的是“打造”你的系统。有了 Clojure 和 Erlang,我觉得我确实在编写我的代码。
Actually yes can. For building REST APIs, I use WebMachine and for building web application, I really like Chicago Boss.
But it is really important to consider what are the requirements of your web applications. While it is true that Erlang enjoys a considerably good umbrella of third-party libraries, it is not on the bar with Ruby, Python or Java.
Productivity is different from one developer to another. One developer, could be really productive with SpringMVC. What I really care about is 'crafting' your system. And with Clojure and Erlang, I feel that I do craft my code.
真正的问题是您是否应该考虑 MVC。在我看来,MVC 的概念有点过时,只会给堵塞的框架带来简单的错觉。
如果你想拥有一个轻量级的框架或工具包,以最少的接触来提高 erlang 的卓越性能声誉,那么可以考虑 erlang。
您应该首先查看 Webmachine
The real question is whether you should consider MVC. The notion of MVC is a bit outdated in my opinion and only helps give the illusion of simplicity to clogged up frameworks.
If you want to have a lightweight framework or toolkit with the minimal touch that contributes to erlang's reputation for excellent performance, then yes consider erlang.
You should start by taking a look at Webmachine
除了专注于网络应用程序的具体答案之外。 Erlang.org 获取自己对生产力的估计:
http://erlang .org/faq/how_do_i.html#idp32808400
Beside the specific answer focusing on web applications. Erlang.org get it's own estimates on productivities:
http://erlang.org/faq/how_do_i.html#idp32808400
我很确定你使用 Python/Ruby 会比使用 Erlang 更有效率,特别是考虑到 Web 开发。
说到Python,我接触的比较多。许多库的存在使大多数与网络相关的功能更容易实现,编写了大量的手册,几乎涵盖了您计划做的任何事情的每个方面。
Erlang 是一个用于不同任务的工具,它背后有一个较小的社区(例如,当我写我的答案时,只出现了一个新答案;如果是 Python 线程,至少会有十个:)
I'm pretty sure you will be notable more productive in Python/Ruby than in Erlang, especially considering web development.
Speaking about Python which I'm dealing more with. Lots of libraries exist making most of web-related functionality easier to implement, tons of manuals are written covering almost every aspect of whatever you are planning to do.
Erlang is a tool for different tasks and it has a smaller community behind (for example, only one new answer appeared while I was writing mine; were it Python thread, there would be at least ten :)