d******e 发帖数: 2265 | 1 假设fotran, cobal是上古语言。
第一代是pascal, c这种面向过程的语言
第二代事面向对象的语言。
第三代是fp和oop的结合。
现在看,es 6, swift, rust在语法和功能上相似点非常的多啊。
我预计最后都会提供let, option, try, promise, future,curry and patrial,简单的
OO. mixin or trait. collection和高阶函数。generator和各种comprehension. 将来
也许有coroutine? | z****e 发帖数: 54598 | 2 swift出问题的基本上都是fp的部分
if let的闹剧跟fp有很大关系
immutable真是没事找事
搞得{}里面无法重用let后面那个常量
需要更改时候,又不得不重新定义变量
导致内存使用上升,而且为了避开try catch和if != null判断
又引入了if let这个block,从本质上说反而降低了代码的可读性
当然知道if let啥意思的,就没啥问题,但是如果不知道
查起来都费劲,我是花了几个小时才弄明白这个啥意思
而且swift框架都是单线程,又不存在有并发冲突
这个时候搞成immutable,实在是不知道为了啥
如果有个if var判断,那我能接受,well,如果不考虑字面上的可读性的话
字面上的可读性甚至还不如try catch,要么干脆当初就不要搞这个
搞了这个之后,金字塔造了一堆,最后还不如回去用try catch
至少可读性更强,好处可能就只有一个,就是optional chain
就像这样if let a?.b?.c? as? d
但是optional chain本身又有debug的问题,一旦出错
都不知道是哪里出了问题,这个如果是exception
可以通过exception chain来解决,catch之后再catch
但是optional chain在debug时候可没这个优势,不过如果有人知道怎么区分
请务必告诉我,我的swift生产代码已经上万行了,庆祝一下 | a*****g 发帖数: 19398 | 3 good
【在 d******e 的大作中提到】 : 假设fotran, cobal是上古语言。 : 第一代是pascal, c这种面向过程的语言 : 第二代事面向对象的语言。 : 第三代是fp和oop的结合。 : 现在看,es 6, swift, rust在语法和功能上相似点非常的多啊。 : 我预计最后都会提供let, option, try, promise, future,curry and patrial,简单的 : OO. mixin or trait. collection和高阶函数。generator和各种comprehension. 将来 : 也许有coroutine?
| p*****2 发帖数: 21240 | 4
Golang算第几代
【在 d******e 的大作中提到】 : 假设fotran, cobal是上古语言。 : 第一代是pascal, c这种面向过程的语言 : 第二代事面向对象的语言。 : 第三代是fp和oop的结合。 : 现在看,es 6, swift, rust在语法和功能上相似点非常的多啊。 : 我预计最后都会提供let, option, try, promise, future,curry and patrial,简单的 : OO. mixin or trait. collection和高阶函数。generator和各种comprehension. 将来 : 也许有coroutine?
| d******e 发帖数: 2265 | 5 没看过golang啊。
大牛来说说。
【在 p*****2 的大作中提到】 : : Golang算第几代
| p*****2 发帖数: 21240 | 6
是个奇葩
【在 d******e 的大作中提到】 : 没看过golang啊。 : 大牛来说说。
| g*****g 发帖数: 34805 | 7 得了,fp比OOP还早。两者加起来都是80年代就有了。现在混一下就下一代了?
【在 d******e 的大作中提到】 : 假设fotran, cobal是上古语言。 : 第一代是pascal, c这种面向过程的语言 : 第二代事面向对象的语言。 : 第三代是fp和oop的结合。 : 现在看,es 6, swift, rust在语法和功能上相似点非常的多啊。 : 我预计最后都会提供let, option, try, promise, future,curry and patrial,简单的 : OO. mixin or trait. collection和高阶函数。generator和各种comprehension. 将来 : 也许有coroutine?
| d******e 发帖数: 2265 | 8 这得看有没有需求。
我老当年做research,在浏览器里面开个socket和系统通讯,你能说当时就发明了
websocket? 除了我门当年蛋疼的研究项目那个需要这个。
【在 g*****g 的大作中提到】 : 得了,fp比OOP还早。两者加起来都是80年代就有了。现在混一下就下一代了?
| g*****g 发帖数: 34805 | 9 需求有, niche market。
【在 d******e 的大作中提到】 : 这得看有没有需求。 : 我老当年做research,在浏览器里面开个socket和系统通讯,你能说当时就发明了 : websocket? 除了我门当年蛋疼的研究项目那个需要这个。
| m**********s 发帖数: 518 | 10 为了fp而fp就是病态
假设fotran, cobal是上古语言。第一代是pascal, c这种面向过程的语言第二代事面向
对象的语言。第三代是fp和oop的结合。现在看,es 6, swift, ru........
【在 d******e 的大作中提到】 : 假设fotran, cobal是上古语言。 : 第一代是pascal, c这种面向过程的语言 : 第二代事面向对象的语言。 : 第三代是fp和oop的结合。 : 现在看,es 6, swift, rust在语法和功能上相似点非常的多啊。 : 我预计最后都会提供let, option, try, promise, future,curry and patrial,简单的 : OO. mixin or trait. collection和高阶函数。generator和各种comprehension. 将来 : 也许有coroutine?
| p*****2 发帖数: 21240 | 11
没错。我用Go写了fp的library之后就发觉不太现实了。代码及其丑陋。
【在 m**********s 的大作中提到】 : 为了fp而fp就是病态 : : 假设fotran, cobal是上古语言。第一代是pascal, c这种面向过程的语言第二代事面向 : 对象的语言。第三代是fp和oop的结合。现在看,es 6, swift, ru........
| z****e 发帖数: 54598 | 12 然
swift的fp part尽量少用
不要为了装逼而使用
用fp一旦开始装逼,那代码就开始变得无比恶心
【在 m**********s 的大作中提到】 : 为了fp而fp就是病态 : : 假设fotran, cobal是上古语言。第一代是pascal, c这种面向过程的语言第二代事面向 : 对象的语言。第三代是fp和oop的结合。现在看,es 6, swift, ru........
|
|