由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 语言这个东西背后其实就是政治斗争
相关主题
俺老10年前关于语言未来的论述rust现在很火
Java必然败在oracle身上Google confirms next Android version won’t implement Oracl (转载)
scala和F#是不是同一回事java是最好的语言
scala被Java 8当枪使了今天第一次在windows上倒腾vert.x
NodeJS厉害javascript 真的来自于java上的script?
从今天开始起,学C++!Re: 大妈问一下JAVA的编程平台就是需要安装上JAVA就行了?
[bssd]周末乱侃为什么大家都说c++水很深?
Oracle又告Google了If you say that a is 5, you can't say it's something else l
相关话题的讨论汇总
话题: java话题: fp话题: oo话题: oop话题: oracle
进入Programming版参与讨论
1 (共1页)
z*******3
发帖数: 13709
1
你先搞懂这些语言背后是什么公司在支撑着
以java为例
jcp里面ibm是非常重要的核心成员
可以说如果没有ibm,就没有java的今天
oracle也是如此,oracle吞并了bea和sun
这两个也都曾经是最核心的jcp成员
vmware收购了澳洲著名的顾问公司interface 21,也就是spring的东家
而vmware本身又被emc所收购,interface21也是重要的jcp成员
red hat吞并了jboss,jboss在之前又招安了hibernate
而hibernate是jcp制定jpa标准的主笔人,也是aussi
red hat本身可以说是最著名的linux商业公司
还有google和apple
apple的贡献有限,主要贡献就是把openjdk给搬到macosx上去
google也是jcp成员,sap也是主要的支持者
例子很好找,随便抓一个jsr 303的标准
看expert group
http://jcp.org/en/jsr/detail?id=303
google,sun,oracle,red hat什么都在这里面
还有爱立信,不同的标准你会看到不同的expert group,来自不同的公司
都是至少叫得出名字的公司,至于各种乱七八糟机构,比如北京大学
就更多了,还有一个著名的开源组织,apache
这里是jcp制定的所有标准的列表
http://en.wikipedia.org/wiki/Java_Community_Process
点击任何一个外链,进去看,看expert group,看都出自哪些公司
基本上你能叫得出名字来的牛逼公司,这里面都有
所以当你说vs java的时候
你几乎就等于在说
vs ibm+oracle+google+red hat+emc+……
这个名单我说上二三十个没有任何问题
就是m$一开始也不是不搞java
是搞vj++,但是这个java版本只能在m$的虚拟机上运行
会被捆绑到windows上去,所以sun才跟m$对薄公堂
最后判m$败诉,所以从那以后,m$才不搞java,才搞了.net出来
所以当你说java sucks的时候,你几乎就等于在说
ibm+oracle+google+red hat+emc+……
这么一长串sucks
哦,拜托,我想你应该不至于这么自大吧?
这里面随便抓几个experts来,秒掉你没有任何问题
java的牛逼就在于参与的人实在太多,牛逼的人实在太多太多
远不仅仅是开源的贡献那么简单,还有绝大部分的it巨头
你要说java要挂,那你等于说这群公司都得挂
话说这个难度还真心不小
而除了java,其他几乎所有的语言都没有得到这么广泛的参与
大多数语言都仅仅局限在某一家公司的推动或者是某一个领域内
比如r针对统计,scala也只是typesafe在推动
所以对于某一个语言,就算它很好,但是你有没有想到过java背后的那一片海?
可能也就是c会好一点,因为c的东西比较贴近硬件,不少写c是搞硬件的
这就是为什么c和java长期霸占市场需求前两位的原因
t****a
发帖数: 1212
2
看所谓"企业级大语言"简直就是笑话。
今天的java简直就是当年的COBOL,一个逻辑没多一点的程序给写了几屏幕,藐视geek
们的智商啊。我用FP语言写我们组遗留的那玩意,code只要它1/5 - 1/10。
http://c2.com/cgi/wiki?JavaIsTheNewCobol
如果说perl的格言是“simple things simple, hard thing is possible"那么java的
大概就是"everything is complex"
怪不得大牛要挑出来骂java语言学校,这玩意是上手简单,可是也太烂了
http://www.ruanyifeng.com/blog/2008/12/the_perils_of_javaschool
java这种玩意太冗余了,就应该用程序来生成,不应该让geek们自己写。
r****y
发帖数: 26819
3
用perl生成java代码,然后维护perl。哈哈
突然想到,为啥没有白话文自动生成器?白话文没多少逻辑能写出好几屏幕,浪费资源
,改成文言文写,打字只要1/5,让程序来生成白话文不好么。

geek

【在 t****a 的大作中提到】
: 看所谓"企业级大语言"简直就是笑话。
: 今天的java简直就是当年的COBOL,一个逻辑没多一点的程序给写了几屏幕,藐视geek
: 们的智商啊。我用FP语言写我们组遗留的那玩意,code只要它1/5 - 1/10。
: http://c2.com/cgi/wiki?JavaIsTheNewCobol
: 如果说perl的格言是“simple things simple, hard thing is possible"那么java的
: 大概就是"everything is complex"
: 怪不得大牛要挑出来骂java语言学校,这玩意是上手简单,可是也太烂了
: http://www.ruanyifeng.com/blog/2008/12/the_perils_of_javaschool
: java这种玩意太冗余了,就应该用程序来生成,不应该让geek们自己写。

t****a
发帖数: 1212
4
perl就算了,过半年就看不懂写的是啥玩意

【在 r****y 的大作中提到】
: 用perl生成java代码,然后维护perl。哈哈
: 突然想到,为啥没有白话文自动生成器?白话文没多少逻辑能写出好几屏幕,浪费资源
: ,改成文言文写,打字只要1/5,让程序来生成白话文不好么。
:
: geek

r****y
发帖数: 26819
5
所以simple的标准应该是:不需要注释就能容易维护的语言才是simple,才是不浪费资
源。
文言文给现在的普通人看,还是得加注释。

【在 t****a 的大作中提到】
: perl就算了,过半年就看不懂写的是啥玩意
t****a
发帖数: 1212
6
perl就不提了,出了名的烂,不好维护。
不过你的这个话也有问题,照你这个标准,大家都应该去用COBOL,直接用英文写程序:
age = age + years要写成ADD YEARS TO AGE
http://en.wikipedia.org/wiki/COBOL
- 问题是,这类烂语言的工作效率有多高呢?这玩意蠢不蠢啊?
好啊,大家都去用COBOL,我们去写COBOL程序生成器倒还可以小发一笔
你拿自然语言(文言-白话)来比喻不太恰当。自然语言是为了交流而诞生的,而程序
是为了能让计算机运行。再考虑到《人月神话》里提到的大项目效应,烂COBOL类的程
序就实在是...反正我没兴趣去弄。

【在 r****y 的大作中提到】
: 所以simple的标准应该是:不需要注释就能容易维护的语言才是simple,才是不浪费资
: 源。
: 文言文给现在的普通人看,还是得加注释。

r****y
发帖数: 26819
7
这个骂java的文章,实际上是在给java唱赞歌呢。
c#要妒忌死了,一点名分都没有。

geek

【在 t****a 的大作中提到】
: 看所谓"企业级大语言"简直就是笑话。
: 今天的java简直就是当年的COBOL,一个逻辑没多一点的程序给写了几屏幕,藐视geek
: 们的智商啊。我用FP语言写我们组遗留的那玩意,code只要它1/5 - 1/10。
: http://c2.com/cgi/wiki?JavaIsTheNewCobol
: 如果说perl的格言是“simple things simple, hard thing is possible"那么java的
: 大概就是"everything is complex"
: 怪不得大牛要挑出来骂java语言学校,这玩意是上手简单,可是也太烂了
: http://www.ruanyifeng.com/blog/2008/12/the_perils_of_javaschool
: java这种玩意太冗余了,就应该用程序来生成,不应该让geek们自己写。

r****y
发帖数: 26819
8
这就回到原主题了,一种容易维护的语言,多少人去用,决定的原因可能是人气和后台

syntax跟语言的维护难度有关,跟它的功能如何,关系不是很大。所以仅仅拿一句ADD
YEARS TO AGE来说它蠢,我觉得没啥说服力。只是大家都习惯C syntax的思维定势而已。

序:

【在 t****a 的大作中提到】
: perl就不提了,出了名的烂,不好维护。
: 不过你的这个话也有问题,照你这个标准,大家都应该去用COBOL,直接用英文写程序:
: age = age + years要写成ADD YEARS TO AGE
: http://en.wikipedia.org/wiki/COBOL
: - 问题是,这类烂语言的工作效率有多高呢?这玩意蠢不蠢啊?
: 好啊,大家都去用COBOL,我们去写COBOL程序生成器倒还可以小发一笔
: 你拿自然语言(文言-白话)来比喻不太恰当。自然语言是为了交流而诞生的,而程序
: 是为了能让计算机运行。再考虑到《人月神话》里提到的大项目效应,烂COBOL类的程
: 序就实在是...反正我没兴趣去弄。

d****i
发帖数: 4809
9
顶!其实一个语言没有众多商业性公司,非盈利性组织,还有学校的支持,没法成为主
流。Java各方面都确实不错,虽然也有很多病诟,不过没有哪个语言是十全十美的。
Java还有一点不太完美的地方是,他目前被Oracle所掌控,而Oracle总是有那么一点邪
恶,总想违背当时Sun设计Java时候Open的初衷来谋私利,比如Apache就因为与Oracle
有不同看法而退出了JCP,而当时Oracle以Android侵犯他的知识产权为由状告Google也
是非常恶心的事,所以Java这个语言最好能够像C和C++那样,从Oracle掌控转向由ISO/
IEC, ANSI, IEEE这些著名的制定国际标准化的组织来掌控,这样比较让人放心,也可
以让所有的公司和组织和学校受益。Oracle自从接收Sun以来,据说已经干了很多让开
源社区不爽的事情,这个估计也是Apache退出JCP的原因之一吧。我认为Java应该到了
让Oracle交出权利的时候了,作为一种主流语言,还没有实现ISO/IEC的标准化,似乎
有点说不过去。

【在 z*******3 的大作中提到】
: 你先搞懂这些语言背后是什么公司在支撑着
: 以java为例
: jcp里面ibm是非常重要的核心成员
: 可以说如果没有ibm,就没有java的今天
: oracle也是如此,oracle吞并了bea和sun
: 这两个也都曾经是最核心的jcp成员
: vmware收购了澳洲著名的顾问公司interface 21,也就是spring的东家
: 而vmware本身又被emc所收购,interface21也是重要的jcp成员
: red hat吞并了jboss,jboss在之前又招安了hibernate
: 而hibernate是jcp制定jpa标准的主笔人,也是aussi

t****a
发帖数: 1212
10
好吧,再给你个例子说明这有多蠢。
http://linkcd.cnblogs.com/archive/2005/07/19/196087.html

ADD
已。

【在 r****y 的大作中提到】
: 这就回到原主题了,一种容易维护的语言,多少人去用,决定的原因可能是人气和后台
: 。
: syntax跟语言的维护难度有关,跟它的功能如何,关系不是很大。所以仅仅拿一句ADD
: YEARS TO AGE来说它蠢,我觉得没啥说服力。只是大家都习惯C syntax的思维定势而已。
:
: 序:

相关主题
从今天开始起,学C++!rust现在很火
[bssd]周末乱侃Google confirms next Android version won’t implement Oracl (转载)
Oracle又告Google了java是最好的语言
进入Programming版参与讨论
r****y
发帖数: 26819
11
没看出来。
最起码,这个故事编得不够周密。前三个程序能严格排除+-*/以外的“不合格”操作符
,那个看起来最短的程序,对非法操作符是怎么定义的,完全看不出来。加上对非法
操作符的检查以后,第四种能比第一种强多少,就很难说了。
再者,第二种和第三种编程里用到的思想,本来就不完全是为解决两个数运算这样一个
目的而建立的,所以最多说,在各自的语言里也许第二和第三种未必是最适合该题的写
法,但这和那两种语言如何,是两回事。换句话说,第二种第三种语言都可以写第一种
代码,也许最适合两数四则运算这个例子,维护也不错。
最后,这个故事就是抛砖引玉为了科普FP的,目的无可厚非。但是要证明FP能所其它不
能,需要一个非常的例子,能让其它语言见短的。俩数四则运算这个例子显然不行。

【在 t****a 的大作中提到】
: 好吧,再给你个例子说明这有多蠢。
: http://linkcd.cnblogs.com/archive/2005/07/19/196087.html
:
: ADD
: 已。

