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

PortWatcher
  • 2k

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

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

回复
阅读 6.6k
3 个回答
✓ 已被采纳

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

推荐首选python,俗话说“人生苦短,我用python”
因为它的语言格式清晰、易于学习和日后的维护,相比其它语言能用很少的代码量完成同样的功能,同时第3方库非常丰富,而且跨平台支持、开源。要说不足就是目前在国内的需求不是很大。
如果只是简单的写写脚本,可以忽略算法和数据结构,但是如果要做专业的程序员,算法和数据结构是必不可少的。

算法和数据结构太重要了,不学好的话,只能做码畜,从事体力劳动

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