L********t 发帖数: 3 | 1 我最近在思考这个问题: 通用编程技术和语言的发展到底是如何被应用驱动的? 有些所
得,和大家分享一下。 |
L********t 发帖数: 3 | 2 在早期,程序基本都是从头跑到尾的一根筋的类型,主要用来解决计算问题,基本上是
为了实现算法的。
在近代,大量的商业应用,让算法成为了局部的需求,总体的需求是计算机和软件本身
成为商业运作中的一个成员,比如作为银行账本,库存清单,学校花名册等等。
在现代,也就是互联网时代,计算机和软件本身成为了商业的主角,甚至开创了新型的
商业模式,比如Ebay, Netflix, Facebook, Airbnb, Uber等等。
早期的应用,procedural functions and functional functions 可以应付得很好。近
代的应用,规模大增,这两种function在数量上满足不了应用的规模。只有object这个
技术,可以在design time写一次代码,然后在runtime生成大量的object。
但OOP在现代,没有跟上应用的需要,甚至没有跟上硬件和网络技术的发展。硬件贡献
了多核CPU技术,网络贡献了互联网技术。
现在的局面是,通用编程技术没有跟上互联网应用的节奏。科学和工业界都没有提出有
效的编程技术和语言(都是局限在单个计算机内的)。在现实中,只能用web service等
企业技术来弥补。 |
T*******x 发帖数: 8565 | 3 有道理。
【在 L********t 的大作中提到】 : 在早期,程序基本都是从头跑到尾的一根筋的类型,主要用来解决计算问题,基本上是 : 为了实现算法的。 : 在近代,大量的商业应用,让算法成为了局部的需求,总体的需求是计算机和软件本身 : 成为商业运作中的一个成员,比如作为银行账本,库存清单,学校花名册等等。 : 在现代,也就是互联网时代,计算机和软件本身成为了商业的主角,甚至开创了新型的 : 商业模式,比如Ebay, Netflix, Facebook, Airbnb, Uber等等。 : 早期的应用,procedural functions and functional functions 可以应付得很好。近 : 代的应用,规模大增,这两种function在数量上满足不了应用的规模。只有object这个 : 技术,可以在design time写一次代码,然后在runtime生成大量的object。 : 但OOP在现代,没有跟上应用的需要,甚至没有跟上硬件和网络技术的发展。硬件贡献
|
m**u 发帖数: 541 | 4 看了标题,就开始发愁,怨不得好的程序员不多啊。。。 |
W***o 发帖数: 6519 | 5 this is a chicken-and-egg question.
without class, how do you get object instantiated memory? without physical/
imaginary
object, how do you get class?
【在 L********t 的大作中提到】 : 我最近在思考这个问题: 通用编程技术和语言的发展到底是如何被应用驱动的? 有些所 : 得,和大家分享一下。
|
p*****2 发帖数: 21240 | 6
看js
【在 W***o 的大作中提到】 : this is a chicken-and-egg question. : without class, how do you get object instantiated memory? without physical/ : imaginary : object, how do you get class?
|
T*******x 发帖数: 8565 | 7 内容有一定道理。标题确实有点矛盾。
class是object的类型。相当于JSON或XML的validation文件,是可以没有的。但是有,
或至少有这个概念也是很自然的。
【在 m**u 的大作中提到】 : 看了标题,就开始发愁,怨不得好的程序员不多啊。。。
|
L********t 发帖数: 3 | 8 标题本身的逻辑没有问题,就好像图灵奖不叫图灵妈妈奖一样。
这个标题其实有更深的含义: object
是好东西,但class拖后腿。
大规模的程序一般来说需要大量的稍有智能的,能克隆的马仔。一方面,OOP能提供这
样的马仔,并且是三大范式(OOP, PP, FP)中唯一有这个能力的; 但另一方面,class对
写大规模的程序,有负面的作用。
比如在一个单机系统里,你要给amazom下个订单,你一定要有amazon相关object的
reference才能做到,因为这是OOP的object之间交流的唯一方式,然后这个object的类
型,就是class,和所有间接牵连到的个各种类型,都得包含进来。
描述这种情况,说得最好的是: you wanted a banana but what you got was a
gorilla holding the banana and the entire jungle.
在一个单机系统里,OOP做大了都有问题,在多机系统里就更不行了。所以OOP只能在限
制的范围内使用,它们之间用企业技术web service, queue, database 等阻隔开来。
OOP需要改进,比如增加非类型的数据结构,增加间接的交流方式,等等。 |
g*****g 发帖数: 34805 | 9 人类用牛顿物理描述低速也就是我们常识理解的世界,牛顿物理就是典型的OO。定义了
物体及其相互作用。
大规模系统也好,小规模也好,OO是最容易建模的语言,因为符合人类常识。只有在某
些特定领域,比如数学公式,更适合FP。
【在 L********t 的大作中提到】 : 标题本身的逻辑没有问题,就好像图灵奖不叫图灵妈妈奖一样。 : 这个标题其实有更深的含义: object : 是好东西,但class拖后腿。 : 大规模的程序一般来说需要大量的稍有智能的,能克隆的马仔。一方面,OOP能提供这 : 样的马仔,并且是三大范式(OOP, PP, FP)中唯一有这个能力的; 但另一方面,class对 : 写大规模的程序,有负面的作用。 : 比如在一个单机系统里,你要给amazom下个订单,你一定要有amazon相关object的 : reference才能做到,因为这是OOP的object之间交流的唯一方式,然后这个object的类 : 型,就是class,和所有间接牵连到的个各种类型,都得包含进来。 : 描述这种情况,说得最好的是: you wanted a banana but what you got was a
|