t****a
发帖数: 1212
12
呵呵,你仔细看了,真不错。
我的看法是,第一种涉及到”翻译”的过程,而第四种不需要。这意味着第一种没有扩
展性。
非法操作符比如非二元运算符代入op应该由编译器或者解释器自己去搞定,第四种就是
这么干的。

【在 r****y 的大作中提到】
: 没看出来。
: 最起码,这个故事编得不够周密。前三个程序能严格排除+-*/以外的“不合格”操作符
: ,那个看起来最短的程序,对非法操作符是怎么定义的,完全看不出来。加上对非法
: 操作符的检查以后,第四种能比第一种强多少,就很难说了。
: 再者,第二种和第三种编程里用到的思想,本来就不完全是为解决两个数运算这样一个
: 目的而建立的,所以最多说,在各自的语言里也许第二和第三种未必是最适合该题的写
: 法,但这和那两种语言如何,是两回事。换句话说,第二种第三种语言都可以写第一种
: 代码,也许最适合两数四则运算这个例子,维护也不错。
: 最后,这个故事就是抛砖引玉为了科普FP的,目的无可厚非。但是要证明FP能所其它不
: 能,需要一个非常的例子,能让其它语言见短的。俩数四则运算这个例子显然不行。

d****i
发帖数: 4809
13
James Gosling这个人的人品好像不是很好,据说Oracle状告Google的时候,他站在
Oracle一边,哪位知道详情的来说说?

Oracle
ISO/

【在 d****i 的大作中提到】
: 顶!其实一个语言没有众多商业性公司,非盈利性组织,还有学校的支持,没法成为主
: 流。Java各方面都确实不错,虽然也有很多病诟,不过没有哪个语言是十全十美的。
: Java还有一点不太完美的地方是,他目前被Oracle所掌控,而Oracle总是有那么一点邪
: 恶,总想违背当时Sun设计Java时候Open的初衷来谋私利,比如Apache就因为与Oracle
: 有不同看法而退出了JCP,而当时Oracle以Android侵犯他的知识产权为由状告Google也
: 是非常恶心的事,所以Java这个语言最好能够像C和C++那样,从Oracle掌控转向由ISO/
: IEC, ANSI, IEEE这些著名的制定国际标准化的组织来掌控,这样比较让人放心,也可
: 以让所有的公司和组织和学校受益。Oracle自从接收Sun以来,据说已经干了很多让开
: 源社区不爽的事情,这个估计也是Apache退出JCP的原因之一吧。我认为Java应该到了
: 让Oracle交出权利的时候了,作为一种主流语言,还没有实现ISO/IEC的标准化,似乎

r****y
发帖数: 26819
14
如果非法操作符让编译器或解释器自己搞定,那第一种和第四种没啥区别。第一种之所
以那么穷举,完全是syntax所限。

【在 t****a 的大作中提到】
: 呵呵,你仔细看了,真不错。
: 我的看法是,第一种涉及到”翻译”的过程,而第四种不需要。这意味着第一种没有扩
: 展性。
: 非法操作符比如非二元运算符代入op应该由编译器或者解释器自己去搞定,第四种就是
: 这么干的。

t****a
发帖数: 1212
15
真的没啥区别么?同学,你确定么?
蠢语言就是有蠢syntax啊。

【在 r****y 的大作中提到】
: 如果非法操作符让编译器或解释器自己搞定,那第一种和第四种没啥区别。第一种之所
: 以那么穷举,完全是syntax所限。

r****y
发帖数: 26819
16
忽略class,第一种就是c语言,c语言蠢么?
语言哪有蠢的,一张卫生纸一条内裤都有它的用处 -- 厌恶周星星但顺口想起的还是这
句。

【在 t****a 的大作中提到】
: 真的没啥区别么?同学,你确定么?
: 蠢语言就是有蠢syntax啊。

t****a
发帖数: 1212
17
c可以用函数指针来实现这个玩意的。

【在 r****y 的大作中提到】
: 忽略class,第一种就是c语言,c语言蠢么?
: 语言哪有蠢的,一张卫生纸一条内裤都有它的用处 -- 厌恶周星星但顺口想起的还是这
: 句。

r****y
发帖数: 26819
18
是可以,但这道题不必吧。说来说去还是选这道题蠢,根本没法比较出语言的差别。

【在 t****a 的大作中提到】
: c可以用函数指针来实现这个玩意的。
t****a
发帖数: 1212
19
哎,随你的便吧,不想争论了,没意思。我猜你也不是一个喜欢折腾语言的人。
我只是看不懂为什么有人喜欢吹那些大公司力挺的东西。让我想起了一句话来着
- 无产阶级文化大革命就是好就是好就是好来就是好

【在 r****y 的大作中提到】
: 是可以,但这道题不必吧。说来说去还是选这道题蠢,根本没法比较出语言的差别。
r****y
发帖数: 26819
20
nod, 我会用第一种写法。放到哪个语言都没问题。
有时间的话,看数学书好了,FP里的那些东西,跟数学比起来都不算抽象了。

【在 t****a 的大作中提到】
: 哎,随你的便吧,不想争论了,没意思。我猜你也不是一个喜欢折腾语言的人。
: 我只是看不懂为什么有人喜欢吹那些大公司力挺的东西。让我想起了一句话来着
: - 无产阶级文化大革命就是好就是好就是好来就是好

相关主题
今天第一次在windows上倒腾vert.x为什么大家都说c++水很深?
javascript 真的来自于java上的script?If you say that a is 5, you can't say it's something else l
Re: 大妈问一下JAVA的编程平台就是需要安装上JAVA就行了?java的那些framework
进入Programming版参与讨论
t****a
发帖数: 1212
21
还有啊,迷信大公司的可以歇歇了,大公司的制度根本就不利于调动人的积极性做创新
z*******3
发帖数: 13709
22
java不是简单,其实很多时候是把简单东西变复杂
也就是你所谓的繁琐,而它的厉害地方在于
它同样会把复杂的东西变简单
你用fp写一个tomcat来我看看
你信不信会5倍甚至50倍于tomcat代码?

geek

【在 t****a 的大作中提到】
: 看所谓"企业级大语言"简直就是笑话。
: 今天的java简直就是当年的COBOL,一个逻辑没多一点的程序给写了几屏幕,藐视geek
: 们的智商啊。我用FP语言写我们组遗留的那玩意,code只要它1/5 - 1/10。
: http://c2.com/cgi/wiki?JavaIsTheNewCobol
: 如果说perl的格言是“simple things simple, hard thing is possible"那么java的
: 大概就是"everything is complex"
: 怪不得大牛要挑出来骂java语言学校,这玩意是上手简单,可是也太烂了
: http://www.ruanyifeng.com/blog/2008/12/the_perils_of_javaschool
: java这种玩意太冗余了,就应该用程序来生成,不应该让geek们自己写。

z*******3
发帖数: 13709
23
第一,java远不只有大公司那么简单
jboss, interface21这种都是从无到有,白手起家的公司
里面还有很多小公司
第二,这一片海都在讨论要这样做
就最好看看为什么他们要这么做
总觉得自己比所有人都聪明,恐怕不是件好事
你都能想到,会有人想不到?
我的天,自大也该有个限度

【在 t****a 的大作中提到】
: 还有啊,迷信大公司的可以歇歇了,大公司的制度根本就不利于调动人的积极性做创新
: 。

z*******3
发帖数: 13709
24
自动生成代码早就可以了
当年玩ejb就是用向导一路点下去
但是实际上大多数人还是反映
太难
因为人跟人的思维是有差异的
一个人自认为很简单的东西
往往另外一个人要花上数倍于自己去写的时间的代价去理解
就像匿名类,其实很多时候都是不鼓励使用的
更不要说还在讨论中的那个匿名方法了
因为不直观,很多时候有人会看不懂

【在 r****y 的大作中提到】
: 用perl生成java代码,然后维护perl。哈哈
: 突然想到,为啥没有白话文自动生成器?白话文没多少逻辑能写出好几屏幕,浪费资源
: ,改成文言文写,打字只要1/5,让程序来生成白话文不好么。
:
: geek

t****a
发帖数: 1212
25
天哪,挑战一下java就被说成无限自大了
对不起我错了

【在 z*******3 的大作中提到】
: 第一,java远不只有大公司那么简单
: jboss, interface21这种都是从无到有,白手起家的公司
: 里面还有很多小公司
: 第二,这一片海都在讨论要这样做
: 就最好看看为什么他们要这么做
: 总觉得自己比所有人都聪明,恐怕不是件好事
: 你都能想到,会有人想不到?
: 我的天,自大也该有个限度

z*******3
发帖数: 13709
26
我随便说几个做java从无到有的公司,看看是不是都只有所谓的“大公司”
比如spring的interface21,一个澳大利亚cs本科,音乐phd的consultant
通过做这个起家,后来被vmware收购
做hibernate的gavin king,最初只是一个很普通的码农
后来做出的hibernate得到了多数推崇,所以就被找去制定jpa规范
成为jpa规范的制定者
再往前,bea的庄思浩,不过是sun的一个普通码农
后来觉得middleware有利可图,就出来自己创业
好像说是历史上最快达到百万规模级的软件公司
后来是世界第七大软件公司,被oracle吞并的时候一肚子不甘愿啊
后来的jboss,也不过是一个sun的码农搞出来的
一个法国人,巴黎高师的毕业生,懂数学的应该知道这个学校吧?
世界第一数学牛校,五分之一还多一点的费儿子奖获得者都出自这个学校
他跑出来搞jboss,后来被oracle盯上,要收购兼并jboss
结果他很有气节,宁为玉碎不为瓦全,最后时刻眼看要顶不住了
一头载进red hat的怀抱,为开源留下最后一丝希望
话说要是mysql有这个气节就好了
最近的,minecraft,一个瑞典的java男
做的一个网络游戏,现在销量是700多万套,数字还在不停地增长中
10年8月时候因为太过于火爆,以至于服务器都停止注册了一段时间
各地还有无数的私服
这是java的游戏哦,被认为不适合做desktop的java做的游戏
对于这些人的创业故事,敢问阁下有什么想法?
要不您也用fp写出以上任何一个来?
然后看看能不能在世界范围内beat他们任何一个?
我很好看你哦

【在 t****a 的大作中提到】
: 还有啊,迷信大公司的可以歇歇了,大公司的制度根本就不利于调动人的积极性做创新
: 。

z*******3
发帖数: 13709
27
没有啊,显然你说的是不要迷信大公司啊
不要害怕嘛,年轻人应该有勇气接受挑战
对不对?来吧,写一点东西出来吧
用你最喜欢的语言,来beat这些愚蠢的凡夫俗子吧
让所有人见识一下您的牛逼吧
既然您都知道这个东西的愚蠢之处了
必然应该知道如何去改进对不对?
那好东西是不可能不为大众所接受的
所以这是您飞黄腾达的机会啊
千万要把握住啊

【在 t****a 的大作中提到】
: 天哪,挑战一下java就被说成无限自大了
: 对不起我错了

p***o
发帖数: 1252
28
fp的问题是就算实现一个功能你只用花1/10的时间, 找10个能用fp的人估计比
找100个能用java的人难, 不用提你其实可以找到1000个会java的。

【在 t****a 的大作中提到】
: 天哪,挑战一下java就被说成无限自大了
: 对不起我错了

s*********t
发帖数: 1663
29
minecraft那种图形用javascript就行了

【在 z*******3 的大作中提到】
: 我随便说几个做java从无到有的公司,看看是不是都只有所谓的“大公司”
: 比如spring的interface21,一个澳大利亚cs本科,音乐phd的consultant
: 通过做这个起家,后来被vmware收购
: 做hibernate的gavin king,最初只是一个很普通的码农
: 后来做出的hibernate得到了多数推崇,所以就被找去制定jpa规范
: 成为jpa规范的制定者
: 再往前,bea的庄思浩,不过是sun的一个普通码农
: 后来觉得middleware有利可图,就出来自己创业
: 好像说是历史上最快达到百万规模级的软件公司
: 后来是世界第七大软件公司,被oracle吞并的时候一肚子不甘愿啊

t****a
发帖数: 1212
30
我说了啊,我错了,我错了还不行么
FP是错误的道路,动态语言是错误的道路,lisp/clojure更是错误中的错误,emacs和
eclipse相比就是个渣(高司令早BS过了)
java万岁,java型OO万岁,eclipse万岁,高司令万岁,大公司万岁,众护法万岁
java,高司令,各大公司,众护法 文成武德,泽被苍生,千秋万代,一统江湖!

