Redian新闻
>
functional programming for java
avatar
functional programming for java# Java - 爪哇娇娃
d*5
1
我们今天学习普通话,就是在学习各地的方言。学习普通话,课本中的方言不仅无
害,而且有益。
有媒体报道称,上海小学二年级的语文课文第24课《打碗碗花》(李天芳著散文)
,原文中的“外婆”全部被改成了“姥姥”。有网友晒出女儿7年前的课本,那时候还
是“外婆”,并未做改动。
很多人不解,教材中为什么要把“外婆”改成“姥姥”呢?有网友找出了去年上海
市教委针对这一问题的答复。上海教委认为,“姥姥”是普通话语词汇,而“外婆”属
于方言。
上海语文课本的这一改动,貌似微不足道,却涉及好几个重要的语言问题。
“姥姥”是普通话,“外婆”是方言?
查询《北京方言词典》(商务印书馆1985年出版),在“姥姥”的词条下面,有这
样几种解释:一是儿童称老年妇女,如刘姥姥;二是反驳词,相当于“哼”“胡说”;
三是用于坚决反对,有“任何人”的意思,如“姥姥来了我也不给”;四是指外婆。
之所以引述这段,只想说明两点:其一,外婆并不是方言,而是普通话,解释“姥
姥”的时候就用到了“外婆”。因为在词典中是不能用方言解释方言的,除非方言已经
成为了通用语。
其二,姥姥本来也是方言,或者说,既是方言,也是普通话。如果说因为“外婆”
是方言而不能进教材,那么,“姥姥”也恐有方言之嫌。
而且,如果从语义上分析,“外婆”可能比“姥姥”更能清晰地表达当事人的身份
。因为中国人的称呼不仅仅是称呼,更是一种身份的确认,用称呼来标示关系的远近亲
疏。比如,内亲和外戚是不同的,内是同姓,外是不同姓,内是父族,外是母族。“外
婆”的“外”,就是准确地表明了身份。
方言和普通话到底是什么关系?
事实上,方言和普通话的关系并非彼此对立,互相排斥。从历史上看,汉语言一直
是双轨的,一面是民族共同语,一面是方言。二者并行不悖。
《论语》记载,孔子当时和弟子们讲《诗》《书》用的就是雅言,执行重要典礼、
仪式的时候,也要用共同语——雅言。回到家中,则讲当地方言。
也就是说,共同语在公共场合使用,方言在家人之间,或者村里乡人的相聚场合使
用,这就是中华文明自古以来双轨并行的语言现象。
上古时代的汉民族共同语称为“雅言”,汉代称为“通语”,明清时代称为“官话
”,民国初年称为“国语”,新中国以后叫“普通话”,名异实同,本质都是民族共同
语。
而且共同语的形成,正是不同方言区的人们为了沟通的需要,不断相互模仿、迁就
、调整、融合而逐渐产生的。从这个角度说,没有方言,就没有共同语。
方言一旦消失,也会影响共同语的发展。因为共同语在演化过程中,在不断吸收方
言的成分以丰富自己。比如,现在普通话中的“尴尬”是从吴方言中吸收的,“煤炭”
是从客家方言吸收的等。近年来,“讨说法”“大忽悠”等方言被大众接受并进入普通
话,也是方言影响共同语的明证。
即使在推广普通话的语境下,方言和普通话也是不矛盾的。1958年,周恩来总理在
《当前文字改革的任务》的报告中就曾指出:“我们推广普通话,是为的消除方言之间
的隔阂,而不是禁止和消灭方言。……方言不能用行政命令来禁止,也不能用人为的办
法来消灭。”
该怎么对待课文中的“方言”?
其实,如果对语文课本稍有印象,很多人会发现,许多课文都有方言的痕迹。
比如,《孔乙己》里“主顾也没有好声气”中的“声气”,《背影》里“父亲还了
亏空”中的“亏空”,都有方言的影子。
而且,如上所述,普通话是各地方言共同融合的结果,从某种程度上说,我们今天
学习普通话,就是在学习各地的方言。学习普通话,课本中的方言不仅无害,而且有益。
更重要的是,语言文字的学习应该首先坚持尊重文本的原则。文本是由语言文字组
成的文学实体,相对于作者、世界构成一个独立、自足的系统。在这个系统中,可能富
含历史的、社会的、情感的等多方面的信息。拆解一个有价值的文本,如同进行一次文
本上的考古发掘,其价值和意义不言而喻。
因此,不尊重文本,对文本的任意删改,都是对原有信息系统的破坏,这不仅仅是
文字问题,更是态度问题。
尊重文本是学习语文的基础,也是选编教材的基本态度。这是语文学习的内在要求
,也是学好语文的前提条件。
avatar
x*d
2
Is it possible to borrow functional language characters/features to Java?
How much benefit can we get?
I know there is AKKA, anyone care to introduce how AKKA benefits Java?
If I make myself some immutable data structure, or declarative feature, do I
automatically get functional programming benefit, if not, why? Can anyone
explain? Is it due to compiling optimization process or what?
What FP benefit I can get in Java by using FP concept, what cannot be
achieved by simply mimicking FP?
Or do we have better way to get FP benefits without using FP concept?
I heard Java8 is going to introducing something similar to "->". What is the
reason behind this introduction?
avatar
p*2
3
Java这种如此崇拜OO的语言,真的很难提FP了。
avatar
x*d
4
Give it a try. Guys stuck with Java like me would appreciate.
As you said, we would all benefit by discussing. Let us try.

