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能做到?
|
|
|
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 | |
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适合于商务应用 |
|
|
w**z 发帖数: 8232 | 21 得了吧,没有啥大项目会用 fp 来搞的。
:FP 绝对是趋势,除了性能要求高的,FP适合于商务应用 |
j*****g 发帖数: 254 | 22 :)
【在 w**z 的大作中提到】 : 得了吧,没有啥大项目会用 fp 来搞的。 : : :FP 绝对是趋势,除了性能要求高的,FP适合于商务应用
|
n*w 发帖数: 3393 | |
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化了。 |
|
|
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
|