【在 z*******3 的大作中提到】
: 没有啊,显然你说的是不要迷信大公司啊
: 不要害怕嘛,年轻人应该有勇气接受挑战
: 对不对?来吧,写一点东西出来吧
: 用你最喜欢的语言,来beat这些愚蠢的凡夫俗子吧
: 让所有人见识一下您的牛逼吧
: 既然您都知道这个东西的愚蠢之处了
: 必然应该知道如何去改进对不对?
: 那好东西是不可能不为大众所接受的
: 所以这是您飞黄腾达的机会啊
: 千万要把握住啊

相关主题
C++ vs JavaJava必然败在oracle身上
只会 java, c# 的小孩伤不起呀scala和F#是不是同一回事
俺老10年前关于语言未来的论述scala被Java 8当枪使了
进入Programming版参与讨论
g*****g
发帖数: 34805
31
你都没明白我们码农学语言为的是啥?为的是图口饭吃。图口饭吃有两个标准,一个是
工作机会多少,一个是工资多少。综合考虑你找个比Java更好的语言出来?
回到FP,OOP之争。FP写单个方法可以很漂亮很简洁,但一写系统你就发现这个世界是
一个OO的世界,以OO建模最自然,最容易理解。程序语言和普通语言一样是用来交流的
,写出来的东西别人容易看懂,就容易维护。我还没看到什么FP是真的容易看懂的。
n*w
发帖数: 3393
32
这个帖子里有写例子显示fp简洁又容易懂。
http://www.mitbbs.com/article_t/Programming/31233187.html

【在 g*****g 的大作中提到】
: 你都没明白我们码农学语言为的是啥?为的是图口饭吃。图口饭吃有两个标准,一个是
: 工作机会多少,一个是工资多少。综合考虑你找个比Java更好的语言出来?
: 回到FP,OOP之争。FP写单个方法可以很漂亮很简洁,但一写系统你就发现这个世界是
: 一个OO的世界,以OO建模最自然,最容易理解。程序语言和普通语言一样是用来交流的
: ,写出来的东西别人容易看懂,就容易维护。我还没看到什么FP是真的容易看懂的。

s*********t
发帖数: 1663
33
不用JAVA不等于不用OOP
JAVA机会可能比C++多,但是未必脚本语言多
再一个,工资也未必多

【在 g*****g 的大作中提到】
: 你都没明白我们码农学语言为的是啥?为的是图口饭吃。图口饭吃有两个标准,一个是
: 工作机会多少,一个是工资多少。综合考虑你找个比Java更好的语言出来?
: 回到FP,OOP之争。FP写单个方法可以很漂亮很简洁,但一写系统你就发现这个世界是
: 一个OO的世界,以OO建模最自然,最容易理解。程序语言和普通语言一样是用来交流的
: ,写出来的东西别人容易看懂,就容易维护。我还没看到什么FP是真的容易看懂的。

d****i
发帖数: 4809
34
看了你的帖子,越发觉得Oracle的那种邪恶的味道了,类似的故事有很多,那时候
Oracle想收购PeopleSoft,PeopleSoft的创始人不干,于是Oracle就开始恶意收购,最
终不幸被Oracle恶意收购得逞,PeopleSoft的创始人立即离开,随后又创立了一家公司
,就是最近刚上市的Workday。唉,Oracle的Larry Ellison的人品确实太差,在高科技
业界名声不好。

【在 z*******3 的大作中提到】
: 我随便说几个做java从无到有的公司,看看是不是都只有所谓的“大公司”
: 比如spring的interface21,一个澳大利亚cs本科,音乐phd的consultant
: 通过做这个起家,后来被vmware收购
: 做hibernate的gavin king,最初只是一个很普通的码农
: 后来做出的hibernate得到了多数推崇,所以就被找去制定jpa规范
: 成为jpa规范的制定者
: 再往前,bea的庄思浩,不过是sun的一个普通码农
: 后来觉得middleware有利可图,就出来自己创业
: 好像说是历史上最快达到百万规模级的软件公司
: 后来是世界第七大软件公司,被oracle吞并的时候一肚子不甘愿啊

d********u
发帖数: 5383
35
你就不要调戏清华JAVA男和澳洲JAVA男了
人家就这么一个生存的技能(吹牛皮就不算了),何必呢?跪安吧。

【在 t****a 的大作中提到】
: 我说了啊,我错了,我错了还不行么
: FP是错误的道路,动态语言是错误的道路,lisp/clojure更是错误中的错误,emacs和
: eclipse相比就是个渣(高司令早BS过了)
: java万岁,java型OO万岁,eclipse万岁,高司令万岁,大公司万岁,众护法万岁
: java,高司令,各大公司,众护法 文成武德,泽被苍生,千秋万代,一统江湖!

d****i
发帖数: 4809
36
谁是清华Java男?

【在 d********u 的大作中提到】
: 你就不要调戏清华JAVA男和澳洲JAVA男了
: 人家就这么一个生存的技能(吹牛皮就不算了),何必呢?跪安吧。

t****a
发帖数: 1212
37
兄弟,我这不是没办法么,人java神教的护法出现的帖子,好多都是给java打广告在外
带BS其他小语言帮派的啊。我们这些小帮派信徒虽然job market小但人还是有理想有骨
气的。这不刚说几句就被要求超越java大牛不然就不给说话了么
跪安跪安跪安,万事大吉。

【在 d********u 的大作中提到】
: 你就不要调戏清华JAVA男和澳洲JAVA男了
: 人家就这么一个生存的技能(吹牛皮就不算了),何必呢?跪安吧。

m****t
发帖数: 2329
38
人多力量大的道理。用的人越多,搭建平台越多的语言,势力大。原因就一个:大部分
人喜欢沿袭旧路,不喜欢重头再来。除非有个明显的势力对他造成威胁。
m****t
发帖数: 2329
39
瘦死的骆驼比马大。难道要去迷恋小公司。。。迷恋可以,前提是有眼光。

【在 t****a 的大作中提到】
: 还有啊,迷信大公司的可以歇歇了,大公司的制度根本就不利于调动人的积极性做创新
: 。

r****y
发帖数: 26819
40
一直没搞懂minecraft这个游戏有什么好玩的?看着跟古老的doom一样,在马赛克的世界
里转圈圈。

【在 s*********t 的大作中提到】
: minecraft那种图形用javascript就行了
相关主题
scala被Java 8当枪使了[bssd]周末乱侃
NodeJS厉害Oracle又告Google了
从今天开始起,学C++!rust现在很火
进入Programming版参与讨论
g*****g
发帖数: 34805
41
我说的是现实世界适合OO建模,你又扯回单个函数如何。我还跟你说过Java对于C#的优
势,不是语言本身,而是平台的优势。C#只有微软一个公司玩,Java几乎所有的非微软
大公司都在玩。从开发者数量,到工作机会,到类库丰富程度,自然是压倒性优势。
而开发的效率是什么决定的,是类库决定的。如果你不能理解这个,那只能说明你做的
项目太简单,.Net控件就足够了。
成天弄点FP的feature觉得很了不起,我做过一年的Scala,论FP feature Scala秒杀C#
。但我不觉得Scala会比Java更流行,因为太复杂。当你带过项目,要负责擦屁股。而
不是只用管自己的那一块,你就会理解了。

【在 n*w 的大作中提到】
: 这个帖子里有写例子显示fp简洁又容易懂。
: http://www.mitbbs.com/article_t/Programming/31233187.html

n*w
发帖数: 3393
42
我只是回你最后那一句“我还没看到什么FP是真的容易看懂的”。
我没有和你比“牛”,也没有被封为“大牛”。我还是在学习fp中。
关于类库,framework,工作机会,可以个别专门讨论。我没有否认java在这些方面的
优势。
和你很难讨论问题,在说纯技术问题时,你时不时贴个工作趋势,或者工资趋势岔开话
题。总之Java不能不好。

C#

【在 g*****g 的大作中提到】
: 我说的是现实世界适合OO建模,你又扯回单个函数如何。我还跟你说过Java对于C#的优
: 势,不是语言本身,而是平台的优势。C#只有微软一个公司玩,Java几乎所有的非微软
: 大公司都在玩。从开发者数量,到工作机会,到类库丰富程度,自然是压倒性优势。
: 而开发的效率是什么决定的,是类库决定的。如果你不能理解这个,那只能说明你做的
: 项目太简单,.Net控件就足够了。
: 成天弄点FP的feature觉得很了不起,我做过一年的Scala,论FP feature Scala秒杀C#
: 。但我不觉得Scala会比Java更流行,因为太复杂。当你带过项目,要负责擦屁股。而
: 不是只用管自己的那一块,你就会理解了。

q*c
发帖数: 9453
43

序:
这话说的 -- 等到了计算机写程序的时候再说吧。
现在是人写程序, 人维护程序, 计算机只执行。

【在 t****a 的大作中提到】
: perl就不提了,出了名的烂,不好维护。
: 不过你的这个话也有问题,照你这个标准,大家都应该去用COBOL,直接用英文写程序:
: age = age + years要写成ADD YEARS TO AGE
: http://en.wikipedia.org/wiki/COBOL
: - 问题是,这类烂语言的工作效率有多高呢?这玩意蠢不蠢啊?
: 好啊,大家都去用COBOL,我们去写COBOL程序生成器倒还可以小发一笔
: 你拿自然语言(文言-白话)来比喻不太恰当。自然语言是为了交流而诞生的,而程序
: 是为了能让计算机运行。再考虑到《人月神话》里提到的大项目效应,烂COBOL类的程
: 序就实在是...反正我没兴趣去弄。

q*c
发帖数: 9453
44
创新并不总是好玩意。
其实 100 个创新里面99 个都是坏玩意。
只是人只看到活下来的那一个。 话说 java 当年也正是创新而且活下来的产物啊。

【在 t****a 的大作中提到】
: 还有啊,迷信大公司的可以歇歇了,大公司的制度根本就不利于调动人的积极性做创新
: 。

q*c
发帖数: 9453
45
而且等这 10 个写了 10M 行 fp 的人走了, 现在要维护的时候, zezeze.

【在 p***o 的大作中提到】
: fp的问题是就算实现一个功能你只用花1/10的时间, 找10个能用fp的人估计比
: 找100个能用java的人难, 不用提你其实可以找到1000个会java的。

n******t
发帖数: 4406
46
其实什么code 写了10M行的人走了,都只能 zezeze.lol
甚至不走,也只能zezeze.

【在 q*c 的大作中提到】
: 而且等这 10 个写了 10M 行 fp 的人走了, 现在要维护的时候, zezeze.
d***q
发帖数: 1119
47
这种帖子能讨论啥问题?
要是认真就错了.

【在 n*w 的大作中提到】
: 我只是回你最后那一句“我还没看到什么FP是真的容易看懂的”。
: 我没有和你比“牛”,也没有被封为“大牛”。我还是在学习fp中。
: 关于类库,framework,工作机会,可以个别专门讨论。我没有否认java在这些方面的
: 优势。
: 和你很难讨论问题,在说纯技术问题时,你时不时贴个工作趋势,或者工资趋势岔开话
: 题。总之Java不能不好。
:
: C#

d***q
发帖数: 1119
48
这种帖子能讨论啥问题?
要是认真就错了.

【在 n*w 的大作中提到】
: 我只是回你最后那一句“我还没看到什么FP是真的容易看懂的”。
: 我没有和你比“牛”,也没有被封为“大牛”。我还是在学习fp中。
: 关于类库,framework,工作机会,可以个别专门讨论。我没有否认java在这些方面的
: 优势。
: 和你很难讨论问题,在说纯技术问题时,你时不时贴个工作趋势,或者工资趋势岔开话
: 题。总之Java不能不好。
:
: C#

n*w
发帖数: 3393
49
我比较看好c#这种混合方式,以imperative为主,毕竟大部分人不熟悉fp。在能用fp更
好解决问题的地方用fp。
java也是朝这个方向发展,只是很慢。Java 8将采用c#的lambda格式。

【在 q*c 的大作中提到】
: 而且等这 10 个写了 10M 行 fp 的人走了, 现在要维护的时候, zezeze.
z****e
发帖数: 54598
50
废材一个
让你上的时候推三阻四
又这个又那个
能成p事

【在 t****a 的大作中提到】
: 我说了啊,我错了,我错了还不行么
: FP是错误的道路,动态语言是错误的道路,lisp/clojure更是错误中的错误,emacs和
: eclipse相比就是个渣(高司令早BS过了)
: java万岁,java型OO万岁,eclipse万岁,高司令万岁,大公司万岁,众护法万岁
: java,高司令,各大公司,众护法 文成武德,泽被苍生,千秋万代,一统江湖!

