Reload Original PagePrint PageEmail Page

编程语言的进化与CoffeeScript

javascript语言是lisp + c,也是smalltalk+C,取的是相应的简洁版Scheme和Self.CoffeeScript把js变得更加漂亮,并且避免了js本身语法上的各种问题。再看另外一系语言:joy语言发展forth语言提出了quotation,并称为concatenative语言。如果把CoffeeScript的缩进语法块Off-siderule与point-free风格的concatenative语言的quotation看成一致(在文本编辑器Vim或者其他可视编辑器中更容易感觉到这点,程序式编辑程序),那么理想中lisp,smalltalk,forth就在此合为一体(实际上还有加上C系,p.s.组合逻辑https://github.com/raganwald/KatyKaty: CoffeeScript Combinators)。而在Real World现实世界中,js跨越桌面(windows8,gtk3)和移动(firefox os,phonegap)还有node.js使其一统前后两端,直逼The Matrix中的The one,创世纪中的通天塔。

github最受关注的coffeescript项目,信息可视化,然后一个客户端mvc:chaplin,扩展backbone应对复杂情况。再后, Full Stack Web Framework:tower,基于ember.js框架,分别提供共享的和前后端不同的代码,加上内部使用的cursor来分别处理前端状态响应和后端保存数据,要做的就是程序世界的通天塔及其阶梯和窗台。再后, vimium在Chrome浏览器中使用vim操作,如果再支持全屏下绑定split的按键和内容编辑,完全就是可视的VIM和smallweb.

题外:Ember.js的api之详尽让我想起PHP Yii框架的api,Yii 的模块CComponent的事件同Ember.Object通过Observable Mixin 得到的扩展很类似。鉴于各自语法不同,比如PHP数组,还有直到5.4才有特徽等体现得不一样(PHP本身又是一个大集市,框架层出不穷)。而Ember的Mixin思想与Lisp的CLOS,Ruby的mixin,Slate的role等等是一致的,方式就是js的原型继承模拟.js是动态语言,因此类似go的interface或是其他静态语言意义下的泛型是不会有的(不过这语言的新标准不断变化)。微软的TypeScript更多的是便于ide下协作开发大规模应用。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::