本文试图为2008年Web2.0服务器端开发语言的选型给出参考意见.
目前主流的网络开发语言有: C Python Ruby C++ PHP
新兴的语言有: Erlang
游戏逻辑和界面嵌入使用较多的有:Lua
较少使用的语言有:Java
C用于服务器端开发的历史最悠久,是老牌的网络编程语言.
优点:简洁,运行高效
缺点:开发效率低,不易稳定
推荐用途:用于以上其他动态语言扩充模块的编写.
Erlang是一门函式编程语言,语法比较独特.
优点:语言本身对并发有良好的支持,性能非常惊人.
在超大并发的慢速链接的情况下,Erlang的效率可以超过Apache 15 倍.Erlang内置容错和轻量级进程调度,括平台.
目前的成功案例,ejabberd项目被用于GTalk集成应用,负载能力惊人.
缺点:学习成本较高.可能会成为猝死性语言.
推荐用途:IM集成
Python和Ruby是相差不多的动态语言.
Python的运行速度快,库多.
Ruby的Ruby On Rails框架开发Web效率很高.
优点:开发快捷
缺点:运行时效率低
推荐:Ruby On Rails开发网站的主体,Python适合制作各种周边工具.
如需提高运行效率,可以考虑:
1. Ruby迁移到Ruby 1.9版本,但是有兼容性问题.
2. 用C重新低效率的Ruby模块.
3. JRubyRuby.Net 都是可以考虑的后备方案
PHP老牌Web开发语言.
优点:老牌,库多,稳定
缺点:社区不活跃
推荐:已有PHP应用改进.
Lua是一个非常简洁的可嵌入式脚本语言.运行效率高于Ruby.
优点:非常简洁,配合tolua/tolua++嵌入c/c++易如反掌.
缺点:库匮乏,社区活力低
推荐:用于配置文件,C/S间协议
C++和Java都不在推荐之列.
C++的ACE很优秀,但是思想老旧,OO玩过头.
Java是Python的运行速度,C++的开发速度.集各家缺点于一身,非常不适合做Web2.0开发.
语言就像扳手,有的扳手是活动的,可以适合各种大小的螺母,有的扳手是专用的只能适合特定大小的螺母.
没有最好的,但是有最合适的.
选择的智慧就就在其中了.