由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - FP的死穴还是性能
相关主题
FP更接近人的思维1st class citizen
对 (im)mutability 的误解和深度理解函数式语言怎么实现常用数据结构?
也谈OOP跟FP之争支持我的JS OOP观点的文章来了
OOP里面的Object其实是actorFP 之我见 (长)
面向数据的编程与面向对象的编程functional programming 哪本书经典适合入门
functional programming的两个方面从今天开始起,学C++!
clojure和common lisp区别大么,语法上。粉FP的人是因为把电脑想象成图灵机了
有人用clj写web么?比如用luminus,ring这些框架Python Q: function pass in struct pointer, come back with data filled
相关话题的讨论汇总
话题: fp话题: 性能话题: python话题: clojure
进入Programming版参与讨论
1 (共1页)
n******7
发帖数: 12463
1
感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability,
重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
不是性能最优的。
以前很喜欢用C#的LINQ,觉得简洁优美。后来发现不少地方跟for loop还是差距较大,
现在基本只用select(map)了,不然code review还得打回重写。
虽然说developer的时间比CPU时间宝贵,但是你做个东西比别人慢几倍,最后没人用,
项目死掉,更是浪费。
FP还是适合个人/小团队搞些web开发,或者data crunching
w***g
发帖数: 5958
2
应该不是性能。性能能低过python?
下一波FP热潮指日可待。AI优化进入编译器领域后FP又会被炒起来的。到时候我肯定会
跟风来这里吹。

:感觉FP纵然千般好,一直非主流的症结就是性能。主要两个原因,一是immutability
,重新创建大的objects太伤性能;一是higher order functions,大粒度操作很多时候
:不是性能最优的。
n***p
发帖数: 110
3
非主流的原因主要是程序员被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

L****8
发帖数: 3938
4
OOP是fake concept

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

n******7
发帖数: 12463
5
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,大粒度操作很多时候
: :不是性能最优的。

g****t
发帖数: 31659
6
好几位好像忽略了编译型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
: 时候

w***g
发帖数: 5958
7
我说的ai优化不是性能,而是能极大地简化编程那种。

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

所以说压倒一切是用户体验,其余都是浮云。什么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
: 时候

N********n
发帖数: 8363
9

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

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

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

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

相关主题
functional programming的两个方面1st class citizen
clojure和common lisp区别大么,语法上。函数式语言怎么实现常用数据结构?
有人用clj写web么?比如用luminus,ring这些框架支持我的JS OOP观点的文章来了
进入Programming版参与讨论
n******7
发帖数: 12463
11
看了这个例子,然后让我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

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

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

n***p
发帖数: 110
13
FP只要把unit test这关把好,出老鼠屎的几率几乎为0

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

d*******r
发帖数: 3299
14
那是个什么样的脑洞? 吹来大家听听呢

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

g****t
发帖数: 31659
15
更多的程序员转化为调参数师傅?


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



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

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

w***g
发帖数: 5958
17
我也不知道。随便说的。FP这种东西就是过一阵就会被消费一次。

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

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

j*****g
发帖数: 254
20
FP 绝对是趋势,除了性能要求高的,FP适合于商务应用
相关主题
FP 之我见 (长)粉FP的人是因为把电脑想象成图灵机了
functional programming 哪本书经典适合入门Python Q: function pass in struct pointer, come back with data filled
从今天开始起,学C++!函数式语言是不是特别费系统资源?
进入Programming版参与讨论
w**z
发帖数: 8232
21
得了吧,没有啥大项目会用 fp 来搞的。

:FP 绝对是趋势,除了性能要求高的,FP适合于商务应用
j*****g
发帖数: 254
22
:)

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

n*w
发帖数: 3393
23
spark应该是大项目。
m****0
发帖数: 229
24
百万行量级的项目算大项目么?

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

w**z
发帖数: 8232
25
百万行量级的项目,用fp写的,估计用两只手就能数出来了。

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

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

x****u
发帖数: 44466
28
编程没有银弹定律

【在 n***p 的大作中提到】
: FP只要把unit test这关把好,出老鼠屎的几率几乎为0
n***p
发帖数: 110
29
这个解释得比较全
https://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey

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

c******o
发帖数: 1277
30
FP性能挺好,当然目标不是和C/汇编比,scala和Java比一点也不差。没有啥动态语言
能和静态语言比的。
C++其实已经相当FP化了。
相关主题
go也是三种paradigm混合的语言对 (im)mutability 的误解和深度理解
Duck typing is great ...也谈OOP跟FP之争
FP更接近人的思维OOP里面的Object其实是actor
进入Programming版参与讨论
d******e
发帖数: 2265
31
jet.com全是 F#.
好几个网站是scala.

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

N********n
发帖数: 8363
32

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

1 (共1页)
进入Programming版参与讨论
相关主题
Python Q: function pass in struct pointer, come back with data filled面向数据的编程与面向对象的编程
函数式语言是不是特别费系统资源?functional programming的两个方面
go也是三种paradigm混合的语言clojure和common lisp区别大么,语法上。
Duck typing is great ...有人用clj写web么?比如用luminus,ring这些框架
FP更接近人的思维1st class citizen
对 (im)mutability 的误解和深度理解函数式语言怎么实现常用数据结构?
也谈OOP跟FP之争支持我的JS OOP观点的文章来了
OOP里面的Object其实是actorFP 之我见 (长)
相关话题的讨论汇总
话题: fp话题: 性能话题: python话题: clojure