比较三门解释型语言;算法和数据结构对程序员来说究竟有多重要


比较 perl,ruby,python,js
最好从能解决的问题的范围,解决问题的速度,解决问题的效率,学习成本等方面来比较。

另外, 算法 数据结构 对程序员来说究竟有多重要?
是有的岗位对这方面要求高而其他的要求低,还是所有程序员都应当熟练掌握?

编程语言 数据结构 算法

华丽的应援 10 years, 6 months ago

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已经没有太大意义了.

upset answered 10 years, 6 months ago

Your Answer