【在 p*****2 的大作中提到】
: Java这种如此崇拜OO的语言,真的很难提FP了。
avatar
x*d
5

python吸收了大量FP的feature
。FP的很多feature还是很有用的,不然Python吸收干嘛?
Is it possible to do the same thing in Java as python? Why not Java?

【在 p*****2 的大作中提到】
: Java这种如此崇拜OO的语言,真的很难提FP了。
avatar
p*2
6

python本来就是面向过程的语言。面向过程跟FP从理解函数的角度来说非常接近。

【在 x****d 的大作中提到】
:
: python吸收了大量FP的feature
: 。FP的很多feature还是很有用的,不然Python吸收干嘛?
: Is it possible to do the same thing in Java as python? Why not Java?

avatar
x*d
7
So we are hopeless doomed? I mean Java.

【在 p*****2 的大作中提到】
:
: python本来就是面向过程的语言。面向过程跟FP从理解函数的角度来说非常接近。

avatar
r*r
8
C++ boost library 就有一个 lambda calculus 的包. 对于特定应用,可能方便些。
在某个方面做点 OO 语言的补充,可能会有帮助

I
the

【在 x****d 的大作中提到】
: Is it possible to borrow functional language characters/features to Java?
: How much benefit can we get?
: I know there is AKKA, anyone care to introduce how AKKA benefits Java?
: If I make myself some immutable data structure, or declarative feature, do I
: automatically get functional programming benefit, if not, why? Can anyone
: explain? Is it due to compiling optimization process or what?
: What FP benefit I can get in Java by using FP concept, what cannot be
: achieved by simply mimicking FP?
: Or do we have better way to get FP benefits without using FP concept?
: I heard Java8 is going to introducing something similar to "->". What is the

avatar
x*d
9
hey grandpa, can you at least answer a few of my questions? Are they so
irrelevant you think it is not worth?

【在 p*****2 的大作中提到】
:
: python本来就是面向过程的语言。面向过程跟FP从理解函数的角度来说非常接近。

avatar
p*2
10

能不能先讲一下java8准备加入的FP功能呀?我们可以从此开始讨论

【在 x****d 的大作中提到】
: hey grandpa, can you at least answer a few of my questions? Are they so
: irrelevant you think it is not worth?

avatar
x*d
11
Exactly yah. How about java? Someone please give a quick summary about AKKA?
Is it similar to lambda? I skim it, actor remoting, what are they? why it
is FP features?

【在 r******r 的大作中提到】
: C++ boost library 就有一个 lambda calculus 的包. 对于特定应用,可能方便些。
: 在某个方面做点 OO 语言的补充,可能会有帮助
:
: I
: the

avatar
p*2
12

AKKA?
谈FP,没必要谈AKKA吧?

【在 x****d 的大作中提到】
: Exactly yah. How about java? Someone please give a quick summary about AKKA?
: Is it similar to lambda? I skim it, actor remoting, what are they? why it
: is FP features?

avatar
x*d
13
I just heard it, didn't do much research. Not much to tell ah. just the ->
thing I heard.

【在 p*****2 的大作中提到】
:
: AKKA?
: 谈FP,没必要谈AKKA吧?

avatar
x*d
14
why? Someone told me akka brings FP feature to Java, is it that true?

【在 p*****2 的大作中提到】
:
: AKKA?
: 谈FP,没必要谈AKKA吧?

avatar
r*r
15
如果你需要用,就关注 java 8 是不是真的要引入这个 feature; 如果没有,就看有没
有现成的包可利用。
这些 Java 里尚不存在的东西,能讨论出个啥?
Google 一下,看有没有现成可以利用的,提供类似功能的。C++ 都有,java 的开源资
源应该更多

【在 x****d 的大作中提到】
: why? Someone told me akka brings FP feature to Java, is it that true?
avatar
t*a
16
我觉得就引进一个actor吧,那东西还是OO的,没看出来哪FP啊

【在 x****d 的大作中提到】
: why? Someone told me akka brings FP feature to Java, is it that true?
avatar
t*a
17
哈哈哈,说的真实在
不过fp这个东西,还真不是去找个类库就能让java支持的。。。。。

【在 r******r 的大作中提到】
: 如果你需要用,就关注 java 8 是不是真的要引入这个 feature; 如果没有,就看有没
: 有现成的包可利用。
: 这些 Java 里尚不存在的东西,能讨论出个啥?
: Google 一下,看有没有现成可以利用的,提供类似功能的。C++ 都有,java 的开源资
: 源应该更多

avatar
x*d
18

The Actor model isn’t really a functional approach to concurrency, but it
fits the general goal of managing state mutation in principled ways.

【在 t***a 的大作中提到】
: 我觉得就引进一个actor吧,那东西还是OO的,没看出来哪FP啊
avatar
r*r
19
不过讨论还是有益的,可增长见识

【在 t***a 的大作中提到】
: 哈哈哈,说的真实在
: 不过fp这个东西,还真不是去找个类库就能让java支持的。。。。。