相关主题
Google confirms next Android version won’t implement Oracl (转载)javascript 真的来自于java上的script?
java是最好的语言Re: 大妈问一下JAVA的编程平台就是需要安装上JAVA就行了?
今天第一次在windows上倒腾vert.x为什么大家都说c++水很深?
进入Programming版参与讨论
z****e
发帖数: 54598
51
openjdk
是的,oracle是一个evil公司
所以sun在被吞并前,做了一件大事
就是把java给整个开源了
所以才有了后来的android
android就是google版的java
但是api不一样,而且官司还赢了
也正是因为开源了,所以理论上oracle不会去破坏它
因为这样做了的话,会有无数个绑定os的java冒出来
这样做,对谁都没好处
所有大多数人都维持一个默契,就是不去破坏jcp
这是一种默契,双赢多赢的默契

【在 d****i 的大作中提到】
: 看了你的帖子,越发觉得Oracle的那种邪恶的味道了,类似的故事有很多,那时候
: Oracle想收购PeopleSoft,PeopleSoft的创始人不干,于是Oracle就开始恶意收购,最
: 终不幸被Oracle恶意收购得逞,PeopleSoft的创始人立即离开,随后又创立了一家公司
: ,就是最近刚上市的Workday。唉,Oracle的Larry Ellison的人品确实太差,在高科技
: 业界名声不好。

z****e
发帖数: 54598
52
让你做事吓得屁滚尿流的,前面的大话都跑哪去了?
敢说有问题就是摆明了发财的机会
绝大多数人都是把握住了这种机会才飞黄腾达的
这种机会都把握不住,还能成p事
觉得不好,动手去改进,做得好,自然财源滚滚来
多少人就是这么成名的?例子不要太多
如果连这样的机会都把握不住,一天到晚酸来酸去有个毛用
也就是买买提上当个wsn的货色

【在 t****a 的大作中提到】
: 兄弟,我这不是没办法么,人java神教的护法出现的帖子,好多都是给java打广告在外
: 带BS其他小语言帮派的啊。我们这些小帮派信徒虽然job market小但人还是有理想有骨
: 气的。这不刚说几句就被要求超越java大牛不然就不给说话了么
: 跪安跪安跪安,万事大吉。

z****e
发帖数: 54598
53
你这一看就是没有经验的
肯定不行,复杂的客户端最好不要上javascript
因为javascript这种东西,简单的function可以搞搞
稍微复杂点的,就不要弄了
用javascript做逻辑判断,还不如用高级语言写呢

【在 s*********t 的大作中提到】
: minecraft那种图形用javascript就行了
z****e
发帖数: 54598
54
创造的魅力
造东西是有成就感的

世界

【在 r****y 的大作中提到】
: 一直没搞懂minecraft这个游戏有什么好玩的?看着跟古老的doom一样,在马赛克的世界
: 里转圈圈。

z****e
发帖数: 54598
55
这种思维方式就是典型的书呆子
什么事情都孤立起来看
甚至连一个贴的最后一句话都孤立起来讨论,我的天
你现实生活中找得到这种情况么?
有什么东西是让你可以不在乎其他厉害关系
跟数学一样,就看前一个条件就能得出结论的?
书呆子最喜欢做的一件事就是告诉你
做某种事情时候,这样做会比较容易
但是问题在于,书呆子往往不在乎这个容易所带来的后果
书呆子往往在乎自己爽就好了,至于别人的死活,与它何关?
你也不用悲愤,主贴一开始就在扯淡利益关系
所以如果你被扯淡利益关系的话
这是你进来时候就该预先明白的道理
除非你要说你的回帖跟主贴无关?那进来干嘛?

【在 n*w 的大作中提到】
: 我只是回你最后那一句“我还没看到什么FP是真的容易看懂的”。
: 我没有和你比“牛”,也没有被封为“大牛”。我还是在学习fp中。
: 关于类库,framework,工作机会,可以个别专门讨论。我没有否认java在这些方面的
: 优势。
: 和你很难讨论问题,在说纯技术问题时,你时不时贴个工作趋势,或者工资趋势岔开话
: 题。总之Java不能不好。
:
: C#

z****e
发帖数: 54598
56
没有银弹
记得有人说过这个短句
貌似很多人还是不懂这句话的意思
这种问题在上个世纪80年代特别明显
现在好很多了,但是还是有人蠢蠢欲动
举个例子
某些人很喜欢的匿名方法
现在java版本是用匿名类来实现
但是我本人是反对使用匿名类的
因为这样貌似简单了,但是两个类的实现凑到一起去
第一使得类复用变得不可行
其次会使得代码很丑陋,完全破坏了结构,会有人看不懂
所以能不用就不用,就跟goto语句一样
但是很多人看不到这个
不少人的思维方式还停留在手工作坊那个阶段
只要自己爽就好了
这是有问题的,这不是数学
所有人都应该明白,在社会上混,最重要的是与他人协作
人是社会动物,自己劈里啪啦一顿敲,自己很爽
但是被别人心里骂了无数次,那这种东西搞出来有什么意义?
这就是为什么古德霸说scala的受众有限的原因
说到底这都是经验,多参与大型项目,这些经验自然就有了
在小公司搞,很多东西都不正规,都是瞎搞
怎么简单怎么来,但是迟早都要还回去的
这就是小公司的问题,小公司的人很多时候缺乏远见
也想不了那么远,这就是为什么我个人对小公司没有太多的好感
当然所有的公司都有过小公司的阶段,但是对于大公司已有的经验
要予以借鉴,不要再摸着石头过河,搞不好掉下去就被淹死了

【在 n******t 的大作中提到】
: 其实什么code 写了10M行的人走了,都只能 zezeze.lol
: 甚至不走,也只能zezeze.

n*w
发帖数: 3393
57
这和书呆子有什么关系?
我只是对一个观点说了几句话。还扯到“至于别人的死活,与它何关”?
我悲愤了什么?我又不像有人很ms一样恨java有关的东西。java能变得更好我也很高兴。

【在 z****e 的大作中提到】
: 这种思维方式就是典型的书呆子
: 什么事情都孤立起来看
: 甚至连一个贴的最后一句话都孤立起来讨论,我的天
: 你现实生活中找得到这种情况么?
: 有什么东西是让你可以不在乎其他厉害关系
: 跟数学一样,就看前一个条件就能得出结论的?
: 书呆子最喜欢做的一件事就是告诉你
: 做某种事情时候,这样做会比较容易
: 但是问题在于,书呆子往往不在乎这个容易所带来的后果
: 书呆子往往在乎自己爽就好了,至于别人的死活,与它何关?

d****i
发帖数: 4809
58
Sun还是比Oracle这种有点邪恶卑鄙的公司光明磊落多了,除了Java,Sun的遗产还有
Solaris, Open Solaris,听说Oracle兼并Sun以后,连Open Solaris项目都停了,不过
还好,开源社区有人接手。目前来看,Oracle似乎还不敢对Java怎么样,但是状告
Google这件事上造成了很恶劣的影响。希望Java能早日脱离Oracle的魔爪。

【在 z****e 的大作中提到】
: openjdk
: 是的,oracle是一个evil公司
: 所以sun在被吞并前,做了一件大事
: 就是把java给整个开源了
: 所以才有了后来的android
: android就是google版的java
: 但是api不一样,而且官司还赢了
: 也正是因为开源了,所以理论上oracle不会去破坏它
: 因为这样做了的话,会有无数个绑定os的java冒出来
: 这样做,对谁都没好处

d****i
发帖数: 4809
59
Apache与Oracle的决裂也是因为Oracle不承认开源社区的成果,对开源社区不友好,
Apache甚至在离开JCP的声明中提到,鉴于Oracle对于开源社区的不友好态度,以后将
考虑用其他语言来代替Java。我觉得应该让所有开源社区,Apache, GNU等对Oracle施
加压力,逼迫Oracle释放对Java的掌控权。

【在 z****e 的大作中提到】
: openjdk
: 是的,oracle是一个evil公司
: 所以sun在被吞并前,做了一件大事
: 就是把java给整个开源了
: 所以才有了后来的android
: android就是google版的java
: 但是api不一样,而且官司还赢了
: 也正是因为开源了,所以理论上oracle不会去破坏它
: 因为这样做了的话,会有无数个绑定os的java冒出来
: 这样做,对谁都没好处

l*********s
发帖数: 5409
60
从现实来说,c/c++, java这些是基础,没这些没法讨生活。但是从个人兴趣出发,应
该学点FP。毕竟工作不全是为了讨生活,而且一个对学习新事物毫无兴趣的程序员,我
觉得也很难做到顶尖的水平。
相关主题
If you say that a is 5, you can't say it's something else l只会 java, c# 的小孩伤不起呀
java的那些framework俺老10年前关于语言未来的论述
C++ vs JavaJava必然败在oracle身上
进入Programming版参与讨论
T*****u
发帖数: 7103
61
java的优势在于维护,大项目吧
A******g
发帖数: 612
62
如果只允许+和-,不允许其他,FP语言也是要穷举的,这个只是特例,不是一般情况。
而且,那一堆括号脑子很难parse

【在 t****a 的大作中提到】
: 呵呵,你仔细看了,真不错。
: 我的看法是,第一种涉及到”翻译”的过程,而第四种不需要。这意味着第一种没有扩
: 展性。
: 非法操作符比如非二元运算符代入op应该由编译器或者解释器自己去搞定,第四种就是
: 这么干的。

m****s
发帖数: 1481
63
minecraft其实是个java的反例,用来说明游戏的创意比实现的技术更重要,看看只要
有创意,即使是java这么不game-developer-popular的语言,这么龌龊的图形,也能让
这么多人接受。
s*********t
发帖数: 1663
64
http://mrdoob.com/97/depth_of_field
就minecraft这种级别的图形,html+js足以了

【在 z****e 的大作中提到】
: 你这一看就是没有经验的
: 肯定不行,复杂的客户端最好不要上javascript
: 因为javascript这种东西,简单的function可以搞搞
: 稍微复杂点的,就不要弄了
: 用javascript做逻辑判断,还不如用高级语言写呢

s*********t
发帖数: 1663
65
exactly

【在 m****s 的大作中提到】
: minecraft其实是个java的反例,用来说明游戏的创意比实现的技术更重要,看看只要
: 有创意,即使是java这么不game-developer-popular的语言,这么龌龊的图形,也能让
: 这么多人接受。

g*****g
发帖数: 34805
66
因为你看的太少,C#也不是什么FP语言,光一个lamda不能说明问题。
fp是100个人有100种写法的语言。

【在 n*w 的大作中提到】
: 我只是回你最后那一句“我还没看到什么FP是真的容易看懂的”。
: 我没有和你比“牛”,也没有被封为“大牛”。我还是在学习fp中。
: 关于类库,framework,工作机会,可以个别专门讨论。我没有否认java在这些方面的
: 优势。
: 和你很难讨论问题,在说纯技术问题时,你时不时贴个工作趋势,或者工资趋势岔开话
: 题。总之Java不能不好。
:
: C#

g*****g
发帖数: 34805
67
android跟JDK 5的非GUI部分(swing, awt)是兼容的。用的也不是OpenJDK,是Harmony
,是Apache写的代码。Oracle告它恰恰是因为API接口一样。而法官最后也是直接判了
API接口不被保护。
所以不管Oracle如何现在已经搞不死Java。最差从Harmony直接fork一个出来就是。

【在 z****e 的大作中提到】
: openjdk
: 是的,oracle是一个evil公司
: 所以sun在被吞并前,做了一件大事
: 就是把java给整个开源了
: 所以才有了后来的android
: android就是google版的java
: 但是api不一样,而且官司还赢了
: 也正是因为开源了,所以理论上oracle不会去破坏它
: 因为这样做了的话,会有无数个绑定os的java冒出来
: 这样做,对谁都没好处

