Ruby Ruby Python JavaScript 浅析

jiacai2050 · 2016年03月27日 · 最后由 jasl 回复于 2016年03月29日 · 4330 次阅读

最近两周在学 ruby,对上面三个语言做了个比较。地址:http://liujiacai.net/blog/2016/03/26/python-ruby-javascript/ 大家觉得那里还能再补充的呢?

才学两周…”Python: 一件事情只有一种方法做“是指 Python 2 还是 Python 3?

#1 楼 @rei 3 只是尝试修复 2 中的问题,理念没有变的。

感觉作者要入坑了

#2 楼 @jiacai2050 这是在黑 py2 和 3 造成语言分裂...目前还有大量的公司和个人仍然在使用 2.7,拒绝 3.x

#4 楼 @jasl 我为什么要黑 python,用 2 还是 3 考虑的因素很多,我相信用 jdk 1.5 的人也还大有人在。

#5 楼 @jiacai2050 楼主高手,不过用 jdk 1.5 并不值得夸耀,py2 & 3 的分裂在 Ruby 社区大多数人看,也不是明智的选择。

#6 楼 @ericguo 任何事情发展成现在这样都是有其特殊原因的。我也没说用老版本的语言就值得夸耀,语言只是个工具而已,解决问题才是硬道理。

#7 楼 @jiacai2050 还是看社区,ruby 社区不仅要解决问题,其实更偏向漂亮的解决问题。😄

#4 楼 @jasl py2 和 py3 的之间大概隔了一个 angular2.x 与 angular1.x 的距离…… #5 楼 @jiacai2050 JDK5 是个里程碑,JDK8 也是一个里程碑……如果还在抱着 JDK5 估计都是债很深不敢轻易动的项目。就说修改了 PermGen space 这种坑就是很多人的福音……

javascript 实在是太简单了 我感觉太难了,搞不懂 Monad,好纠结

一件事情只有一种方法 从 django 的实践来说,我没感觉到,是最佳实践只有一条么?

py 的 decorator 挺好用

#5 楼 @jiacai2050 不是说你黑啊,是 rei 的评论是在黑 py 而且 Py 和 jdk 1.5 的情况还不同,现在几乎没有全新项目使用 1.5 了,起码也是 1.6,但是 Py 这边 3.x 发展几年了,坚持 2.7 并且从心理层面、道理层面排斥 3.x 的,相当大的比例(3.x 里认为修正 2.x 的缺点的特性,恰恰被很多人认为是瞎 B 搞...) 而且 java 语言层面是一路还是越变越好的(相对于 Java 过去而言),而 Py3.x 的很多改动,被认为是倒退

#10 楼 @hammer Monad 这一概念适合于所有的函数式语言,并不是 javascript 特有的。 Django 没有过,你可以举个例子。Zen of Python 里面有这么一句:

There should be one— and preferably only one —obvious way to do it.

#11 楼 @jasl 好吧,真心搞不懂为什么总是有人黑某语言,一个语言难免有精华部分、糟粕部分,自己知道就可以了,是在看不过,show your code

#13 楼 @jiacai2050 没人黑的东西是没人用的,为啥黑呢,用不爽呗

  • 改变了一些已经是惯用的写法,大量使用print的项目都挂掉了,字符串处理也有了极大的变化...这影响包含了大量的 OS 层面的工具链,这就是为啥直到目前大多数 Linux 发行版要同时提供两套 Python 的原因
  • 大量 Web 框架、服务依赖的底层库如 Twisted,Py3 发布几年后才提供 3.x 的版本,没这玩意多少项目,或者说产值加起来估摸上亿规模的项目没法升级
  • 很多函数的行为改变,改写困难
  • 2.7 兼容一些 3.x 的特性,同时保留各种惯用法,而且维护到 2020 年呢~这么爽的版本,实在没动力升级呀...

开发者在使用技术的时候要去衡量成本的,2 to 3 的一系列激进做法伤害了很多用户的感情,实在看不过,继续用 2.7 呗,于是语言就分裂了,这对 Py 社区不是什么好事,此外 Py 2 to 3 的升级方式也被拿来当做反面案例,比如 Matz 在 RubyKaigi(貌似是)讲 Ruby 2 to 3 的进化方案的时候提到了 Py 和 PHP。

话说黑的最欢的还真就是用 Py 吃饭的,据我观察,水平越高的黑的越欢...

#14 楼 @jasl 你的最后一句话让我想到了王垠

看你们黑的这么欢,我也进来说句话。 几年前,我为啥入 Ruby 而不是 Python 教?因为当时就看到 Py2 v.s. Py3 战得很欢,作为新手实在无所适从。这些年里,我用 Ruby、Java、PHP、JavaScript 等语言,其实是把 Python 绕过去了。 前几周和朋友聊,聊到 Python,朋友表示,目前的情况最好是把 Py2 和 Py3 区别对待,二者之间的关系复杂、胶着、令人捉摸不透;不仅如此,我在得知这一观点之后,又问了身边几个朋友,他们均表示赞同,而且推荐 Py 新人要从 Py2 开始上手。

#15 楼 @jiacai2050 王垠不会黑我列出来的那些点,那些都是影响到工作的大问题

需要 登录 后方可回复, 如果你还没有账号请 注册新账号