avatar
x*d
20
How about design patterns, it said FP makes design patterns obsolete.
Because DP is just coding idioms to patch flawed oo language's missing
features.

【在 p*****2 的大作中提到】
:
: AKKA?
: 谈FP,没必要谈AKKA吧?

avatar
x*d
21
I remember another thing, grandpa2, you learn play framework, have you try
Anorm? They claim it uses FP approach to persistence. Can you please tell us
more about it?

【在 p*****2 的大作中提到】
:
: AKKA?
: 谈FP,没必要谈AKKA吧?

avatar
x*d
22
co

【在 r******r 的大作中提到】
: 不过讨论还是有益的,可增长见识
avatar
p*2
23

us
Anorm不是ORM,我用的是slick。

【在 x****d 的大作中提到】
: I remember another thing, grandpa2, you learn play framework, have you try
: Anorm? They claim it uses FP approach to persistence. Can you please tell us
: more about it?

avatar
p*2
24
在这里讨论不如你去学学scala。主要是你如果没学过,真的不好讨论。
From a language perspective, perhaps the most important change is Project
Lambda, which includes support for lambda expressions, virtual extension
methods and better support for multicore platforms in the form of parallel
collections.
Most of these features are already available in many other JVM languages,
including Scala. Moreover, many of the approaches taken in Java 8 are
surprisingly similar to those used in Scala. As a consequence, playing with
Scala is a good way of getting a feeling for what programming with Java 8
will be like.
avatar
x*d
25
zkss? how about functional patterns, have you touch those?

【在 p*****2 的大作中提到】
: 在这里讨论不如你去学学scala。主要是你如果没学过,真的不好讨论。
: From a language perspective, perhaps the most important change is Project
: Lambda, which includes support for lambda expressions, virtual extension
: methods and better support for multicore platforms in the form of parallel
: collections.
: Most of these features are already available in many other JVM languages,
: including Scala. Moreover, many of the approaches taken in Java 8 are
: surprisingly similar to those used in Scala. As a consequence, playing with
: Scala is a good way of getting a feeling for what programming with Java 8
: will be like.

avatar
p*2
26

Java如果承认函数的存在,很多pattern就没有存在的必要了,比如strategy。

【在 x****d 的大作中提到】
: How about design patterns, it said FP makes design patterns obsolete.
: Because DP is just coding idioms to patch flawed oo language's missing
: features.

avatar
p*2
27

我没用过呀。

【在 x****d 的大作中提到】
: zkss? how about functional patterns, have you touch those?
avatar
x*d
28
It is said that Akka will become a widely used tool for JVM-based
applications in the next several years, much as the Spring Framework became
ubiquitous in the past decade.
So is it really a big deal?

【在 t***a 的大作中提到】
: 我觉得就引进一个actor吧,那东西还是OO的,没看出来哪FP啊
avatar
p*2
29

became
really

【在 x****d 的大作中提到】
: It is said that Akka will become a widely used tool for JVM-based
: applications in the next several years, much as the Spring Framework became
: ubiquitous in the past decade.
: So is it really a big deal?

avatar
x*d
30
I guess this is what I heard.
Project Lambda: JSR 335 (Lambda Expressions for the Java™ Programming
Language), http://openjdk.java.net/projects/lambda/
We will see something like these:
(int x, int y) -> x + y
() -> 42
(String s) -> { System.out.println(s); }

with

【在 p*****2 的大作中提到】
: 在这里讨论不如你去学学scala。主要是你如果没学过,真的不好讨论。
: From a language perspective, perhaps the most important change is Project
: Lambda, which includes support for lambda expressions, virtual extension
: methods and better support for multicore platforms in the form of parallel
: collections.
: Most of these features are already available in many other JVM languages,
: including Scala. Moreover, many of the approaches taken in Java 8 are
: surprisingly similar to those used in Scala. As a consequence, playing with
: Scala is a good way of getting a feeling for what programming with Java 8
: will be like.

avatar
x*d
31
Maybe I should, but too lazy, I should cut playing tuolaji, I suck anyway.

【在 p*****2 的大作中提到】
: 在这里讨论不如你去学学scala。主要是你如果没学过,真的不好讨论。
: From a language perspective, perhaps the most important change is Project
: Lambda, which includes support for lambda expressions, virtual extension
: methods and better support for multicore platforms in the form of parallel
: collections.
: Most of these features are already available in many other JVM languages,
: including Scala. Moreover, many of the approaches taken in Java 8 are
: surprisingly similar to those used in Scala. As a consequence, playing with
: Scala is a good way of getting a feeling for what programming with Java 8
: will be like.

avatar
p*2
32

Programming
这个就是匿名函数。很多语言都支持。
支持这个就意味着Java承认函数的存在了。这个可是一个大变动,破坏了你们OO的思维
了。
有了这个以后就不需要strategy pattern了。

【在 x****d 的大作中提到】
: I guess this is what I heard.
: Project Lambda: JSR 335 (Lambda Expressions for the Java™ Programming
: Language), http://openjdk.java.net/projects/lambda/
: We will see something like these:
: (int x, int y) -> x + y
: () -> 42
: (String s) -> { System.out.println(s); }
:
: with