h**********c
发帖数: 4120
68
政治挂帅搞技术,结果可以预见
技术挂帅是随机而必然的自然选择。
政治挂帅往往是唯心必然决定论的蛮干。
g*****g
发帖数: 34805
69
编译本来就是一个很functional的例子,但一旦涉及到对现实世界建模就傻逼了。
OO语言大行其道,完全是因为更贴近人类理解的现实世界。
没有语言是完美的,但你的例子举来举去,还停留在一个方法的水平上。FP最大的弱点
之一:
It's very easy to add new functions for existing datatypes, but it's "hard"
to add new datatypes.
这意味着加新数据类型的时候,要在所有相关的function里面加东西。而OO则可以加一
个新类,而不改变原来的代码。毫无疑问,以对象组织代码
,要比以函数组织代码,更贴近人类的思维模式。所以FP永远都不会成为主流语言。OO
语言加一点FP的Feature,才是趋势。
从StackOverflow抄来的。
datatype Animal = Dog | Cat;
fun happyNoise(Dog) = "pant pant"
| happyNoise(Cat) = "purrrr";
fun excitedNoise(Dog) = "bark!"
| excitedNoise(Cat) = "meow!";
I can very quickly add the following:
fun angryNoise(Dog) = "grrrrrr"
| angryNoise(Cat) = "hisssss";
加一个Chicken
datatype Animal = Dog | Cat | Chicken;
fun happyNoise(Dog) = "pant pant"
| happyNoise(Cat) = "purrrr"
| happyNoise(Chicken) = "cluck cluck";
fun excitedNoise(Dog) = "bark!"
| excitedNoise(Cat) = "meow!"
| excitedNoise(Chicken) = "cock-a-doodle-doo!";
fun angryNoise(Dog) = "grrrrrr"
| angryNoise(Cat) = "hisssss"
| angryNoise(Chicken) = "squaaaawk!";

【在 t****a 的大作中提到】
: 呵呵,你仔细看了,真不错。
: 我的看法是,第一种涉及到”翻译”的过程,而第四种不需要。这意味着第一种没有扩
: 展性。
: 非法操作符比如非二元运算符代入op应该由编译器或者解释器自己去搞定,第四种就是
: 这么干的。

g*****g
发帖数: 34805
70
因为有工作机会。学术界折腾FP人的比例远远高于工业界,因为学术界的人大都不是靠
写程序吃饭的。
大谈FP如何如何好,才是搞文革。不搞工业生产,不担心饿肚子的。

【在 t****a 的大作中提到】
: 哎,随你的便吧,不想争论了,没意思。我猜你也不是一个喜欢折腾语言的人。
: 我只是看不懂为什么有人喜欢吹那些大公司力挺的东西。让我想起了一句话来着
: - 无产阶级文化大革命就是好就是好就是好来就是好

相关主题
Java必然败在oracle身上NodeJS厉害
scala和F#是不是同一回事从今天开始起,学C++!
scala被Java 8当枪使了[bssd]周末乱侃
进入Programming版参与讨论
g*****g
发帖数: 34805
71
图形龌龊只是因为没有钱,美工做得不够而已。不是性能问题。

【在 m****s 的大作中提到】
: minecraft其实是个java的反例,用来说明游戏的创意比实现的技术更重要,看看只要
: 有创意,即使是java这么不game-developer-popular的语言,这么龌龊的图形,也能让
: 这么多人接受。

z******a
发帖数: 5381
72
用perl 跟 java比,证明你基本处于没有入门的状态。嗬嗬。

geek

【在 t****a 的大作中提到】
: 看所谓"企业级大语言"简直就是笑话。
: 今天的java简直就是当年的COBOL,一个逻辑没多一点的程序给写了几屏幕,藐视geek
: 们的智商啊。我用FP语言写我们组遗留的那玩意,code只要它1/5 - 1/10。
: http://c2.com/cgi/wiki?JavaIsTheNewCobol
: 如果说perl的格言是“simple things simple, hard thing is possible"那么java的
: 大概就是"everything is complex"
: 怪不得大牛要挑出来骂java语言学校,这玩意是上手简单,可是也太烂了
: http://www.ruanyifeng.com/blog/2008/12/the_perils_of_javaschool
: java这种玩意太冗余了,就应该用程序来生成,不应该让geek们自己写。

n*w
发帖数: 3393
73
“因为你看的太少”,所以什么?你怎么知道我了多少?
我没有说过c#是还是不是fp语言。我说过c#引入了很多fp features。
被认为纯fp,只有functional风格的语言才是fp语言的话。ocaml/f#,scala都不是了。
第一次看到“fp是100个人有100种写法的语言”的说法,给个例子?

【在 g*****g 的大作中提到】
: 因为你看的太少,C#也不是什么FP语言,光一个lamda不能说明问题。
: fp是100个人有100种写法的语言。

g*****g
发帖数: 34805
74
说的就是你对fp的了解太少,没有太多实践的经验。
Scala可以是很纯粹的FP语言,如果你愿意那么写的话。
fp是100个人有100中写法的语言是我写了一年Scala上感受到的,而且Scala
还是静态语言,动态语言只有更甚。
Perl的口号就是 "There's more than one way to do it."

【在 n*w 的大作中提到】
: “因为你看的太少”,所以什么?你怎么知道我了多少?
: 我没有说过c#是还是不是fp语言。我说过c#引入了很多fp features。
: 被认为纯fp,只有functional风格的语言才是fp语言的话。ocaml/f#,scala都不是了。
: 第一次看到“fp是100个人有100种写法的语言”的说法,给个例子?

n*w
发帖数: 3393
75
你怎么得出我“对fp的了解太少,没有太多实践的经验“?
我不会在这里以大牛姿态对别人这样评价。真正的牛人浏览下帖子就知道到底是怎么回
事了。
”很纯粹“是怎么定义的?c#也可以写出没有side effect,lazy eval、、、的程序,
“如果你愿意那么写的话”。
http://blog.enfranchisedmind.com/2009/05/scala-not-functional/

【在 g*****g 的大作中提到】
: 说的就是你对fp的了解太少,没有太多实践的经验。
: Scala可以是很纯粹的FP语言,如果你愿意那么写的话。
: fp是100个人有100中写法的语言是我写了一年Scala上感受到的,而且Scala
: 还是静态语言,动态语言只有更甚。
: Perl的口号就是 "There's more than one way to do it."

t****a
发帖数: 1212
76
大牛,想砍我没问题,可你也得看清楚我说啥再砍好么?这样节省读者的时间。我是在
拿perl跟java比么?
在者,拿perl跟java比有什么问题么?我看不出大牛你怎么就可以推论出我基本处于没
有入门的状态的结论?大牛如此善于下结论,逻辑如此高深,可不可以简单告诉我们这
些初学者你的推理步骤?
还有啊,这栋楼里面有些大牛就很好,咱讨论啥就讨论啥,不涉及人身攻击;其他有的
大牛表现就令人叹息了。

【在 z******a 的大作中提到】
: 用perl 跟 java比,证明你基本处于没有入门的状态。嗬嗬。
:
: geek

t****a
发帖数: 1212
77
谢谢好虫大牛理智的回复,这年头在mitbbs上理智倒是个稀缺的东西。
不过我看不明白你想论证什么:你是想论证FP没有继承和多态性么?你从
stackoverflow拿来的例子是haskell的,haskell这种static typed pure FP语言有内
建的多态性支持,通过type class实现:
http://en.wikipedia.org/wiki/Polymorphism_%28computer_science%2
我不懂Haskell。版上blaze同学貌似是haskell大拿,还得请他指教。
Clojure这种动态的FP语言也有内建多态支持
http://clojure.org/runtime_polymorphism
有意思的是Clojure里对object的定义不过是一个hashmap。在我看来所有的class都可
以定义为hashmap。简单,轻便,动态,programmable,犯不着写一大堆定义。
多态并不是只有Java这样的OOP才有 :)
呵呵,如果不是goodbug提这点,我还真不知道。Now, problem solved.

"
OO

【在 g*****g 的大作中提到】
: 编译本来就是一个很functional的例子,但一旦涉及到对现实世界建模就傻逼了。
: OO语言大行其道,完全是因为更贴近人类理解的现实世界。
: 没有语言是完美的,但你的例子举来举去,还停留在一个方法的水平上。FP最大的弱点
: 之一:
: It's very easy to add new functions for existing datatypes, but it's "hard"
: to add new datatypes.
: 这意味着加新数据类型的时候,要在所有相关的function里面加东西。而OO则可以加一
: 个新类,而不改变原来的代码。毫无疑问,以对象组织代码
: ,要比以函数组织代码,更贴近人类的思维模式。所以FP永远都不会成为主流语言。OO
: 语言加一点FP的Feature,才是趋势。

g*****g
发帖数: 34805
78
因为C#根本就算不上Functional语言。F#算Functional,但你从来不提。
我跟你说论functiional features, Scala远比C#更强大。比如trait
, implicits, 更强的operator overloading,不只是overload后面,也可以overload
前面,以及case class。这些
的组合可以产生很灵活很强大的type class。另一个是implict return,这个可以使得
一个递归方法很简洁。请问这些东西C#有没有?
我老从不以feature多少来论语言的优劣,但你成天神神叨叨C#如何比Java好,那我就
给你个Scala比比看呗。
至于Scala是不是Functional language,这个纯粹是个人观点问题了。本来就是一个混
合的语言。
更注重OOP还是更注重Functional,在于你怎么用。认为Scala不是FP的人是少数。

【在 n*w 的大作中提到】
: 你怎么得出我“对fp的了解太少,没有太多实践的经验“?
: 我不会在这里以大牛姿态对别人这样评价。真正的牛人浏览下帖子就知道到底是怎么回
: 事了。
: ”很纯粹“是怎么定义的?c#也可以写出没有side effect,lazy eval、、、的程序,
: “如果你愿意那么写的话”。
: http://blog.enfranchisedmind.com/2009/05/scala-not-functional/

g*****g
发帖数: 34805
79
这个不是Haskell写的,是ML写的。ML有这个问题。
我从不否认Functional比OO language有更好的expressiveness,但我一直提的人类习
惯以OO建模,这是相对FP的巨大优势,你可是没解决。其他诸如性能的劣势也是没法解
决的。
你提到FP可以通过type class来解决expression problem,OO语言同样可以通过加入
functional class, lamda expression来解决这个问题。Java没有,但Anonymous
inner class可以解决大部分这种需要。
你觉得你可以把FP程序写成Java的1/5,但这并不意味着你思考的时间是1/5。如果你考
虑到一个大点的项目,别人也要理解你的思路,FP就要远远比Java花费更长的时间了。
这就是业界不用FP的原因。而我提到的Java现存的巨大类库,真正做一个大项目的时候
可以不用自己写非特定商业逻辑以外的东西,这就是非JVM上的大部分FP语言做不到的
。当你为完成一个模块沾沾自喜的时候,一个Java程序员用了1/10的时间,拿了一个充
分测试的第三方类库用上了,这就是现实中会发生的事情。

【在 t****a 的大作中提到】
: 谢谢好虫大牛理智的回复,这年头在mitbbs上理智倒是个稀缺的东西。
: 不过我看不明白你想论证什么:你是想论证FP没有继承和多态性么?你从
: stackoverflow拿来的例子是haskell的,haskell这种static typed pure FP语言有内
: 建的多态性支持,通过type class实现:
: http://en.wikipedia.org/wiki/Polymorphism_%28computer_science%2
: 我不懂Haskell。版上blaze同学貌似是haskell大拿,还得请他指教。
: Clojure这种动态的FP语言也有内建多态支持
: http://clojure.org/runtime_polymorphism
: 有意思的是Clojure里对object的定义不过是一个hashmap。在我看来所有的class都可
: 以定义为hashmap。简单,轻便,动态,programmable,犯不着写一大堆定义。

z*******3
发帖数: 13709
80
说的是你不用悲愤
如果你木有悲愤那很好啊
我只是觉得你看问题很容易孤立其他所有环境单独起来看
如果木有的话,那很好啊

兴。

【在 n*w 的大作中提到】
: 这和书呆子有什么关系?
: 我只是对一个观点说了几句话。还扯到“至于别人的死活,与它何关”?
: 我悲愤了什么?我又不像有人很ms一样恨java有关的东西。java能变得更好我也很高兴。

相关主题
Oracle又告Google了java是最好的语言
rust现在很火今天第一次在windows上倒腾vert.x
Google confirms next Android version won’t implement Oracl (转载)javascript 真的来自于java上的script?
进入Programming版参与讨论
z*******3
发帖数: 13709
81
sun是一个典型的书呆子公司
做的东西很牛逼,但是用起来极其难用
java算是很好的了,其他的什么glassfish之类的
用起来简直是,我的天
这种公司的问题就在于,它死了不重要
还要把mysql一起给弄死了
这个实在是太可惜了
另外google做google版的java,这个其实不是什么好事
这个其实就已经破坏了compile once, run everywhere这个原则
但是也有好处,就是给oracle这这种公司一个警告
oracle要是瞎搞,随时可能出现各种版本的java
所以oracle也不敢瞎搞,而且后来oracle做得不错
比如成功说服ibm和apple放弃自己的jvm
全部转投openjdk去了,这就是一个好事
要不然每个公司都有一个自己的jvm,很多问题就很麻烦
因为实现不一样,所以可能出现说在某一个版本的jvm上出问题
而在其他版本的jvm上不出问题的情况
如果都用一个openjdk,这种情况出现的概率就大大降低了

