avatar
FP的死穴还是性能# Programming - 葵花宝典
k*e
1
【 以下文字转载自 JobHunting 讨论区 】
发信人: keupie (For the Lich King!), 信区: JobHunting
标 题: On-site的时候要求presentation怎么弄?
发信站: BBS 未名空间站 (Wed Apr 15 15:56:27 2015, 美东)
不能讲现在工作中的吧?讲以前的和职位又不是很相关
avatar
B*g
2
rt
avatar
n*7
3
感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability,
重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
不是性能最优的。
以前很喜欢用C#的LINQ,觉得简洁优美。后来发现不少地方跟for loop还是差距较大,
现在基本只用select(map)了,不然code review还得打回重写。
虽然说developer的时间比CPU时间宝贵,但是你做个东西比别人慢几倍,最后没人用,
项目死掉,更是浪费。
FP还是适合个人/小团队搞些web开发,或者data crunching
avatar
w*g
4
应该不是性能。性能能低过python?
下一波FP热潮指日可待。AI优化进入编译器领域后FP又会被炒起来的。到时候我肯定会
跟风来这里吹。

:感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability
,重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
:不是性能最优的。
avatar
n*p
5
非主流的原因主要是程序员被OOP洗脑太多年。immutability,对Clojure根本不是个事
,因为没有overhead。正相反,clojure的immutability避免了重新创建大的objects,
例如
http://mishadoff.com/blog/clojure-design-patterns/#episode-8-prototype

【在 n******7 的大作中提到】
: 感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability,
: 重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
: 不是性能最优的。
: 以前很喜欢用C#的LINQ,觉得简洁优美。后来发现不少地方跟for loop还是差距较大,
: 现在基本只用select(map)了,不然code review还得打回重写。
: 虽然说developer的时间比CPU时间宝贵,但是你做个东西比别人慢几倍,最后没人用,
: 项目死掉,更是浪费。
: FP还是适合个人/小团队搞些web开发,或者data crunching

avatar
L*8
6
OOP是fake concept

【在 n***p 的大作中提到】
: 非主流的原因主要是程序员被OOP洗脑太多年。immutability,对Clojure根本不是个事
: ,因为没有overhead。正相反,clojure的immutability避免了重新创建大的objects,
: 例如
: http://mishadoff.com/blog/clojure-design-patterns/#episode-8-prototype

avatar
n*7
7
python的卖点是易学,跟FP不在一个生态位
python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?
另外用python主要是用库,很多是C/C++写的
现在主流的FP,比如scala/clojure/F#都跑在虚拟机上,还不见得比python调库快
这些FP语言跟java/C#/C/Cpp比还是性能差些
如果编译器经过AI优化后FP性能没有差距是最好,等着大牛来吹风

immutability
时候

【在 w***g 的大作中提到】
: 应该不是性能。性能能低过python?
: 下一波FP热潮指日可待。AI优化进入编译器领域后FP又会被炒起来的。到时候我肯定会
: 跟风来这里吹。
:
: :感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability
: ,重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
: :不是性能最优的。

avatar
g*t
8
好几位好像忽略了编译型FP
F#,Haskell,Ocaml很快
以下是前面一个链接有人说的:
Our modern commercial packages for numerical computing are written in F# and
it beats Fortran quite happily. FFTW provides the FFT routines in MATLAB
and is written in OCaml and beats everything else quite happily. – Jon
Harrop


: python的卖点是易学,跟FP不在一个生态位

: python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?

: 另外用python主要是用库,很多是C/C 写的

: 现在主流的FP,比如scala/clojure/F#都跑在虚拟机上,还不见得比python调
库快

: 这些FP语言跟java/C#/C/Cpp比还是性能差些

: 如果编译器经过AI优化后FP性能没有差距是最好,等着大牛来吹风

: immutability

: 时候



【在 n******7 的大作中提到】
: python的卖点是易学,跟FP不在一个生态位
: python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?
: 另外用python主要是用库,很多是C/C++写的
: 现在主流的FP,比如scala/clojure/F#都跑在虚拟机上,还不见得比python调库快
: 这些FP语言跟java/C#/C/Cpp比还是性能差些
: 如果编译器经过AI优化后FP性能没有差距是最好,等着大牛来吹风
:
: immutability
: 时候

avatar
w*g
9
我说的ai优化不是性能,而是能极大地简化编程那种。

:python的卖点是易学,跟FP不在一个生态位
:python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?
avatar
N*n
10

所以说压倒一切是用户体验,其余都是浮云。什么cross platform, immutable
之类都是程序员自己的小算盘。最终产品如果让用户不爽都是扯。

【在 n******7 的大作中提到】
: python的卖点是易学,跟FP不在一个生态位
: python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?
: 另外用python主要是用库,很多是C/C++写的
: 现在主流的FP,比如scala/clojure/F#都跑在虚拟机上,还不见得比python调库快
: 这些FP语言跟java/C#/C/Cpp比还是性能差些
: 如果编译器经过AI优化后FP性能没有差距是最好,等着大牛来吹风
:
: immutability
: 时候

avatar
N*n
11

优化本身就是一种AI,在现有的硬件基础上已经做到头了。以后量子计算普及了
可能有新的优化机会。

【在 w***g 的大作中提到】
: 应该不是性能。性能能低过python?
: 下一波FP热潮指日可待。AI优化进入编译器领域后FP又会被炒起来的。到时候我肯定会
: 跟风来这里吹。
:
: :感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability
: ,重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
: :不是性能最优的。

avatar
n*7
12
你是说very high level programming?
我说要个购物车,就来个购物车?
这个也不一定只有FP适合描述啊