avatar
x*d
33
exactly yah, that is why I open this thread. Let us talk about those FP
features like anonymous function in Java, what else? I started, let us go on
...

【在 p*****2 的大作中提到】
:
: Programming
: 这个就是匿名函数。很多语言都支持。
: 支持这个就意味着Java承认函数的存在了。这个可是一个大变动,破坏了你们OO的思维
: 了。
: 有了这个以后就不需要strategy pattern了。

avatar
p*2
34

on
你给的这里例子只是anonymous function呀。还有其他例子吗?我刚才看了一眼说是
java8的功能scala里面都有,所以我也懒得去看具体的了。你要是能给例子,我们可以
讨论。

【在 x****d 的大作中提到】
: exactly yah, that is why I open this thread. Let us talk about those FP
: features like anonymous function in Java, what else? I started, let us go on
: ...

avatar
g*g
35
Anonymous inner class has existed for a long time to overcome the shortage
of closure. Lambda expression is more flexible, but hardly a big change.

【在 p*****2 的大作中提到】
:
: on
: 你给的这里例子只是anonymous function呀。还有其他例子吗?我刚才看了一眼说是
: java8的功能scala里面都有,所以我也懒得去看具体的了。你要是能给例子,我们可以
: 讨论。

avatar
p*2
36

是这么回事。但是最大的变动是OO理念的破坏。anonymous class毕竟还是object,
anonymous function就是承认了非object的东西了。这个改变是原则性的。

【在 g*****g 的大作中提到】
: Anonymous inner class has existed for a long time to overcome the shortage
: of closure. Lambda expression is more flexible, but hardly a big change.

avatar
g*g
37
我不觉得这有啥大不了的,要说OO,primitive就不是OO的东西,Annotation也不是OO
的东西。
Java的主要设计思想是简单实用,而不是纯OO。

【在 p*****2 的大作中提到】
:
: 是这么回事。但是最大的变动是OO理念的破坏。anonymous class毕竟还是object,
: anonymous function就是承认了非object的东西了。这个改变是原则性的。

avatar
p*2
38

OO
这个我可真不认可。你看到时候支持了匿名函数,Java的编程风格和design pattern有
可能引起一个比较大的变革。
Java是简单,但是真不实用。所谓的实用都是那些库来做的,而不是Java本身。

【在 g*****g 的大作中提到】
: 我不觉得这有啥大不了的,要说OO,primitive就不是OO的东西,Annotation也不是OO
: 的东西。
: Java的主要设计思想是简单实用,而不是纯OO。

avatar
g*g
39
OO的核心目的,本来就是重用。简单的设计可以带来更多的开发者,容易维护可重复使
用的模块。这更符合整个工业化的进程。砌砖的工人并不懂很多,不妨碍他们建起大楼。
用语言的本身feature来比较是荒谬的。java的简单,是java今天有其他语言无法比拟
的类库的主要原因之一。
我不认为Java的编程风格会起很大的变化。Lambda会替代匿名内部类,但仅此而已。
我个人并不认为FP的大量使用会使得编程更简单更可维护。Scala这几年进展不错,但
连前10的语言都没能排进去。事实上,前10的语言没有一种是FP为主的语言。

【在 p*****2 的大作中提到】
:
: OO
: 这个我可真不认可。你看到时候支持了匿名函数,Java的编程风格和design pattern有
: 可能引起一个比较大的变革。
: Java是简单,但是真不实用。所谓的实用都是那些库来做的,而不是Java本身。

avatar
d*i
40
顶好虫,我喜欢Java就是因为Java简单清晰明了实用,有很多库,要是非要把Java改造
的面目全非,去邯郸学步,弄得人晕头转向搞不清,那我为什么不去用那些其他语言已
有的功能呢?到头来都是瞎折腾,对人类社会发展没有任何贡献,除了浪费消耗了很多
重造轮子的时间和能量。

楼。

【在 g*****g 的大作中提到】
: OO的核心目的,本来就是重用。简单的设计可以带来更多的开发者,容易维护可重复使
: 用的模块。这更符合整个工业化的进程。砌砖的工人并不懂很多,不妨碍他们建起大楼。
: 用语言的本身feature来比较是荒谬的。java的简单,是java今天有其他语言无法比拟
: 的类库的主要原因之一。
: 我不认为Java的编程风格会起很大的变化。Lambda会替代匿名内部类,但仅此而已。
: 我个人并不认为FP的大量使用会使得编程更简单更可维护。Scala这几年进展不错,但
: 连前10的语言都没能排进去。事实上,前10的语言没有一种是FP为主的语言。

avatar
d*i
41
所谓的FP, 除了满足一部分人的好奇心以外,并没有改善我们生活的世界,看看这些传
统的语言对我们的生活和社会作出了多少巨大的贡献,FP至今从底层的操作系统到上层
的应用软件见不到一丁点影子,除了满足一部分人装逼的心理以外,对社会的发展没有
任何益处甚至还有害处-加大了软件维护开发的成本和复杂度。

【在 d****i 的大作中提到】
: 顶好虫,我喜欢Java就是因为Java简单清晰明了实用,有很多库,要是非要把Java改造
: 的面目全非,去邯郸学步,弄得人晕头转向搞不清,那我为什么不去用那些其他语言已
: 有的功能呢?到头来都是瞎折腾,对人类社会发展没有任何贡献,除了浪费消耗了很多
: 重造轮子的时间和能量。
:
: 楼。

