我选择的语言是Ruby,但我知道因为twitter,Ruby无法处理很多请求.使用它进行套接字开发是一个好主意吗?或者我应该像twitter开发者那样使用像erlang或haskell或scala这样的函数式语言吗?
我工作的公司在我们的网站上使用Ruby.到目前为止,我们已经处理了超过34,000,000,000次点击.我们每天处理大约10,000,000次点击没有问题.峰值命中率每天超过40,000,000次点击.
可伸缩性取决于很多因素.例如,与读取相比,我们的数据库执行的写入百分比不成比例地高.虽然大多数网站大约有90%的读取到10%的写入,但我们接近50%-50%.我的观点是可伸缩性受很多因素的影响.如果您是数据库限制的(通常是Web应用程序的情况),那么您使用的语言无关紧要,您将等待数据库.
如果您正在考虑处理大型秤,需要考虑很多事情.分割数据库,memcached等等.您的应用程序使用的语言只是一个方面,通常,但并非总是如此,可扩展性的一个小方面.
Ruby可能是一个很好的选择,但在其他语言中有很多值得喜欢的东西.例如,Erlang努力使其更容易从错误中恢复.
我不确定Twitter团队学到的关于Ruby(更具体地说,Rails)和扩展的任何"课程"都适用于您的项目.他们正在寻找比大多数人可以合理预期的更多的流量.
至于套接字和Ruby,请查看我喜欢Unicorn,因为它是Unix.关于在Ruby中执行套接字这是一个非常有趣的读物.