|
woodheadz 发表于 8-7-2014 12:55
callback会导致逻辑被迫碎片化。 因此才会诞生了promise模式,还有老赵的wind js
这个问题我认为解决得最 ...
我到觉得await在C#里不伦不类。当然这个语法糖省了不少事。最开始C#的设计是紧跟Java,后来发现Functional Language是方向,又加入了很多Functional Lang的语言特性(var, dynamic, await/async, Roslyn),但都是在语法糖层面上的模拟。现在C#变得不伦不类,模拟这些特性的变得越来越复杂。就像一辆大拖车,发现走错路了,不是随便找个弯就能转过来的。
当然,考虑到市场和兼容性,以及C#社区的习惯等现实问题,MS是不可能一下子放弃C#而推出全新语言取而代之,只能是更多的“模拟”Functional Lang的特征。
我认为,Cloud时代编程语言的基本要求是
- 弱类型,至少是运行时弱类型——适应频繁cloud上API变更,避免重编译
- 支持eval——程序可做数据传输
- Data既code,如JSON——数据可以直接被运行,避免serializatoin/deserialization
- Module和Namespace支持
- Native dependency loading mechanism
- Package ecological system
- 解释执行和Command line runnable——为了方便部署。
- [Optional] 支持async。
- [Optional] Client端和Server端都能跑,既都有虚拟机支持。
至少现在C#在1、2、3、7、9上还很弱,或者说根本无法从根本上实现或高效实现。MS也发现了这一点,但改的C#越来越像怪猴。Google在开发语言上倒是一直不说上句,不知它是否有意强推Node.js,毕竟JavaScript是目前所有语言中在上述要求中得分最高的(1, 2, 3, 6, 7, 8, 9) |
|