avatar
x*d
42
Can we not talk about language comparison at all? I dont want nobody cause
any fight here.
I agree with you, but will java world benefit some by introducing FP
features? And how, that is the key things I want to discuss.
FP, it is buzz word, let us harvest some benefit from that, can we? Let us
try.

楼。

【在 g*****g 的大作中提到】
: OO的核心目的,本来就是重用。简单的设计可以带来更多的开发者,容易维护可重复使
: 用的模块。这更符合整个工业化的进程。砌砖的工人并不懂很多,不妨碍他们建起大楼。
: 用语言的本身feature来比较是荒谬的。java的简单,是java今天有其他语言无法比拟
: 的类库的主要原因之一。
: 我不认为Java的编程风格会起很大的变化。Lambda会替代匿名内部类,但仅此而已。
: 我个人并不认为FP的大量使用会使得编程更简单更可维护。Scala这几年进展不错,但
: 连前10的语言都没能排进去。事实上,前10的语言没有一种是FP为主的语言。

avatar
x*d
43
Please dont do language comparison, it will cause another fight.
I guess I agree with you most, but we all have to zhuangB, so let us ZhuangB
a little bit. I guess java developers could benefit from learning FP.

【在 d****i 的大作中提到】
: 所谓的FP, 除了满足一部分人的好奇心以外,并没有改善我们生活的世界,看看这些传
: 统的语言对我们的生活和社会作出了多少巨大的贡献,FP至今从底层的操作系统到上层
: 的应用软件见不到一丁点影子,除了满足一部分人装逼的心理以外,对社会的发展没有
: 任何益处甚至还有害处-加大了软件维护开发的成本和复杂度。

avatar
g*g
44
For Java developers, mastering mainstream libraries >> Scala >> classic FP
languages, just my 2 cents.
Everything you learn has a benefit, it's about making the best out of your
time.
avatar
x*d
45
I got it, it is your style. Most of the time, I am a lowly coder, too. But
sometimes I do wind flower snow moon. Am I doing evil talking FP for java?
Let us be constructive.
Actually I am too lazy to even learn scala, but I like to learn talking
about buzz word stuff, i think my approach fits myself better.
so, my approach, core java>> shit talking>> buzz word talking>>get drunk
with PM >>whatever use my dick rather than my brain ....

【在 g*****g 的大作中提到】
: For Java developers, mastering mainstream libraries >> Scala >> classic FP
: languages, just my 2 cents.
: Everything you learn has a benefit, it's about making the best out of your
: time.

avatar
t*a
46
就是个message receiver, 然后让它在里面自己local鼓捣

【在 x****d 的大作中提到】
: I got it, it is your style. Most of the time, I am a lowly coder, too. But
: sometimes I do wind flower snow moon. Am I doing evil talking FP for java?
: Let us be constructive.
: Actually I am too lazy to even learn scala, but I like to learn talking
: about buzz word stuff, i think my approach fits myself better.
: so, my approach, core java>> shit talking>> buzz word talking>>get drunk
: with PM >>whatever use my dick rather than my brain ....

avatar
t*a
47
这句话我倒是一直看到。。。。你信么?
java的确需要actor, 但是我不觉得有那么多地方需要多线程啊。。。就算多线程,
actor也不是所有问题的救星啊

became

【在 x****d 的大作中提到】
: It is said that Akka will become a widely used tool for JVM-based
: applications in the next several years, much as the Spring Framework became
: ubiquitous in the past decade.
: So is it really a big deal?

avatar
t*a
48
这个我挺喜闻乐见的。。。。等了好多年了

Programming

【在 x****d 的大作中提到】
: I guess this is what I heard.
: Project Lambda: JSR 335 (Lambda Expressions for the Java™ Programming
: Language), http://openjdk.java.net/projects/lambda/
: We will see something like these:
: (int x, int y) -> x + y
: () -> 42
: (String s) -> { System.out.println(s); }
:
: with

avatar
g*g
49
I don't talk bullshit. I actually did 2 years programming on Scala before I
make these claims. You can also find posts people arguing the future of
Haskell and FP overall with me 10 years ago. I don't see my position changed
, if at all.

【在 x****d 的大作中提到】
: I got it, it is your style. Most of the time, I am a lowly coder, too. But
: sometimes I do wind flower snow moon. Am I doing evil talking FP for java?
: Let us be constructive.
: Actually I am too lazy to even learn scala, but I like to learn talking
: about buzz word stuff, i think my approach fits myself better.
: so, my approach, core java>> shit talking>> buzz word talking>>get drunk
: with PM >>whatever use my dick rather than my brain ....

avatar
p*2
50

楼。
你这么说就有意思了。说FP没用,怎么大量的非FP语言都引入了FP的feature了呢?这
个现象怎么解释?

