我能这样做吗? 我担心这可能是一种过度杀伤力,最终我的生产力会比使用像Ruby / Python这样的传统堆栈低得多。我知道,如果你开始使用新技术,你将从低得多的生产力开始,但是......它是否值得尝试,最后转而使用Erlang作为Web开发和所有后端内容的唯一工具。
或者Erlang是否更适合某些高性能后端任务?
答案 0 :(得分:8)
可能不是。
你能吗?当然是。你应该?可能不是。如果您的目标是学习一门新语言,那么请务必这样做。学习语言的最佳方法是跳入并使用它。
尽管如此,已建立的Web框架和语言很受欢迎是有原因的,它们可以工作。更重要的是,如果您将来需要人们与您合作,使用更加模糊的语言可以缩小人才库。我过去曾经遇到过这个问题几次,在X语言学习中开始的东西最终投入生产。然后,一旦开发人员进入或进入一个不同的项目,或者规模对于单个开发人员来说太大,你就会非常沉迷于招募新人才。
正如Jer的评论所说,你真的需要问问自己为什么要将Erlang用于Web应用程序。某些工具和技术非常适合某些任务,有些则不然。例如,螺丝刀非常适合拧入螺丝,但只是一把可通过的锤子。
答案 1 :(得分:5)
看看http://nitrogenproject.com/这是一个仅基于erlang的网络框架。
答案 2 :(得分:5)
氮气很好,但实际上不是mvc。
你应该使用或不使用天气的问题实际上取决于你的项目。如果你的项目的其他方面使用Erlang,那么“没人知道Erlang”的论点就没有实际意义了。
仍然很难说Erlang Web技术最终会达到什么样的采用水平,但一旦你理解了Erlang,Erlang通常就是一个坚实的平台和非常高效的语言。社区比其他人更强大你会相信。
有一个原因,ejabberd是规范的XMPP服务器,而rabbitmq正在成为规范的AMQP服务器,Damien Katz使用CouchDB。 Erlang为分布式,可扩展,容错的服务器提供了最佳平台,Web服务器也不例外 - 没有理由认为不可能实现更广泛的采用。
答案 3 :(得分:2)
真正的问题是你是否应该考虑MVC。在我看来,MVC的概念有点过时,只会让简单的错觉产生堵塞的框架。
如果你想拥有一个轻量级的框架或工具包,其最小的触摸能够提高erlang在卓越性能方面的声誉,那么请考虑使用erlang。
您首先应该查看Webmachine
答案 4 :(得分:2)
除了专注于Web应用程序的具体答案。 Erlang.org 获得自己对生产力的估算:
http://erlang.org/faq/how_do_i.html#idp32808400
5.16 ...估计Erlang项目的生产力?
粗略的经验法则是大约相同数量的代码行 每个开发人员都在C项目中生成。相当复杂 涉及分布和容错的问题将是粗略的 在Erlang中比在C中短五倍。
减缓项目速度的传统方式,例如增加军队 顾问中途,花了一年时间写详细设计 在编写任何代码之前的规范,严格遵循a 瀑布模型,在几个国家和地区推广发展 举行团队会议,决定使用的餐巾的颜色 在午餐工作中,对于Erlang和其他语言一样。
答案 5 :(得分:2)
其实是可以的。为了构建REST API,我使用WebMachine并构建Web应用程序,我非常喜欢Chicago Boss。
但是,考虑Web应用程序的要求非常重要。虽然Erlang确实拥有相当不错的第三方库,但它并没有使用Ruby,Python或Java。
从一个开发者到另一个开发者,生产力是不同的。使用SpringMVC,一个开发人员可以非常高效。我真正关心的是制作'你的系统。有了Clojure和Erlang,我觉得我的代码已经完成了。
答案 6 :(得分:1)
我很确定你在Python / Ruby中的效率会比在Erlang中更高效,特别是考虑到Web开发。
谈到我正在处理的Python。存在大量的库,使大多数与Web相关的功能更容易实现,编写了大量的手册,几乎涵盖了您计划进行的任何方面。
Erlang是一个用于执行不同任务的工具,它背后有一个较小的社区(例如,我写作时只出现了一个新答案;如果是Python线程,那么至少会有十个:)