我应该学习哪种新语言来实现高性能,高并发性,Web开发?

Tow*_*wer 10 concurrency performance webserver node.js

到目前为止,我对服务器上只有PHP非常有信心.但是,我有一些额外的时间,我想学习一种新的服务器语言.

我知道PHP与新的公平和线程服务器技术相比有多慢.我一直在调查:

NodeJS:用JavaScript编写,编译并通过支持Chrome的谷歌V8运行.

RingoJS:用JavaScript编写,在Mozilla的基于Rhino Java的引擎下运行.

misultin:Erlang,不太了解,但似乎超级快:http: //www.ostinelli.net/-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb/

mochiweb:Erlang也是,并且通常被认为是快速的.

龙卷风:基于Python,似乎是最慢的.

我想知道我应该学什么语言.如果我使用RingoJS/NodeJS,那么我真的不需要学习.但是,我对Erlang或Python一无所知.如果我的目标是能够构建高端Web服务器(软件/站点),我应该考虑学习吗?

一般而言,哪种语言和图书馆在为高性能网站提供支持方面有最光明的未来?当然我可以用C++完成所有工作,但这似乎很耗时,而且我认为Python和Erlang更容易.

带线程的ASP.NET看起来很痛苦,所以,我想我会离开它.那么Twisted(Python)呢?还是Eventmachine(Ruby)?

Ray*_*nos 7

高性能,高并发性

您将需要一个异步eventloop驱动的HTTP服务器.这是最重要的事情.您甚至可以使用PHP和nginx,但这类似于将ASP.NET与ASyncHTTPRequests一起使用

Mochiweb,misultin,Tornade和node.js都满足了这一点.

我个人推荐node.js,因为它太棒了!

受Mochiweb:

mochiweb似乎缺乏我能看到的文档.它确实有WebMachine.

ringoJS:

我不能给你一个关于在node.js上使用ringojs的好论据.node.js社区规模更大,拥有更多支持,更有可能成为稳定的行业领导者.

其他:

我还建议使用备用异步Web服务器manos [C#],eventmachine [Ruby]和twisted [Python].

misultin:

这是非常值得关注的,因为Erlang是一种用于大规模并发的优秀语言,而且它也有合理的文档.

结论:

Erlang和node.js的优点是服务器和所有IO本身都是非阻塞和开箱即用的异步,所以我会考虑这两个.

如果你想在一个高度并发的语言中高度扩展服务器,那么选择用Erlang编写的misultin/mochiweb.Erlang只是在扩展部门获胜.学习Erlang的一个好处就是你学习了功能范例.

如果您想要一个具有活跃增长社区的异步网络服务器,请在pick node.js中进行活跃的第三方库开发.使用节点的一个好处就是您熟悉JavaScript.


yoj*_*o87 5

如果我使用RingoJS/NodeJS,那么我真的不需要学习....如果我的目标是能够构建高端Web服务器(软件/站点),我应该考虑学习吗?

我想说nothing I actually need to learn软件工程中没有这样的东西.即使有人熟悉世界前端的JS,你也需要学习很多东西和技术来构建高质量的服务器端.如果您选择非JS框架,那么您将需要投入更多时间来掌握其他语言.例如,就语法糖而言,每种语言都可以提供特定的优势,但我认为你应该坚持最适合你的语言.

一般而言,哪种语言和图书馆在为高性能网站提供支持方面有最光明的未来?

我认为对这个问题的回答是非常主观的.Node.js在实时网络和可扩展网络程序中逐渐受到欢迎和吸引力,但很难说"一般"未来所处的位置.

带线程的ASP.NET看起来很痛苦,所以,我想我会离开它.

您可以尝试查看manos,它类似于.NET世界的node.js.

那么Twisted(Python)呢?还是Eventmachine(Ruby)?

我在Python和Ruby中都没有经验,但我建议你听 两个播客.