【在 g*****g 的大作中提到】
: OO的核心目的,本来就是重用。简单的设计可以带来更多的开发者,容易维护可重复使
: 用的模块。这更符合整个工业化的进程。砌砖的工人并不懂很多,不妨碍他们建起大楼。
: 用语言的本身feature来比较是荒谬的。java的简单,是java今天有其他语言无法比拟
: 的类库的主要原因之一。
: 我不认为Java的编程风格会起很大的变化。Lambda会替代匿名内部类,但仅此而已。
: 我个人并不认为FP的大量使用会使得编程更简单更可维护。Scala这几年进展不错,但
: 连前10的语言都没能排进去。事实上,前10的语言没有一种是FP为主的语言。

avatar
p*2
51

那你解释一下为什么Java8要引入匿名函数?

【在 d****i 的大作中提到】
: 顶好虫,我喜欢Java就是因为Java简单清晰明了实用,有很多库,要是非要把Java改造
: 的面目全非,去邯郸学步,弄得人晕头转向搞不清,那我为什么不去用那些其他语言已
: 有的功能呢?到头来都是瞎折腾,对人类社会发展没有任何贡献,除了浪费消耗了很多
: 重造轮子的时间和能量。
:
: 楼。

avatar
t*a
52
嗯,scala这语言的优势有一大部分是可以使用java的lib, 如果对java的这些常用类库
都不熟,这也发挥不出来scala的强大之处
反过来,要说fp对自己java设计思路和编程风格的影响,那也得建立在对java的充分了
解之上,不能java还没熟透呢,就想fp了

【在 g*****g 的大作中提到】
: For Java developers, mastering mainstream libraries >> Scala >> classic FP
: languages, just my 2 cents.
: Everything you learn has a benefit, it's about making the best out of your
: time.

avatar
x*d
53
i know, I had no intention to accuse you. sigh! I said I like bullshit, don'
t like learning, why you think I was accusing you?

I
changed

【在 g*****g 的大作中提到】
: I don't talk bullshit. I actually did 2 years programming on Scala before I
: make these claims. You can also find posts people arguing the future of
: Haskell and FP overall with me 10 years ago. I don't see my position changed
: , if at all.

avatar
g*g
54
这就跟个语法糖似的,举个容易理解的例子,就跟java引入foreach loop是一样的。
这不是什么了不得的feature。FP在Java存在之前就成熟了,要是很重要不需要等20年
吧。
匿名函数在Java 7 draft里就有,但被推到了Java 8。从另一个侧面说明整个
community根本不着急。Java 8现在还没出来,等到成为主流又是5年后的事情了。

【在 p*****2 的大作中提到】
:
: 那你解释一下为什么Java8要引入匿名函数?

avatar
p*2
55

这个确实是。所以Java developer真的没必要花时间讨论FP。

【在 g*****g 的大作中提到】
: For Java developers, mastering mainstream libraries >> Scala >> classic FP
: languages, just my 2 cents.
: Everything you learn has a benefit, it's about making the best out of your
: time.

avatar
p*2
56

其实OO跟FP两种很不同的思维模式。碰撞比较大。

【在 x****d 的大作中提到】
: I got it, it is your style. Most of the time, I am a lowly coder, too. But
: sometimes I do wind flower snow moon. Am I doing evil talking FP for java?
: Let us be constructive.
: Actually I am too lazy to even learn scala, but I like to learn talking
: about buzz word stuff, i think my approach fits myself better.
: so, my approach, core java>> shit talking>> buzz word talking>>get drunk
: with PM >>whatever use my dick rather than my brain ....

avatar
p*2
57

不止多线程。还是有distributed

【在 t***a 的大作中提到】
: 这句话我倒是一直看到。。。。你信么?
: java的确需要actor, 但是我不觉得有那么多地方需要多线程啊。。。就算多线程,
: actor也不是所有问题的救星啊
:
: became

avatar
l*s
58
I like your no-nonsense attitude very much!

I
changed

【在 g*****g 的大作中提到】
: I don't talk bullshit. I actually did 2 years programming on Scala before I
: make these claims. You can also find posts people arguing the future of
: Haskell and FP overall with me 10 years ago. I don't see my position changed
: , if at all.

avatar
x*d
59
what make you feel you can speak for all java developers?

【在 p*****2 的大作中提到】
:
: 不止多线程。还是有distributed

avatar
p*2
60

你要说语法糖的话,其实很大程度上不错。

【在 g*****g 的大作中提到】
: 这就跟个语法糖似的,举个容易理解的例子,就跟java引入foreach loop是一样的。
: 这不是什么了不得的feature。FP在Java存在之前就成熟了,要是很重要不需要等20年
: 吧。
: 匿名函数在Java 7 draft里就有,但被推到了Java 8。从另一个侧面说明整个
: community根本不着急。Java 8现在还没出来,等到成为主流又是5年后的事情了。

avatar
p*2
61

goodbug呀。他上边不是说了吗,FP对Java程序员来说不重要呀。

【在 x****d 的大作中提到】
: what make you feel you can speak for all java developers?
avatar
x*d
62
He is wrong, I told him, his approach sucks.

【在 p*****2 的大作中提到】
:
: goodbug呀。他上边不是说了吗,FP对Java程序员来说不重要呀。

avatar
t*a
63
就是个load balance的actor pool。。。。
好是挺好的,但能有多少人用。。。

【在 p*****2 的大作中提到】
:
: goodbug呀。他上边不是说了吗,FP对Java程序员来说不重要呀。