【在 d****i 的大作中提到】
: Sun还是比Oracle这种有点邪恶卑鄙的公司光明磊落多了,除了Java,Sun的遗产还有
: Solaris, Open Solaris,听说Oracle兼并Sun以后,连Open Solaris项目都停了,不过
: 还好,开源社区有人接手。目前来看,Oracle似乎还不敢对Java怎么样,但是状告
: Google这件事上造成了很恶劣的影响。希望Java能早日脱离Oracle的魔爪。

z*******3
发帖数: 13709
82
你错了,这个是三维即时演算的
不是光看图形就行了
其实现逻辑比较复杂
你用javascript实现一下就知道了
各种扯淡,而且minecraft有浏览器版本的
后来不得不脱离浏览器搞
这个就是某人说的,基于plugin的应用几乎都是不成功的
你做做就知道了,用javascript是噩梦

【在 s*********t 的大作中提到】
: http://mrdoob.com/97/depth_of_field
: 就minecraft这种级别的图形,html+js足以了

z*******3
发帖数: 13709
83
ellison是business man
这种商人一般都有自己的小九九
其实java一直都有这种问题
就是各种利益集团在里面塞私货
但是好就好在,各种利益集团都会在大方向上保持一致
不会因为一点小私利就闹翻
比如最早的swing和awt还有swt的冲突
这个其实也多少是闹翻了,所以后来很长时间java的gui都做得不死不活的样子
到今天都没有多少人用这个了
现在就是说,重新推翻,搞javafx,看行不行
可以看出从8以后的版本,对于gui的重视是逐步加强
所以有时候也需要一个商人来操盘,要不然极左太过于自由
很多时候破坏力有余,但是创造力往往有限
互相制肘,导致真正的果实被其他利益方给篡夺了去
不管怎样,openjdk是一个好东西,apache也拿到了自己想要的
如果没有openjdk,那会比较麻烦
至于jcp,其实jcp已经没啥事情可以做了
你回头看一下jdk8的new features
大部分是javafx的东西,换句话说,java做server这一边
多少已经有点接近极限了,再往上它也很难搞出点什么东西来了
而现在大部分人在考虑用一种更好的方式予以实现
但是这个是建立在jvm的基础之上,就像jvm其实是建立在各种os基础之上一样
这就是某人说的,其实现在很多人想的不是推倒java
而是做一个better java,在jvm上做更好的实现,比如scala就是一个尝试
scala还有一个比较重要的成果就是akka
这个如果经常写core java的人应该有所了解

【在 d****i 的大作中提到】
: Apache与Oracle的决裂也是因为Oracle不承认开源社区的成果,对开源社区不友好,
: Apache甚至在离开JCP的声明中提到,鉴于Oracle对于开源社区的不友好态度,以后将
: 考虑用其他语言来代替Java。我觉得应该让所有开源社区,Apache, GNU等对Oracle施
: 加压力,逼迫Oracle释放对Java的掌控权。

z*******3
发帖数: 13709
84
讨生活倒是没错
但是不是所有人都以做顶尖programmer为人生理想的
我倒是对于那种经常倒腾倒腾艺术的人比较欣赏
因为产品往往是这样
你做得再好,人家客户一看,哇,好丑啊
就马上淘汰了
最典型就是google和apple
apple很多东西其实不怎样,但是好看
财源就滚滚来,再比如sun,sun的技术不能说不高
但是sun死得很痛苦
所以我觉得,平常了解一下有必要
但是呢,这只是工具,对于用工具用来实现什么
那会显得更重要
就像java的gui,sun的那些nerd稍微费点心,装饰一下
弄好看点,也不至于象现在这样不死不活的
现在搞javafx,第一步就是把界面做好看了
这是一个好的兆头
平常做码农的,跟学艺术的交流交流
互相合作,搞点东西出来
这样也是挺好的,技术+艺术=现金

【在 l*********s 的大作中提到】
: 从现实来说,c/c++, java这些是基础,没这些没法讨生活。但是从个人兴趣出发,应
: 该学点FP。毕竟工作不全是为了讨生活,而且一个对学习新事物毫无兴趣的程序员,我
: 觉得也很难做到顶尖的水平。

z*******3
发帖数: 13709
85
scala本意是做一个better java
但是也带来了问题
很多东西都是要还回去的
前面怎么偷懒,后面就加倍还回去
这种事情太正常了
这就是没有银弹说的本意
甚至永远都还不回去,项目挂掉也很常见
反正这个星球上一半以上的项目都是失败的
这也是为什么不要瞎子摸象
如果只说一个方面
很多东西都很牛,比如hello world
这个用java写起来是最麻烦的了
什么语言可能都比java简单
但是一旦做大了
前面的投入就会pay back
所以很多人总是说某一个feature怎样
其实说到底就是自己觉得爽
换个角度看
如果是让你去看别人写的代码
这就会出现某人说的
光parse括号就够受的了
这也是为什么要去看大公司在做什么
一个公司能做大,自然有它的经验
小公司能够借鉴大公司的经验是很有必要的
有经验为什么不借鉴?
没有必要一定要摸着石头过河

overload

【在 g*****g 的大作中提到】
: 因为C#根本就算不上Functional语言。F#算Functional,但你从来不提。
: 我跟你说论functiional features, Scala远比C#更强大。比如trait
: , implicits, 更强的operator overloading,不只是overload后面,也可以overload
: 前面,以及case class。这些
: 的组合可以产生很灵活很强大的type class。另一个是implict return,这个可以使得
: 一个递归方法很简洁。请问这些东西C#有没有?
: 我老从不以feature多少来论语言的优劣,但你成天神神叨叨C#如何比Java好,那我就
: 给你个Scala比比看呗。
: 至于Scala是不是Functional language,这个纯粹是个人观点问题了。本来就是一个混
: 合的语言。

z*******3
发帖数: 13709
86
我木有怎么写过安桌
但是我依稀记得好像是不兼容swing的
google自己搞了一个gui出来
反正现在就是群雄逐鹿,各种妖魔鬼怪一起上
又是一轮改朝换代时,看最后mobile能剩下谁
在局势未明朗之前,观望就好了

Harmony

【在 g*****g 的大作中提到】
: android跟JDK 5的非GUI部分(swing, awt)是兼容的。用的也不是OpenJDK,是Harmony
: ,是Apache写的代码。Oracle告它恰恰是因为API接口一样。而法官最后也是直接判了
: API接口不被保护。
: 所以不管Oracle如何现在已经搞不死Java。最差从Harmony直接fork一个出来就是。

g*****g
发帖数: 34805
87
看来是我没说清楚,我的意思是JDK除了Swing和AWT以外的部分是兼容的。Android有自
己的UI,那俩个就不需要了。但是其余部分,也是非GUI第三方类库依赖的部分,是兼
容的。比如java.lang, java.io

【在 z*******3 的大作中提到】
: 我木有怎么写过安桌
: 但是我依稀记得好像是不兼容swing的
: google自己搞了一个gui出来
: 反正现在就是群雄逐鹿,各种妖魔鬼怪一起上
: 又是一轮改朝换代时,看最后mobile能剩下谁
: 在局势未明朗之前,观望就好了
:
: Harmony

L*********i
发帖数: 649
88
很欣赏你的这些见解!

【在 z*******3 的大作中提到】
: 讨生活倒是没错
: 但是不是所有人都以做顶尖programmer为人生理想的
: 我倒是对于那种经常倒腾倒腾艺术的人比较欣赏
: 因为产品往往是这样
: 你做得再好,人家客户一看,哇,好丑啊
: 就马上淘汰了
: 最典型就是google和apple
: apple很多东西其实不怎样,但是好看
: 财源就滚滚来,再比如sun,sun的技术不能说不高
: 但是sun死得很痛苦

L*********i
发帖数: 649
89
这个你说得太对了!
不能说学术界的东西都不重要,
但的确从生物的角度说:绝大多数都是浪费/骗钱,
只不过由于利益原因,圈内人都不说罢了。

【在 g*****g 的大作中提到】
: 因为有工作机会。学术界折腾FP人的比例远远高于工业界,因为学术界的人大都不是靠
: 写程序吃饭的。
: 大谈FP如何如何好,才是搞文革。不搞工业生产,不担心饿肚子的。

L*********i
发帖数: 649
90
谢谢分享!

【在 z*******3 的大作中提到】
: scala本意是做一个better java
: 但是也带来了问题
: 很多东西都是要还回去的
: 前面怎么偷懒,后面就加倍还回去
: 这种事情太正常了
: 这就是没有银弹说的本意
: 甚至永远都还不回去,项目挂掉也很常见
: 反正这个星球上一半以上的项目都是失败的
: 这也是为什么不要瞎子摸象
: 如果只说一个方面

相关主题
Re: 大妈问一下JAVA的编程平台就是需要安装上JAVA就行了?java的那些framework
为什么大家都说c++水很深?C++ vs Java
If you say that a is 5, you can't say it's something else l只会 java, c# 的小孩伤不起呀
进入Programming版参与讨论
S*******s
发帖数: 13043
91
http://www.paopaoche.net/soft/16723.html

【在 r****y 的大作中提到】
: 用perl生成java代码,然后维护perl。哈哈
: 突然想到,为啥没有白话文自动生成器?白话文没多少逻辑能写出好几屏幕,浪费资源
: ,改成文言文写,打字只要1/5,让程序来生成白话文不好么。
:
: geek

r****y
发帖数: 26819
92
诗歌生成器和微软对联都是老玩具了,你这么老的id应该见过吧。

【在 S*******s 的大作中提到】
: http://www.paopaoche.net/soft/16723.html
S*******s
发帖数: 13043
93
我回的那个人不是还以为那是高科技呢么

【在 r****y 的大作中提到】
: 诗歌生成器和微软对联都是老玩具了,你这么老的id应该见过吧。
n******t
发帖数: 4406
94
就我说知,没有太多用Java的人是真的因为care portablity的问题用Java的。

【在 z*******3 的大作中提到】
: sun是一个典型的书呆子公司
: 做的东西很牛逼,但是用起来极其难用
: java算是很好的了,其他的什么glassfish之类的
: 用起来简直是,我的天
: 这种公司的问题就在于,它死了不重要
: 还要把mysql一起给弄死了
: 这个实在是太可惜了
: 另外google做google版的java,这个其实不是什么好事
: 这个其实就已经破坏了compile once, run everywhere这个原则
: 但是也有好处,就是给oracle这这种公司一个警告

t****a
发帖数: 1212
95
对于你说的这个OO更符合人类习惯的论调表示怀疑,我没看到研究证据表明你说的这点。
如果真想OO,前面提到的那些多态相关的方法可以在FP语言里实现这点。
common-lisp也实现了CLOS的OO方式,看各人喜好用吧。
我倒是看到一堆大牛在批评的OO:
Luca Cardelli wrote a paper titled "Bad Engineering Properties of Object
-Oriented Languages".[32]
Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an
improvement; I used OOP when working on the Lisp Machine window systems, and
I disagree with the usual view that it is a superior way to program."[33]
A study by Potok et al.[34] has shown no significant difference in
productivity between OOP and procedural approaches.
Christopher J. Date stated that critical comparison of OOP to other
technologies, relational in particular, is difficult because of lack of an
agreed-upon and rigorous definition of OOP.[35] Date and Darwen[36] propose
a theoretical foundation on OOP that uses OOP as a kind of customizable type
system to support RDBMS.
Alexander Stepanov suggested that OOP provides a mathematically limited
viewpoint and called it "almost as much of a hoax as Artificial Intelligence
. I have yet to see an interesting piece of code that comes from these OO
people. In a sense, I am unfair to AI: I learned a lot of stuff from the MIT
AI Lab crowd, they have done some really fundamental work....".[37]
Paul Graham has suggested that the purpose of OOP is to act as a "
herding mechanism" that keeps mediocre programmers in mediocre organizations
from "doing too much damage". This is at the expense of slowing down
productive programmers who know how to use more powerful and more compact
techniques.[38]
Joe Armstrong, the principal inventor of Erlang, is quoted as saying "
The problem with object-oriented languages is they've got all this implicit
environment that they carry around with them. You wanted a banana but what
you got was a gorilla holding the banana and the entire jungle."[39]
Richard Mansfield, author and former editor of COMPUTE! magazine, states
that "like countless other intellectual fads over the years ("relevance",
communism, "modernism", and so on—history is littered with them), OOP will
be with us until eventually reality asserts itself. But considering how OOP
currently pervades both universities and workplaces, OOP may well prove to
be a durable delusion. Entire generations of indoctrinated programmers
continue to march out of the academy, committed to OOP and nothing but OOP
for the rest of their lives."[40] He also is quoted as saying "OOP is to
writing a program, what going through airport security is to flying".[41]
Steve Yegge, making a roundabout comparison with Functional programming,
writes, "Object Oriented Programming puts the Nouns first and foremost. Why
would you go to such lengths to put one part of speech on a pedestal? Why
should one kind of concept take precedence over another? It's not as if OOP
has suddenly made verbs less important in the way we actually think. It's a
strangely skewed perspective." [42]
Rich Hickey, creator of Clojure, described object systems as over
simplistic models of the real world. He emphasized the inability of OOP to
model time properly, which is getting increasingly problematic as software
systems become more concurrent.[43]
Carnegie-Mellon University Professor Robert Harper in March 2011 wrote:
"This semester Dan Licata and I are co-teaching a new course on functional
programming for first-year prospective CS majors... Object-oriented
programming is eliminated entirely from the introductory curriculum, because
it is both anti-modular and anti-parallel by its very nature, and hence
unsuitable for a modern CS curriculum. A proposed new course on object-
oriented design methodology will be offered at the sophomore level for those
students who wish to study this topic."[44]

