p*****2 发帖数: 21240 | 1 coffee
haskell
clojure
老生常谈了 |
l**********n 发帖数: 8443 | |
c******o 发帖数: 1277 | |
l**********n 发帖数: 8443 | |
h*i 发帖数: 3446 | 5 效率吧。
上面这个排名好像是根据github平均commit size来的。这三个语言一次commit的平均
行数最少,假设一次commit就是一个程序的语义单位的话。
【在 c******o 的大作中提到】 : define expressive?
|
l**********n 发帖数: 8443 | 6 expressive英文不是效率的意思。
【在 h*i 的大作中提到】 : 效率吧。 : 上面这个排名好像是根据github平均commit size来的。这三个语言一次commit的平均 : 行数最少,假设一次commit就是一个程序的语义单位的话。
|
h*i 发帖数: 3446 | 7 expresiveness是表达力, 我说的是人们一般用什么来测量一个语言的表达力.
效率是一种测量方法,就是这个语言表达一个概念的效率,这儿假设所有通用计算机语
言能表达的东西都是一样的(DSL除外),都是turing complete, 哪么比较不同语言就
只能比效率。具体操作,有人就用github average commit size,假设一次commit代表
一个语义单位。
【在 l**********n 的大作中提到】 : expressive英文不是效率的意思。
|
c*******0 发帖数: 5247 | 8
这种效率计算明显是不科学的啊。
代码是人写的,哪里有算代码的效率而不是人的效率的道理?
人和代码打教导不外乎两件事,读代码,写代码
你要说expresiveness,那是比什么语言最容易读懂
你要说效率,那是比做同样的功能,同样的robustness情况下用什么语言写最快
人写代码不是为了代码,是为了解决问题的
【在 h*i 的大作中提到】 : expresiveness是表达力, 我说的是人们一般用什么来测量一个语言的表达力. : 效率是一种测量方法,就是这个语言表达一个概念的效率,这儿假设所有通用计算机语 : 言能表达的东西都是一样的(DSL除外),都是turing complete, 哪么比较不同语言就 : 只能比效率。具体操作,有人就用github average commit size,假设一次commit代表 : 一个语义单位。
|
z****e 发帖数: 54598 | 9 c还有fp的爱好者往往喜欢秀智商
动不动就是这辈子不学啥,写尽多少行也宛然
言外之意就是你看我懂这个,我多牛逼,你不懂,所以宛然了
我前一段搞了搞clj,没觉得自己以前有多宛然
倒是因为clj不能马上投入生产,尤其是在app生产上
觉得浪费了不少时间,后来rxjava加了这些功能之后
很快就转了过去,因为变量和扁平化实在是太可爱了
当然还有最亲爱的debug,写app的利器
最后聊点大道理
人活一辈子,最后人看的是产出,不会因为会多少东西而怎样
因为会东西那是空的,是输入,最后看的是输出
输出是真正造福大众的东西,也是大众用来衡量并反馈的标准
产出多少,最后也就收获多少,而不是输入多少,就收获多少
太多人把会不会当成一种牛不牛的标准,这种价值观是错误的,应该予以批判
应该看输出,伟人之所以是伟人,都是因为他们的输出,而非输入
没有人在乎牛顿是不是博士,读了啥学校,说的都是牛顿发现了微积分
至于输入,谁在乎,都记不起来牛顿是不是博士了
而实践之后,很快就会发现,很多东西并不是其他人嘴巴上说的那么美好
往往有这样那样的问题,而一旦这些问题被摆到台面上来,很容易就会被他们所否认
比如我从来不debug,不需要变量,callback hell不存在,这种论断往往让人汗颜
这并不是一种解决问题的态度,而是一种否定问题存在的错误态度
悬崖不会因为闭眼而消失
【在 c*******0 的大作中提到】 : : 这种效率计算明显是不科学的啊。 : 代码是人写的,哪里有算代码的效率而不是人的效率的道理? : 人和代码打教导不外乎两件事,读代码,写代码 : 你要说expresiveness,那是比什么语言最容易读懂 : 你要说效率,那是比做同样的功能,同样的robustness情况下用什么语言写最快 : 人写代码不是为了代码,是为了解决问题的
|
h*i 发帖数: 3446 | 10 大部分人都是在比较语言的效率。人的效率大家都知道人和人不同,效率相差很大,但
这是一个吵不起来架的话题。
读代码有人研究过,结论好像是这只和代码长度有关,与何种语言没有显著关系。
写代码的效率上面我说了一种测量办法,很多人也认可。上面办法的假设,推理和结论
都很清楚,你说不科学,得说清楚它有什么问题。你认为他比的是代码,不是人。但是
,github上的代码都是人写的,而且这是很大的一个sample size,。假设平均来说,写
不同语言的人在技能上没有区分,来解决的问题在难度上也没有区别,那他这种测量办
法在sample size足够大的情况下,的确反映了不同语言的效率不同。
【在 c*******0 的大作中提到】 : : 这种效率计算明显是不科学的啊。 : 代码是人写的,哪里有算代码的效率而不是人的效率的道理? : 人和代码打教导不外乎两件事,读代码,写代码 : 你要说expresiveness,那是比什么语言最容易读懂 : 你要说效率,那是比做同样的功能,同样的robustness情况下用什么语言写最快 : 人写代码不是为了代码,是为了解决问题的
|
|
|
z****e 发帖数: 54598 | 11
显然不对,这个结论太过于草率,pure oop读起来难度要低太多
pure fp阅读起来需确保自己能懂fp,否则容易乱,不过也还好
但是oop+fp凑一起,彻底乱套的不少,说scala难以阅读的太多了,你不也不敢碰么?
【在 h*i 的大作中提到】 : 大部分人都是在比较语言的效率。人的效率大家都知道人和人不同,效率相差很大,但 : 这是一个吵不起来架的话题。 : 读代码有人研究过,结论好像是这只和代码长度有关,与何种语言没有显著关系。 : 写代码的效率上面我说了一种测量办法,很多人也认可。上面办法的假设,推理和结论 : 都很清楚,你说不科学,得说清楚它有什么问题。你认为他比的是代码,不是人。但是 : ,github上的代码都是人写的,而且这是很大的一个sample size,。假设平均来说,写 : 不同语言的人在技能上没有区分,来解决的问题在难度上也没有区别,那他这种测量办 : 法在sample size足够大的情况下,的确反映了不同语言的效率不同。
|
c*******0 发帖数: 5247 | 12
当然不是了,如果有人得出这种结论,只能说没在工业界呆过。C++同样的程序大部分
比Java短,谁更易读?
哪些人认可?FP爱好者?
这里问题很清晰啊,做同样一个东西,robustness相同,有什么数据能证明代码越短,
所花时间越少?Again,Java就是一个典型例子,verbose的style导致Java程序比大部
分语言程序都长,所以Java的效率最低?那工业界的人都是脑子被驴踢了。很多情况下
因为IDE,半个小时不到就能写几百行Java做不少事情,但因为代码长所以你这半个小
时的效率特别低?
这种sample一点意义都没有。你比比Java的commit和Matlab的commit?是不是说明
Matlab的效率比Java高?
我说了,如果你真的要比,很简单,所有条件都一样所花的时间,比如同样的
application,同样的用户量,同样的bug级别,同样的性能。然后你来比做这个
application所用的时间。
别的比较都是过家家,当不得真的。
【在 h*i 的大作中提到】 : 大部分人都是在比较语言的效率。人的效率大家都知道人和人不同,效率相差很大,但 : 这是一个吵不起来架的话题。 : 读代码有人研究过,结论好像是这只和代码长度有关,与何种语言没有显著关系。 : 写代码的效率上面我说了一种测量办法,很多人也认可。上面办法的假设,推理和结论 : 都很清楚,你说不科学,得说清楚它有什么问题。你认为他比的是代码,不是人。但是 : ,github上的代码都是人写的,而且这是很大的一个sample size,。假设平均来说,写 : 不同语言的人在技能上没有区分,来解决的问题在难度上也没有区别,那他这种测量办 : 法在sample size足够大的情况下,的确反映了不同语言的效率不同。
|
h*i 发帖数: 3446 | 13 这种比较本来就不可能条件完全一样,你觉得一点意义没有可以,但人家作出来了,有
数据说话,那就比你空口说”一点意义没有“强很多,这就是现实,有数据的比没数据
的强。
工业界的人用Java又不是因为Java效率高。编程效率除了马工自己吵,工业界的
decision maker又不care. 也许有的小公司care, 但大公司绝对不会care的。
Java马工多,随便换个人就能用,这更重要。而且,这种决定大多是middle
management作的,middle management和公司的利益都不一定一致,咋会管啥编程效率
问题,有时候效率也许是越低越好,大公司politics很复杂的,呵呵。
mathlab比java效率高应该是符合人们的常识的。
【在 c*******0 的大作中提到】 : : 当然不是了,如果有人得出这种结论,只能说没在工业界呆过。C++同样的程序大部分 : 比Java短,谁更易读? : 哪些人认可?FP爱好者? : 这里问题很清晰啊,做同样一个东西,robustness相同,有什么数据能证明代码越短, : 所花时间越少?Again,Java就是一个典型例子,verbose的style导致Java程序比大部 : 分语言程序都长,所以Java的效率最低?那工业界的人都是脑子被驴踢了。很多情况下 : 因为IDE,半个小时不到就能写几百行Java做不少事情,但因为代码长所以你这半个小 : 时的效率特别低? : 这种sample一点意义都没有。你比比Java的commit和Matlab的commit?是不是说明
|
z****e 发帖数: 54598 | 14
且不说你说的这个数据是否真实存在
就说你自己,你不敢碰scala就是一个例子
scala在很多地方效率明显超过clj
就是代码量,各种implicit,可以很fancy
dsl都可以搞出来,代码量进一步压缩
【在 h*i 的大作中提到】 : 这种比较本来就不可能条件完全一样,你觉得一点意义没有可以,但人家作出来了,有 : 数据说话,那就比你空口说”一点意义没有“强很多,这就是现实,有数据的比没数据 : 的强。 : 工业界的人用Java又不是因为Java效率高。编程效率除了马工自己吵,工业界的 : decision maker又不care. 也许有的小公司care, 但大公司绝对不会care的。 : Java马工多,随便换个人就能用,这更重要。而且,这种决定大多是middle : management作的,middle management和公司的利益都不一定一致,咋会管啥编程效率 : 问题,有时候效率也许是越低越好,大公司politics很复杂的,呵呵。 : mathlab比java效率高应该是符合人们的常识的。
|
h*i 发帖数: 3446 | 15 你非要让我来google,你自己来不行么?
http://redmonk.com/dberkholz/2013/03/25/programming-languages-r
【在 z****e 的大作中提到】 : : 且不说你说的这个数据是否真实存在 : 就说你自己,你不敢碰scala就是一个例子 : scala在很多地方效率明显超过clj : 就是代码量,各种implicit,可以很fancy : dsl都可以搞出来,代码量进一步压缩
|
z****e 发帖数: 54598 | 16 你就是不敢碰scala
到现在你还是不敢碰scala,哪怕你已经知道了scala比clj更省代码
这个客观事实你否认不了
这种水文没空看,我就看你做什么,不看你说什么
talk是很misleading的,水文你要我可以写出很多来
很容易的
【在 h*i 的大作中提到】 : 你非要让我来google,你自己来不行么? : http://redmonk.com/dberkholz/2013/03/25/programming-languages-r
|
z****e 发帖数: 54598 | 17 原文摘抄
(C [#50], C++ [#45], Java [#44])
还记得楼上怎么跟你说c++和java的么?
【在 h*i 的大作中提到】 : 你非要让我来google,你自己来不行么? : http://redmonk.com/dberkholz/2013/03/25/programming-languages-r
|
h*i 发帖数: 3446 | 18 我C++都懒得学的人, 没那闲功夫学Scala。
Scala自己最active的committer都跳出来大骂Scala, 我费那闲工夫干嘛?难道我知道
得比他还多?LOL.
【在 z****e 的大作中提到】 : 你就是不敢碰scala : 到现在你还是不敢碰scala,哪怕你已经知道了scala比clj更省代码 : 这个客观事实你否认不了 : 这种水文没空看,我就看你做什么,不看你说什么 : talk是很misleading的,水文你要我可以写出很多来 : 很容易的
|
h*i 发帖数: 3446 | 19 啥意思?我又没比较过C++和Java的效率。
我觉得C++繁复,和效率没关系吧?
【在 z****e 的大作中提到】 : 原文摘抄 : (C [#50], C++ [#45], Java [#44]) : 还记得楼上怎么跟你说c++和java的么?
|
z****e 发帖数: 54598 | 20 这是你不敢碰的理由
但是还是改变不了你用scala写可以更短的事实呀
你不说代码量么?stick to 代码量,不要乱换
【在 h*i 的大作中提到】 : 我C++都懒得学的人, 没那闲功夫学Scala。 : Scala自己最active的committer都跳出来大骂Scala, 我费那闲工夫干嘛?难道我知道 : 得比他还多?LOL.
|
|
|
z****e 发帖数: 54598 | 21 别人帖子都不看完就说
说你什么好
“
当然不是了,如果有人得出这种结论,只能说没在工业界呆过。C++同样的程序大部分
比Java短,谁更易读?”
【在 h*i 的大作中提到】 : 啥意思?我又没比较过C++和Java的效率。 : 我觉得C++繁复,和效率没关系吧?
|
z****e 发帖数: 54598 | 22 scala在你那个破报告里面可不是什么靠后的语言哦
非常靠前,我感觉没啥区别,跟r差不多了,前后挨着
你信那篇报告的话,就应该果断尝试scala
【在 h*i 的大作中提到】 : 我C++都懒得学的人, 没那闲功夫学Scala。 : Scala自己最active的committer都跳出来大骂Scala, 我费那闲工夫干嘛?难道我知道 : 得比他还多?LOL.
|
h*i 发帖数: 3446 | 23 代码量/commit, 上面人家的结论都出来了,在常用语言中,Clojure第一,
coffeescript第二,Haskell第三。
换什么?
【在 z****e 的大作中提到】 : 这是你不敢碰的理由 : 但是还是改变不了你用scala写可以更短的事实呀 : 你不说代码量么?stick to 代码量,不要乱换
|
z****e 发帖数: 54598 | 24 how many lines of code change in each commit.
fp里面一行相当于其他语言多少行?
你就继续骗吧
反复说要flat,这样对比才相对公平
那种(((((...)))))的算一行,改了五六处只算一行的改动,这个显然偏向于fp啊
不科学,其他p改一处就一行,应该把列的宽度也考虑进去
列当然也是代码量的一部分,怎么能只考虑行捏?
应该数数字数比较科学
你用r建模,然后用clj再写一遍对吧?
scala可以做到你根本连翻译都不用,直接把r写成dsl
然后执行,你觉得哪个代码量更少?
我说的都是你的例子,按照你的实际环境来举例
你举的例子都是网络水文,那种宣传文章很容易找的啦
你一直躲开你自身的实际需要很说明问题
【在 h*i 的大作中提到】 : 代码量/commit, 上面人家的结论都出来了,在常用语言中,Clojure第一, : coffeescript第二,Haskell第三。 : 换什么?
|
m******t 发帖数: 635 | 25 这个道理说的很赞啊,顶一个
【在 z****e 的大作中提到】 : how many lines of code change in each commit. : fp里面一行相当于其他语言多少行? : 你就继续骗吧 : 反复说要flat,这样对比才相对公平 : 那种(((((...)))))的算一行,改了五六处只算一行的改动,这个显然偏向于fp啊 : 不科学,其他p改一处就一行,应该把列的宽度也考虑进去 : 列当然也是代码量的一部分,怎么能只考虑行捏? : 应该数数字数比较科学 : 你用r建模,然后用clj再写一遍对吧? : scala可以做到你根本连翻译都不用,直接把r写成dsl
|