avatar
h*i
64
I programed almost exclusively in Java (except some perl and Tcl/Tk) since
1997. For me, writing Java code was like writing English...
Then I got bored and learned Clojure in 2012. Now I cannot stand Java. It
makes me puke.
Yes, FP is that dangerous. It's like a drug... Be careful what you wish for.
..

I
the

【在 x****d 的大作中提到】
: Is it possible to borrow functional language characters/features to Java?
: How much benefit can we get?
: I know there is AKKA, anyone care to introduce how AKKA benefits Java?
: If I make myself some immutable data structure, or declarative feature, do I
: automatically get functional programming benefit, if not, why? Can anyone
: explain? Is it due to compiling optimization process or what?
: What FP benefit I can get in Java by using FP concept, what cannot be
: achieved by simply mimicking FP?
: Or do we have better way to get FP benefits without using FP concept?
: I heard Java8 is going to introducing something similar to "->". What is the

avatar
p*2
65

for.
这个说的太对了。做Java的不觉得,但是用过FP的来做Java一般都受不了。呵呵。

【在 h*i 的大作中提到】
: I programed almost exclusively in Java (except some perl and Tcl/Tk) since
: 1997. For me, writing Java code was like writing English...
: Then I got bored and learned Clojure in 2012. Now I cannot stand Java. It
: makes me puke.
: Yes, FP is that dangerous. It's like a drug... Be careful what you wish for.
: ..
:
: I
: the

avatar
z*e
66
well
作为一个有着统计文凭并且着实搞过一段时间r programming的人来说
我觉得fp sucks
当且仅当我对数学比较渴望而且又切实找不到合适的lib的时候
我才会去倒腾这种狗屁
实话
而现实生活中,数学并不是一切,工程学大多数时候并不需要特别复杂的数学
就算要,apache common math可以解决绝大多数问题
你不需要去倒腾特别复杂的公式,实际上这个lib已经更新到我完全可以接受的地步
可以接受到什么地步呢?精算的大多数模型我用这个lib来做绰绰有余
当然有人认为你在工作中要用的数学会比精算数学更难的话
那当我没有说
有些矿工也许有这个需要

【在 p*****2 的大作中提到】
:
: for.
: 这个说的太对了。做Java的不觉得,但是用过FP的来做Java一般都受不了。呵呵。

avatar
p*2
67

所以混合型的语言最灵活,比如Ruby,Scala这些。

【在 z****e 的大作中提到】
: well
: 作为一个有着统计文凭并且着实搞过一段时间r programming的人来说
: 我觉得fp sucks
: 当且仅当我对数学比较渴望而且又切实找不到合适的lib的时候
: 我才会去倒腾这种狗屁
: 实话
: 而现实生活中,数学并不是一切,工程学大多数时候并不需要特别复杂的数学
: 就算要,apache common math可以解决绝大多数问题
: 你不需要去倒腾特别复杂的公式,实际上这个lib已经更新到我完全可以接受的地步
: 可以接受到什么地步呢?精算的大多数模型我用这个lib来做绰绰有余

avatar
g*g
68
If I don't remember it wrong, you are now a professor, not really a
programmer.
Industry works very differently. Not enough smart minds to answer the
question on stackoverflow is good enough to render a language impractical.
If you lead the project, you want to get the job done, you don't care if you
are seen as a genius or dumb ass.

for.

【在 h*i 的大作中提到】
: I programed almost exclusively in Java (except some perl and Tcl/Tk) since
: 1997. For me, writing Java code was like writing English...
: Then I got bored and learned Clojure in 2012. Now I cannot stand Java. It
: makes me puke.
: Yes, FP is that dangerous. It's like a drug... Be careful what you wish for.
: ..
:
: I
: the

avatar
x*d
69
dont u start language comparison!!!!!!!!!!!

for.

【在 h*i 的大作中提到】
: I programed almost exclusively in Java (except some perl and Tcl/Tk) since
: 1997. For me, writing Java code was like writing English...
: Then I got bored and learned Clojure in 2012. Now I cannot stand Java. It
: makes me puke.
: Yes, FP is that dangerous. It's like a drug... Be careful what you wish for.
: ..
:
: I
: the

avatar
x*d
70
please dont compare language, please. talk about java, please.

【在 z****e 的大作中提到】
: well
: 作为一个有着统计文凭并且着实搞过一段时间r programming的人来说
: 我觉得fp sucks
: 当且仅当我对数学比较渴望而且又切实找不到合适的lib的时候
: 我才会去倒腾这种狗屁
: 实话
: 而现实生活中,数学并不是一切,工程学大多数时候并不需要特别复杂的数学
: 就算要,apache common math可以解决绝大多数问题
: 你不需要去倒腾特别复杂的公式,实际上这个lib已经更新到我完全可以接受的地步
: 可以接受到什么地步呢?精算的大多数模型我用这个lib来做绰绰有余

avatar
x*d
71
I know everybody have their point, please dont make this thread another
fighting ground for language comparing.

you

【在 g*****g 的大作中提到】
: If I don't remember it wrong, you are now a professor, not really a
: programmer.
: Industry works very differently. Not enough smart minds to answer the
: question on stackoverflow is good enough to render a language impractical.
: If you lead the project, you want to get the job done, you don't care if you
: are seen as a genius or dumb ass.
:
: for.

