我应该在Erlang中重新编写webapp前端吗?

我应该在Erlang中重新编写webapp前端吗?,erlang,Erlang,我有一个Rails webapp[部署在Heroku上],它使用Heroku的rake:cron特性重复地对其他站点进行一系列HTTP调用。目前的情况并不理想;rake:cron进程在单个线程中执行,这意味着HTTP调用是按顺序进行的;这就意味着,对同一个站点的呼叫间隔很长[通常为2分钟] 我希望并行执行这个过程,并将调用之间的时间减少到10秒。看过凯文·史密斯的《实践中的Erlang》后,我开始考虑使用Erlang作为替代后端。我想弄清楚的是,我是应该a)用Erlang、前端和all重新编写整

我有一个Rails webapp[部署在Heroku上],它使用Heroku的rake:cron特性重复地对其他站点进行一系列HTTP调用。目前的情况并不理想;rake:cron进程在单个线程中执行,这意味着HTTP调用是按顺序进行的;这就意味着,对同一个站点的呼叫间隔很长[通常为2分钟]

我希望并行执行这个过程,并将调用之间的时间减少到10秒。看过凯文·史密斯的《实践中的Erlang》后,我开始考虑使用Erlang作为替代后端。我想弄清楚的是,我是应该a)用Erlang、前端和all重新编写整个webapp,还是b)用Rails前端/Erlang后端维护一个拆分结构

我喜欢在项目中使用100%Erlang堆栈的想法;我需要使用某种Erlang web框架[Non?Erlyweb?];我担心他们不够成熟,我会把时间花在与他们一起的项目web部件上


有人有什么看法吗?谢谢。

HTTP后端调用之间的两分钟间隔对访问者的实际影响是什么


如果没有太大区别,我会说这听起来像是过早的优化,现在跳过Erlang会更好。

这取决于情况。你知道多少Erlang?您已经编写了多少代码? 你有多少项目经验?这是工作还是娱乐

从头开始重写项目通常会带来灾难,特别是如果您正在尝试的话 一路上学习一门新语言。在我看来,如果你已经精通这两种语言,你就不会问这个问题。在这种情况下,如果Ruby是一个工作项目,我建议你还是坚持使用它

我不同意上面的海报,改变语言是过早的优化,如果有必要的话。 改变语言是一件大事。这不可能在最后一刻完成。 但是,我可能根本不会因为您概述的原因而更改语言。 如果除了性能之外,您没有任何其他原因需要切换,那么您应该
看看Ruby中的多线程或其他优化。

前面的两张海报几乎涵盖了您问题的哲学方面。因此,我将回答您问题中框架成熟度/陷入困境的部分

如果出于任何原因,您决定在erlang中重写webapp,那么我不会太担心框架会让您慢下来。erlyweb和氮气的功能已经足够完善,您可以很快使用它们。我在氮气中开发了一个相当复杂的敏捷项目管理应用程序,发现它非常直观,并没有缺少我需要的功能。在晚上几个小时和几周后,我有一个工作应用程序启动并运行

至于使用哪一个,这取决于你想要构建的应用程序的类型

氮的目标是非常动态的web应用程序。大部分页面都是使用javascript呈现的,并且是高度事件驱动的

与富客户端类型的应用程序相比,ErlyWeb更适合于内容是主要焦点的站点。它使用了MVC风格的architecure


祝你万事如意。

我会用正确的工具来完成这项工作。除非你有一个完全正确的理由来移植前端,否则将两者结合在一起绝对没有错。

我没有说改变语言总是过早的。哈哈。所以你说的和我说的一样,就是在这种情况下,它听起来像prem.optimizationd该应用程序是一个股票交易应用程序。它每隔两分钟工作一次,但它比真正的实用程序更“有趣”。实际效用==10秒内的间隔。因此,也许我应该重新表述这个问题:我需要在Erlang中重写后端以使其工作;我应该在Erlang重做正面还是把它放在轨道上?嗯,明白了。我会把前端放在栏杆上。除了Rails本身的所有优点之外,您还可以访问许多有用的gem/插件。Erlang很棒,但我认为它还不能与Rails带来的所有易于开发的优点相竞争。还有Erlang Web框架: