Answers
js是唯一必须要学, 但是风格上最老土的. 但是最近我迷恋上了coffee-script, 可以让我用python+ruby的代码风格写js.
不用写ruby的end, 也不用python的冒号, 并且可以毫无顾忌的写python里面没有的匿名函数(谁叫lamdba只能一行)
我是一个很严重的python控, 对于python唯一的一点不满也就是匿名函数了. pythonic是我做事的原则之一, 并且这个原则可以用在写程序之外.
ruby我写过几个小程序, 没有写过rails, 里面太多magic. 我喜欢ruby语法, 影响了很多语言, 包括coffee-script和underscore.js. 对于ruby的不满在于它不同版本的变化, 1.8和1.9的语法变化就让很多人头疼, 相对py的2.5 2.6 2.7其实没有什么巨大的变化, 语言层面非常稳定, bug少. ruby社区的创新能力是让人着迷的, 无数新点子都由此而出.
这也是为什么我在产品级别只用py的原因. 在其他项目比如qa自动化等, ruby表现出强劲的生产效率.
所以虽然使用python在几年前被视为新潮, 我自己却认为这是一个保守的选择, python可以说是高效生产力中比较保守的派别.
要说ruby新潮, 不过nodejs更新潮, 很多玩ruby的人都跑去玩node了. 但是玩python的人依然没变, 并且对于py3k大家也是完全不着急.
perl就不说了.
最后点题, 这里谈论的所有语言, 都是用了动态的数据结构, 也就是说列表和字典数据结构是他们的基石, python中一个class本质上也可以说是一个字典, 相对而言C++的class就是一个结构, 这是根本的区别.
动态语言的数据结构真的没有什么好讲的, 太简单了, 知道什么时候用列表, 什么时候用字典, 什么时候把这两个结合起来变成自己的模型, 就好了. 换言之, 你知道什么叫json就学习了数据结构了. 这些数据可以简单的在各种(动态)语言中传递, 以前的那种远程RPC已经没有太大意义了.