avatar
p*2
72

感觉这个话题就是容易打仗。我个人是支持混合型语言的,这样可以非常灵活。但是感
觉programming板上分化很厉害呀。

【在 x****d 的大作中提到】
: I know everybody have their point, please dont make this thread another
: fighting ground for language comparing.
:
: you

avatar
c*m
73
That only means Java is not suitable for what you do. Using pure OO for FP
can be a PITA, but using FP to replace OO blindly easily leads to disaster.

for.

【在 h*i 的大作中提到】
: I programed almost exclusively in Java (except some perl and Tcl/Tk) since
: 1997. For me, writing Java code was like writing English...
: Then I got bored and learned Clojure in 2012. Now I cannot stand Java. It
: makes me puke.
: Yes, FP is that dangerous. It's like a drug... Be careful what you wish for.
: ..
:
: I
: the

avatar
Y*G
74
anonymous class that access varable in closure look like FP

【在 x****d 的大作中提到】
: I just heard it, didn't do much research. Not much to tell ah. just the ->
: thing I heard.

avatar
z*3
75
所以说很多人眼界就停留在写ui上
这种功能说实话,在server side根本就不会用到
但是在ui上到处可见
这是高耦合的模块,无论从可读性还是结构性上说,都应该予以剥离
除非其中一个class的代码量相当稀少,比如仅仅做了一个singleton之类的封装外
但是这种情况也少之又少,如果是这样的话,干脆把两个class写成一个算了
外面那层wrapper完全是毫无必要
我突然明白,为什么当年我第一次接手别人写的swing代码的时候
会如此地痛恨前任那个人了,因为结构之美被破坏了之后
你去看那些理论性很强的东西,就感觉,这个家伙在装逼
可以做得简单的东西,它故意做得很复杂,然后以凸显它的牛逼之处
但实际上它这样造成了其它人的工作量的上升
设想一下,我要复用一个类,都需要深入到其它类内部去找会是怎样一种情形

【在 Y**G 的大作中提到】
: anonymous class that access varable in closure look like FP
avatar
t*a
76
java经常随便一个项目,就几百个程序员签名。。。。林子大了什么鸟没有?
server side也有狂写匿名类的,没啥,装逼不犯法。。。。
以前我们公司一个架构师设计用匿名类控制web service transaction, 那哥们好像以
前还是jboss的principle dev
内部类,匿名类这些东西搞得一个class能有好几千行代码。。。。这种事多着呢,忍
了吧

【在 z*******3 的大作中提到】
: 所以说很多人眼界就停留在写ui上
: 这种功能说实话,在server side根本就不会用到
: 但是在ui上到处可见
: 这是高耦合的模块,无论从可读性还是结构性上说,都应该予以剥离
: 除非其中一个class的代码量相当稀少,比如仅仅做了一个singleton之类的封装外
: 但是这种情况也少之又少,如果是这样的话,干脆把两个class写成一个算了
: 外面那层wrapper完全是毫无必要
: 我突然明白,为什么当年我第一次接手别人写的swing代码的时候
: 会如此地痛恨前任那个人了,因为结构之美被破坏了之后
: 你去看那些理论性很强的东西,就感觉,这个家伙在装逼

avatar
z*e
77
所以jboss7代码整个重写了,看来是到6了之后写不下去了

【在 t***a 的大作中提到】
: java经常随便一个项目,就几百个程序员签名。。。。林子大了什么鸟没有?
: server side也有狂写匿名类的,没啥,装逼不犯法。。。。
: 以前我们公司一个架构师设计用匿名类控制web service transaction, 那哥们好像以
: 前还是jboss的principle dev
: 内部类,匿名类这些东西搞得一个class能有好几千行代码。。。。这种事多着呢,忍
: 了吧

avatar
Y*G
78
这种做法在backend 还是很流行的 ── 比如node.js

【在 z*******3 的大作中提到】
: 所以说很多人眼界就停留在写ui上
: 这种功能说实话,在server side根本就不会用到
: 但是在ui上到处可见
: 这是高耦合的模块,无论从可读性还是结构性上说,都应该予以剥离
: 除非其中一个class的代码量相当稀少,比如仅仅做了一个singleton之类的封装外
: 但是这种情况也少之又少,如果是这样的话,干脆把两个class写成一个算了
: 外面那层wrapper完全是毫无必要
: 我突然明白,为什么当年我第一次接手别人写的swing代码的时候
: 会如此地痛恨前任那个人了,因为结构之美被破坏了之后
: 你去看那些理论性很强的东西,就感觉,这个家伙在装逼

avatar
g*g
79
在我看来匿名类,内部类都没什么问题,一个类几千行是问题。

【在 t***a 的大作中提到】
: java经常随便一个项目,就几百个程序员签名。。。。林子大了什么鸟没有?
: server side也有狂写匿名类的,没啥,装逼不犯法。。。。
: 以前我们公司一个架构师设计用匿名类控制web service transaction, 那哥们好像以
: 前还是jboss的principle dev
: 内部类,匿名类这些东西搞得一个class能有好几千行代码。。。。这种事多着呢,忍
: 了吧

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。