【在 g*****g 的大作中提到】
: 这个不是Haskell写的,是ML写的。ML有这个问题。
: 我从不否认Functional比OO language有更好的expressiveness,但我一直提的人类习
: 惯以OO建模,这是相对FP的巨大优势,你可是没解决。其他诸如性能的劣势也是没法解
: 决的。
: 你提到FP可以通过type class来解决expression problem,OO语言同样可以通过加入
: functional class, lamda expression来解决这个问题。Java没有,但Anonymous
: inner class可以解决大部分这种需要。
: 你觉得你可以把FP程序写成Java的1/5,但这并不意味着你思考的时间是1/5。如果你考
: 虑到一个大点的项目,别人也要理解你的思路,FP就要远远比Java花费更长的时间了。
: 这就是业界不用FP的原因。而我提到的Java现存的巨大类库,真正做一个大项目的时候

t****a
发帖数: 1212
96
不好意思,我可以说这是数典忘宗么?现在我们用的编程上的一切,有多少不是从学术
界来的?
关于FP,不想多说了,贴个wiki的
Functional programming has long been popular in academia, but with few
industrial applications.[49]:page 11 However, recently several prominent
functional programming languages have been used in commercial or industrial
systems. For example, the Erlang programming language, which was developed
by the Swedish company Ericsson in the late 1980s, was originally used to
implement fault-tolerant telecommunications systems.[8] It has since become
popular for building a range of applications at companies such as T-Mobile,
Nortel, Facebook and EDF.[7][9][50][51] The Scheme dialect of Lisp was used
as the basis for several applications on early Apple Macintosh computers,[2]
[3] and has more recently been applied to problems such as training
simulation software[4] and telescope control.[5] OCaml, which was introduced
in the mid 1990s, has seen commercial use in areas such as financial
analysis,[10] driver verification, industrial robot programming, and static
analysis of embedded software.[11] Haskell, although initially intended as a
research language,[13] has also been applied by a range of companies, in
areas such as aerospace systems, hardware design, and web programming.[12][
13]
Other functional programming languages that have seen use in industry
include Scala,[52] F#,[15][16] Lisp,[53] Standard ML,[54][55] and Clojure.[
56]

【在 g*****g 的大作中提到】
: 因为有工作机会。学术界折腾FP人的比例远远高于工业界,因为学术界的人大都不是靠
: 写程序吃饭的。
: 大谈FP如何如何好,才是搞文革。不搞工业生产,不担心饿肚子的。

n******t
发帖数: 4406
97
OO是一般人的思维方式,其实就是一种"不用把事情想清楚也能做成事情"
的思维方式。
所以OO还是有用的。但是对于思维和电脑比较接近的人来说,就不太好用。
此外世界上有很多事情是更注重过程的, OO就更不好用了,比如说网络
通信之类的,OO就没什么优势。

点。
Object
and

【在 t****a 的大作中提到】
: 对于你说的这个OO更符合人类习惯的论调表示怀疑,我没看到研究证据表明你说的这点。
: 如果真想OO,前面提到的那些多态相关的方法可以在FP语言里实现这点。
: common-lisp也实现了CLOS的OO方式,看各人喜好用吧。
: 我倒是看到一堆大牛在批评的OO:
: Luca Cardelli wrote a paper titled "Bad Engineering Properties of Object
: -Oriented Languages".[32]
: Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an
: improvement; I used OOP when working on the Lisp Machine window systems, and
: I disagree with the usual view that it is a superior way to program."[33]
: A study by Potok et al.[34] has shown no significant difference in

t****a
发帖数: 1212
98
这个论调我看到过,有一种论调说OO只适合用来做UI建模之类的。

【在 n******t 的大作中提到】
: OO是一般人的思维方式,其实就是一种"不用把事情想清楚也能做成事情"
: 的思维方式。
: 所以OO还是有用的。但是对于思维和电脑比较接近的人来说,就不太好用。
: 此外世界上有很多事情是更注重过程的, OO就更不好用了,比如说网络
: 通信之类的,OO就没什么优势。
:
: 点。
: Object
: and

n******t
发帖数: 4406
99
基本上是这样,好的UI toolkit OO还是有一些的。

【在 t****a 的大作中提到】
: 这个论调我看到过,有一种论调说OO只适合用来做UI建模之类的。
g*****g
发帖数: 34805
100
首先你对fp的理解就不够,OO跟FP本来就是交叉的,并不是互斥的。所以你说FP能够实
现OO,这不奇怪。OO语言同样可以实现FP的风格,Scala就是个很好的例子。
重要的区别不在于能否实现,都可以实现。而在于如何思考,如何建模,从而体现了如
何组织你的代码,如何理解他人的代码,最终决定了维护和扩展的难易程度。
近年functional programming重新被提起,其实是两个主要原因,一是机器越来越快,
FP的效率对很多应用不再是个问题。二是fp的immutability,可以用于简化复杂的多线
程应用。诸如Scala的Akka Framework。所以我并没有全盘否认FP的用处,事实上,当
年我们的一个系统用Scala,简化多线程是主要的原因。
除此之外,OO更适合人类对世界的认识,是无需论证的。人类看世界是一个个的物体,
还是一个个的函数,难道还需要论证?
说到大牛,做学术和做工程是两码事情。世界上现有的大部分最复杂系统都是OO建模,
OO实现的。我更愿意看到的是一个killer app的实现,而不是大牛out of context的
quote。爱立信固然是FP的一个很好的例子,问题是这样的例子实在不多。而且这个例
子体现的是我前面提到的immutability和concurrency,并非一个很通用的例子。

点。
Object
and

【在 t****a 的大作中提到】
: 对于你说的这个OO更符合人类习惯的论调表示怀疑,我没看到研究证据表明你说的这点。
: 如果真想OO,前面提到的那些多态相关的方法可以在FP语言里实现这点。
: common-lisp也实现了CLOS的OO方式,看各人喜好用吧。
: 我倒是看到一堆大牛在批评的OO:
: Luca Cardelli wrote a paper titled "Bad Engineering Properties of Object
: -Oriented Languages".[32]
: Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an
: improvement; I used OOP when working on the Lisp Machine window systems, and
: I disagree with the usual view that it is a superior way to program."[33]
: A study by Potok et al.[34] has shown no significant difference in

相关主题
俺老10年前关于语言未来的论述scala被Java 8当枪使了
Java必然败在oracle身上NodeJS厉害
scala和F#是不是同一回事从今天开始起,学C++!
进入Programming版参与讨论
g*****g
发帖数: 34805
101
这个完全是谬论。举个简单的例子。从银行里取100块钱。正常的人思维,是有一个
可变的金额,一个取钱的方法。还是一个取钱的函数,输入是原来的账户和100,输出
一个少了100的账户?

【在 n******t 的大作中提到】
: 基本上是这样,好的UI toolkit OO还是有一些的。
t****a
发帖数: 1212
102
原来众大牛对FP理解不够 or 工业界经验不足,都在胡说;而OO的优势无须论证,对OO
的指责直接忽视。受教了。
谢谢goodbug大牛。

【在 g*****g 的大作中提到】
: 首先你对fp的理解就不够,OO跟FP本来就是交叉的,并不是互斥的。所以你说FP能够实
: 现OO,这不奇怪。OO语言同样可以实现FP的风格,Scala就是个很好的例子。
: 重要的区别不在于能否实现,都可以实现。而在于如何思考,如何建模,从而体现了如
: 何组织你的代码,如何理解他人的代码,最终决定了维护和扩展的难易程度。
: 近年functional programming重新被提起,其实是两个主要原因,一是机器越来越快,
: FP的效率对很多应用不再是个问题。二是fp的immutability,可以用于简化复杂的多线
: 程应用。诸如Scala的Akka Framework。所以我并没有全盘否认FP的用处,事实上,当
: 年我们的一个系统用Scala,简化多线程是主要的原因。
: 除此之外,OO更适合人类对世界的认识,是无需论证的。人类看世界是一个个的物体,
: 还是一个个的函数,难道还需要论证?

g*****g
发帖数: 34805
103
空言无益。最能说明问题的是Killer App,这方面FP跟OO比差了3个数量级都不只。
就如我老一直说的,语言是用来干活的,不是用来装逼的。你找1000个大牛都不如一个
killer app说明问题。
你喜欢信大牛,写Haskell的这位比你明白多了。
http://homepages.inf.ed.ac.uk/wadler/topics/functional-programm
Killer App. The factors listed constitute a significant barrier to use of
functional
languages, but not an absolute barrier. A user will forego many conveniences
if
given a compelling reason to do so. Tcl/Tk and Perl rose to prominence
without
benefit of debuggers or profilers.
Some researchers hope that the high-level nature of functional languages
will prove compelling on its own, but experience to date suggests this hope
is
misplaced. Instead, experience shows that users will be drawn to a language
if it
lets them conveniently do something that otherwise is difficult to achieve.
Like
other new technologies, functional languages must seek their killer app.

OO

【在 t****a 的大作中提到】
: 原来众大牛对FP理解不够 or 工业界经验不足,都在胡说;而OO的优势无须论证,对OO
: 的指责直接忽视。受教了。
: 谢谢goodbug大牛。

t****a
发帖数: 1212
104
OK, 这个有信息量。先看看。谢谢。

conveniences

【在 g*****g 的大作中提到】
: 空言无益。最能说明问题的是Killer App,这方面FP跟OO比差了3个数量级都不只。
: 就如我老一直说的,语言是用来干活的,不是用来装逼的。你找1000个大牛都不如一个
: killer app说明问题。
: 你喜欢信大牛,写Haskell的这位比你明白多了。
: http://homepages.inf.ed.ac.uk/wadler/topics/functional-programm
: Killer App. The factors listed constitute a significant barrier to use of
: functional
: languages, but not an absolute barrier. A user will forego many conveniences
: if
: given a compelling reason to do so. Tcl/Tk and Perl rose to prominence

t****a
发帖数: 1212
105
一个词总结Wadler大牛15年前的paper: why they don't?
就是“时机未到”(兼容性,没有library support,难安装,tools,popularity,以
及"they just don't get it")
他并没有像goodbug所认为的OO "fundamentally“ better than FP。不过他也提到了
goodbug所说的”killer app“问题,不知道这个问题现在怎么样了。
Walder大牛15年前认为时机未到,现在,貌似上面这些问题解决的差不多了。真的想知
道他现在怎么看。

【在 t****a 的大作中提到】
: OK, 这个有信息量。先看看。谢谢。
:
: conveniences

g*****g
发帖数: 34805
106
I don't know what he thinks now. But all problems remain today, while FP may
improve in some of these aspects. OO languages improve dramatically in all
these aspects, making FP much worse in comparison. At the same time, killer
app for FP is still hard to find. At best I see FP with some advantage in
concurrency, and that's about it.

【在 t****a 的大作中提到】
: 一个词总结Wadler大牛15年前的paper: why they don't?
: 就是“时机未到”(兼容性,没有library support,难安装,tools,popularity,以
: 及"they just don't get it")
: 他并没有像goodbug所认为的OO "fundamentally“ better than FP。不过他也提到了
: goodbug所说的”killer app“问题,不知道这个问题现在怎么样了。
: Walder大牛15年前认为时机未到,现在,貌似上面这些问题解决的差不多了。真的想知
: 道他现在怎么看。