【在 w***g 的大作中提到】
: 我说的ai优化不是性能,而是能极大地简化编程那种。
:
: :python的卖点是易学,跟FP不在一个生态位
: :python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?

avatar
n*7
13
看了这个例子,然后让我google persistent_data_structures_and_structural_
sharing
暂时看不进去了

【在 n***p 的大作中提到】
: 非主流的原因主要是程序员被OOP洗脑太多年。immutability,对Clojure根本不是个事
: ,因为没有overhead。正相反,clojure的immutability避免了重新创建大的objects,
: 例如
: http://mishadoff.com/blog/clojure-design-patterns/#episode-8-prototype

avatar
x*u
14
OOP是限制,FP是灵活
灵活虽然好,但你团队内万一有一人产老鼠屎,大家就不要活了

【在 n***p 的大作中提到】
: 非主流的原因主要是程序员被OOP洗脑太多年。immutability,对Clojure根本不是个事
: ,因为没有overhead。正相反,clojure的immutability避免了重新创建大的objects,
: 例如
: http://mishadoff.com/blog/clojure-design-patterns/#episode-8-prototype

avatar
n*p
15
FP只要把unit test这关把好,出老鼠屎的几率几乎为0

【在 x****u 的大作中提到】
: OOP是限制,FP是灵活
: 灵活虽然好,但你团队内万一有一人产老鼠屎,大家就不要活了

avatar
d*r
16
那是个什么样的脑洞? 吹来大家听听呢

【在 w***g 的大作中提到】
: 我说的ai优化不是性能,而是能极大地简化编程那种。
:
: :python的卖点是易学,跟FP不在一个生态位
: :python随便个阿猫阿狗学几个小时就能开始写code了,哪个FP能做到?

avatar
g*t
17
更多的程序员转化为调参数师傅?


: 那是个什么样的脑洞? 吹来大家听听呢



【在 d*******r 的大作中提到】
: 那是个什么样的脑洞? 吹来大家听听呢
avatar
d*r
18
不知道啊,wdong说得很神的样子,你们星宿派新的大招?

【在 g****t 的大作中提到】
: 更多的程序员转化为调参数师傅?
:
:
: 那是个什么样的脑洞? 吹来大家听听呢
:

avatar
w*g
19
我也不知道。随便说的。FP这种东西就是过一阵就会被消费一次。

【在 d*******r 的大作中提到】
: 那是个什么样的脑洞? 吹来大家听听呢
avatar
h*c
20
老板肯出钱,僵尸叔也能让它推磨
avatar
n*p
21
可以看Clojure的creator解释,第25分钟起
http://www.youtube.com/watch?v=hb3rurFxrZ8

【在 n******7 的大作中提到】
: 看了这个例子,然后让我google persistent_data_structures_and_structural_
: sharing
: 暂时看不进去了

avatar
j*g
22
FP 绝对是趋势,除了性能要求高的,FP适合于商务应用
avatar
w*z
23
得了吧,没有啥大项目会用 fp 来搞的。

:FP 绝对是趋势,除了性能要求高的,FP适合于商务应用
avatar
j*g
24
:)

【在 w**z 的大作中提到】
: 得了吧,没有啥大项目会用 fp 来搞的。
:
: :FP 绝对是趋势,除了性能要求高的,FP适合于商务应用

avatar
n*w
25
spark应该是大项目。
avatar
m*0
26
百万行量级的项目算大项目么?

【在 w**z 的大作中提到】
: 得了吧,没有啥大项目会用 fp 来搞的。
:
: :FP 绝对是趋势,除了性能要求高的,FP适合于商务应用

avatar
w*z
27
百万行量级的项目,用fp写的,估计用两只手就能数出来了。

【在 m****0 的大作中提到】
: 百万行量级的项目算大项目么?
avatar
w*r
28
FP我看来只不过是一种封装,适合给一般程序员开发点顶层应用
在编程鄙视链里,FP应该在OOP的下游
avatar
n*7
29
看了,只是很简单的介绍了一下
我脑补了一下,感觉这说的就是一个base的不变数据结构
每个衍生instance只记录变化的部分就好了
其实我觉得即使学一门FP,clojure的实用性也在scala, F#, 甚至haskell 之后
不过clojure code实在简洁漂亮,非常喜欢

【在 n***p 的大作中提到】
: 可以看Clojure的creator解释,第25分钟起
: http://www.youtube.com/watch?v=hb3rurFxrZ8

avatar
x*u
30
编程没有银弹定律

【在 n***p 的大作中提到】
: FP只要把unit test这关把好,出老鼠屎的几率几乎为0
avatar
c*o
32
FP性能挺好,当然目标不是和C/汇编比,scala和Java比一点也不差。没有啥动态语言
能和静态语言比的。
C++其实已经相当FP化了。
avatar
d*e
33
jet.com全是 F#.
好几个网站是scala.

【在 w**z 的大作中提到】
: 得了吧,没有啥大项目会用 fp 来搞的。
:
: :FP 绝对是趋势,除了性能要求高的,FP适合于商务应用

avatar
N*n
34

immutability用处有限,很多问题本质就是MUTABLE的,比如说简单的银行账户
操作,同时两个存取操作在一个账户上,这就是MUTABLE问题。immutability
在这里没用。用处有限,代价又很大,自然没有多少吸引力。

【在 n******7 的大作中提到】
: 感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability,
: 重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
: 不是性能最优的。
: 以前很喜欢用C#的LINQ,觉得简洁优美。后来发现不少地方跟for loop还是差距较大,
: 现在基本只用select(map)了,不然code review还得打回重写。
: 虽然说developer的时间比CPU时间宝贵,但是你做个东西比别人慢几倍,最后没人用,
: 项目死掉,更是浪费。
: FP还是适合个人/小团队搞些web开发,或者data crunching

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