比较一下目前流行的几个后端语言:Java, PHP, nodejs, Ruby (on Rails), Python:

    • 客观来讲,Java拥有最完整的生态链,目前基于Java的框架,应用非常多,语言本身上手也比较容易。学习Java的话,至少将来5-10年找工作是不成问题。但是我个人非常不喜欢Java,主要原因可能确实不太了解Java,在为数不多对Java的印象就是“慢”和“Heavy”(我学生时代写过jsp的东西,也不同一窍不通)
    • PHP:上手比较容易,生态链也不错,Pear和Pecl里面Package很多,就是文档质量普遍不算太高,管理起来稍微麻烦一点。MVC框架比比皆是,基于PHP的开源项目非常多。部署的话目前都是LAMP一条龙,也算比较容易。不太好的地方是PHP语法太灵活,写出代码的质量容易悲剧,整个社区的流行度这几年感觉有下降趋势。
    • Nodejs:事件驱动+异步IO让nodejs最擅长低CPU运算、多IO、高并发的Web service。Javascript本身就是基于原型的语言,想要真正精通,难度比其余稍微大一点(如果你现在对js掌握就非常好,就不用担心这个了)。nodejs变态的事件驱动对于代码的维护也是一个挑战,当然这些都是可以靠牛逼的编程能力克服的。除开语言本身的问题,nodejs最大的毛病还是目前npm里面的包都不太成熟,应用于生产环境稍微有点不稳定。
    • Ruby (on Rails):Ruby的流行可能很大程度上是依赖于Rails,不管怎样,RoR是我目前接触最“强大”的框架(这里“强大”是个非常强大的褒义词)。Ruby语言本身上手也比较容易,Gem+Rails对于Agile开发,快速部署支持非常好。Ruby最大的缺点是为了程序猿的生产力而牺牲了代码的效率,所以性能一直是人诟病的地方。
    • Python:python最优势的领域其实是科研,当然这不意味着python做web后端就不行。Django也是目前最流行的几大框架之一,轻量级的Web.py, Bottle也都有很好的社区支持。整体来讲Python的地位和Ruby很像,知乎上有非常多关于两者优劣的讨论你可以去看看。