s*********t
发帖数: 1663
107
可否推荐几个JAVA软件? 至今我电脑上都未安装jre

conveniences

【在 g*****g 的大作中提到】
: 空言无益。最能说明问题的是Killer App,这方面FP跟OO比差了3个数量级都不只。
: 就如我老一直说的,语言是用来干活的,不是用来装逼的。你找1000个大牛都不如一个
: killer app说明问题。
: 你喜欢信大牛,写Haskell的这位比你明白多了。
: http://homepages.inf.ed.ac.uk/wadler/topics/functional-programm
: Killer App. The factors listed constitute a significant barrier to use of
: functional
: languages, but not an absolute barrier. A user will forego many conveniences
: if
: given a compelling reason to do so. Tcl/Tk and Perl rose to prominence

t****a
发帖数: 1212
108
我只是普通的小程序员,相比起完全相信自己有限的判断力,我愿意去读一读大牛的话
再做判断。
贴个神一样的大牛John Carmack关于FP的观点:
Pro:
A large fraction of the flaws in software development are due to programmers
not fully understanding all the possible states their code may execute in.
In a multithreaded environment, the lack of understanding and the resulting
problems are greatly amplified, almost to the point of panic if you are
paying attention. Programming in a functional style makes the state
presented to your code explicit, which makes it much easier to reason about,
and, in a completely pure system, makes thread race conditions impossible.
Con:
I do believe that there is real value in pursuing functional programming,
but it would be irresponsible to exhort everyone to abandon their C++
compilers and start coding in Lisp, Haskell, or, to be blunt, any other
fringe language.

【在 t****a 的大作中提到】
: 一个词总结Wadler大牛15年前的paper: why they don't?
: 就是“时机未到”(兼容性,没有library support,难安装,tools,popularity,以
: 及"they just don't get it")
: 他并没有像goodbug所认为的OO "fundamentally“ better than FP。不过他也提到了
: goodbug所说的”killer app“问题,不知道这个问题现在怎么样了。
: Walder大牛15年前认为时机未到,现在,貌似上面这些问题解决的差不多了。真的想知
: 道他现在怎么看。

g*****g
发帖数: 34805
109
There ain't many on desktop. What I used for work, eclipse, sql developer,
and end users don't care about them. Turbotax, along with Interactive broker
client are probably the only Java clients I use on desktop personally. Java
's strength is on server side, and recently on Android too. Ebay and Netflix
are mostly written in Java.

【在 s*********t 的大作中提到】
: 可否推荐几个JAVA软件? 至今我电脑上都未安装jre
:
: conveniences

g*****g
发帖数: 34805
110
我老不信权威,只信事实。啥时候FP写出些世界级的应用,我再去学也不迟。

programmers
.
resulting
about,

【在 t****a 的大作中提到】
: 我只是普通的小程序员,相比起完全相信自己有限的判断力,我愿意去读一读大牛的话
: 再做判断。
: 贴个神一样的大牛John Carmack关于FP的观点:
: Pro:
: A large fraction of the flaws in software development are due to programmers
: not fully understanding all the possible states their code may execute in.
: In a multithreaded environment, the lack of understanding and the resulting
: problems are greatly amplified, almost to the point of panic if you are
: paying attention. Programming in a functional style makes the state
: presented to your code explicit, which makes it much easier to reason about,

相关主题
从今天开始起,学C++!rust现在很火
[bssd]周末乱侃Google confirms next Android version won’t implement Oracl (转载)
Oracle又告Google了java是最好的语言
进入Programming版参与讨论
d**********x
发帖数: 4083
111
我觉得纯实用主义也不好。FP那种奇怪的思维方式还是能帮人活跃一下脑筋的。拓展视
野总没有太多坏处
当然FP我是没啥兴趣仔细学的。。。

【在 g*****g 的大作中提到】
: 我老不信权威,只信事实。啥时候FP写出些世界级的应用,我再去学也不迟。
:
: programmers
: .
: resulting
: about,

n******t
发帖数: 4406
112
程序有很多种,一种是给别人用的,一种是给自己用的,还有自己也只用一次算个数的。
FP大部分都是后面两种情况。我倒是觉得fp作为embed在financial application里面做
scripting还是挺好用的。大部分金融it其实都不需要C++或者Java.

【在 d**********x 的大作中提到】
: 我觉得纯实用主义也不好。FP那种奇怪的思维方式还是能帮人活跃一下脑筋的。拓展视
: 野总没有太多坏处
: 当然FP我是没啥兴趣仔细学的。。。

n******t
发帖数: 4406
113
我说实话,这么个简单的情况还真都差不多。
复杂了,你OO也好不到那里去。大部分的程序,要cover的是一个N维空间里面的一个很
稀疏的子集,OO的做法呢,是要去handel这个全集,尤其是喜欢搞pure OO的人,更是
喜欢干这件事。所以太偏重OO的做法,常常从开发效率和执行效率来说,都是不高的。
而常常比较好的办法,是灵活的采用过程设计和OO设计的混合。能够比较自然的利用
OO概念的地方,用OO,比较自然的用procedure的地方用procedure.

【在 g*****g 的大作中提到】
: 这个完全是谬论。举个简单的例子。从银行里取100块钱。正常的人思维,是有一个
: 可变的金额,一个取钱的方法。还是一个取钱的函数,输入是原来的账户和100,输出
: 一个少了100的账户?

t****a
发帖数: 1212
114
嗯,我真是很不喜欢读over-design的OO程序。也许OO高手们读得很赏心悦目,可让我
这样的极简主义者去维护这种玩意...我还不如重写一个。

【在 n******t 的大作中提到】
: 我说实话,这么个简单的情况还真都差不多。
: 复杂了,你OO也好不到那里去。大部分的程序,要cover的是一个N维空间里面的一个很
: 稀疏的子集,OO的做法呢,是要去handel这个全集,尤其是喜欢搞pure OO的人,更是
: 喜欢干这件事。所以太偏重OO的做法,常常从开发效率和执行效率来说,都是不高的。
: 而常常比较好的办法,是灵活的采用过程设计和OO设计的混合。能够比较自然的利用
: OO概念的地方,用OO,比较自然的用procedure的地方用procedure.

d**********x
发帖数: 4083
115
有些是考虑了re-usability和maintenance的
有些则是纯粹的pattern addict
两者之间的界限相当模糊。。。需要一定的经验才能驾驭

【在 t****a 的大作中提到】
: 嗯,我真是很不喜欢读over-design的OO程序。也许OO高手们读得很赏心悦目,可让我
: 这样的极简主义者去维护这种玩意...我还不如重写一个。

n******t
发帖数: 4406
116
我个人的观点啊,OO这个东西本来就不是为可读性服务的。
OO的一个特点基本上是避免别人去看你的code的,有一些情况,这样事实上是有好处的
,但是不是所有情况。

【在 t****a 的大作中提到】
: 嗯,我真是很不喜欢读over-design的OO程序。也许OO高手们读得很赏心悦目,可让我
: 这样的极简主义者去维护这种玩意...我还不如重写一个。

d**********x
发帖数: 4083
117
好的code应该具有好的可读性
OO是可以辅助这一点的,就好像OO事实上也是辅助重用性、维护性一样
但是后者是最初的目的,前者则不是
至于隐藏实现,和可读性本身是两个问题,虽然一般人所谓收拾屋子就是把乱七八糟的
东西都装进箱子里,但是这里我们不应该产生这种怪异的联想

【在 n******t 的大作中提到】
: 我个人的观点啊,OO这个东西本来就不是为可读性服务的。
: OO的一个特点基本上是避免别人去看你的code的,有一些情况,这样事实上是有好处的
: ,但是不是所有情况。

n******t
发帖数: 4406
118
你觉得STL好读么?
而且考虑到里面其实并没有太多的很高深的算法,你大部分的时间是在和算法无关的事
情,
这些东西一般来说不是一个人要读code的目的。大部分人读code,出于两个原因,
一个是解bug,一个是改code。这两件事,OO都是不帮忙的。
我其实somehow是部分同意OO和大部分人的思维比较接近这个说法的。但是不幸的是,
大部分人其实都不适合写程序,而且这些人的思维也常常比较OO,说白了就是不太喜欢
去知道细节和过程,能够拿来就用。但是读code本身的目的就是了解细节和过程,所以
OO里面对与关系和对象的分类,对于这个目的我觉得没有帮助。
你只要仔细注意一下c++写的library就会发现,很多都没法不停的evolve.基本上就是
写了就摆在那里的情况,也没人愿意去读。

【在 d**********x 的大作中提到】
: 好的code应该具有好的可读性
: OO是可以辅助这一点的,就好像OO事实上也是辅助重用性、维护性一样
: 但是后者是最初的目的,前者则不是
: 至于隐藏实现,和可读性本身是两个问题,虽然一般人所谓收拾屋子就是把乱七八糟的
: 东西都装进箱子里,但是这里我们不应该产生这种怪异的联想

d**********x
发帖数: 4083
119
stl一旦了解了其中的idiom,还是很好读的
当然m$那一堆命名规则是想要做什么我完全不懂
哦,我意识到这里跑题了,stl主要的技术是GP,而不是OO。

糟的

【在 n******t 的大作中提到】
: 你觉得STL好读么?
: 而且考虑到里面其实并没有太多的很高深的算法,你大部分的时间是在和算法无关的事
: 情,
: 这些东西一般来说不是一个人要读code的目的。大部分人读code,出于两个原因,
: 一个是解bug,一个是改code。这两件事,OO都是不帮忙的。
: 我其实somehow是部分同意OO和大部分人的思维比较接近这个说法的。但是不幸的是,
: 大部分人其实都不适合写程序,而且这些人的思维也常常比较OO,说白了就是不太喜欢
: 去知道细节和过程,能够拿来就用。但是读code本身的目的就是了解细节和过程,所以
: OO里面对与关系和对象的分类,对于这个目的我觉得没有帮助。
: 你只要仔细注意一下c++写的library就会发现,很多都没法不停的evolve.基本上就是

g*****g
发帖数: 34805
120
简单的情况自然拿什么写都行。复杂的系统,难点通常不在于开始实现这个系统本身,
而在于系统不断增加新的特性和debug的过程能够保持系统的稳定性。整个OO的核心就
在于封装。从单个类的封装,对外隐藏了数据和私有逻辑。到类库封装,使得一系列复
杂实现对外简化成几个类的使用。而OO设计模式则大量牵涉到low coupling。当OO都不
够用的时候,自然而然地扩展到了SOA, loose coupling。服务底下封装的数据库和服
务器集群,部署,scalability, availability,都不是客户端需要考虑的问题。从而
达到了一个大系统decomposition的目的。不同的团队可以部署维护自己的一系列服务
,可以以自己的开发周期来发布。一个大而不可维护的数据库被分成了一个个小的数据
库,从而减少数据库瓶颈的问题。一个几百人的大项目,可以变成一系列的小项目,从
而减少人员交流的瓶颈,保持agile的开发。
整个OO的进化,项目大型化,伴随着工具,项目管理的进化。远远把FP抛在后面,已经
不是FP能够处理的。一个24写得再简洁,都不能说明问题。

【在 n******t 的大作中提到】
: 我说实话,这么个简单的情况还真都差不多。
: 复杂了,你OO也好不到那里去。大部分的程序,要cover的是一个N维空间里面的一个很
: 稀疏的子集,OO的做法呢,是要去handel这个全集,尤其是喜欢搞pure OO的人,更是
: 喜欢干这件事。所以太偏重OO的做法,常常从开发效率和执行效率来说,都是不高的。
: 而常常比较好的办法,是灵活的采用过程设计和OO设计的混合。能够比较自然的利用
: OO概念的地方,用OO,比较自然的用procedure的地方用procedure.

1 (共1页)
进入Programming版参与讨论
相关主题
If you say that a is 5, you can't say it's something else lNodeJS厉害
java的那些framework从今天开始起,学C++!
C++ vs Java[bssd]周末乱侃
只会 java, c# 的小孩伤不起呀Oracle又告Google了
俺老10年前关于语言未来的论述rust现在很火
Java必然败在oracle身上Google confirms next Android version won’t implement Oracl (转载)
scala和F#是不是同一回事java是最好的语言
scala被Java 8当枪使了今天第一次在windows上倒腾vert.x
相关话题的讨论汇总
话题: java话题: fp话题: oo话题: oop话题: oracle