lisp学习总结(二)-----lisp应该探索发展的方向
2014-02-17 17:16
330 查看
现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败。
因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行,硬要拿去真正在一个环境中去运行,那么它将被限制在一个环境,而是他的应用范围变窄,比如我想开发操作系统或者开发分布式应用,或者为并行处理器GPU写程序,那就无望了。
更悲剧的是Clojure与JAVA之间的关系是API调用关系,这将很大程度上限制lisp的高阶抽象的发挥,我们不得不经常设计合适的谓词为lisp与java之间找到一个合适的分界点。现实与天堂模糊的分界点是lisp能高效快速开发抽象逻辑的重要保障,如果加入一个分界点区分设计工作,那将是很复杂的,甚至是不能成功的,lisp的分界点转换可能是很快的,人为跟不上的。
当然Common Lisp本身平台也很弱小,弱小到根本不具备强大的目标平台开发能力,我们活在人间,天堂的饼子再美好也无法喂饱我们的肚子。
我觉着Common Lisp要能有发展,最好的出路是借鉴类似UML的代码设计工具,做不同语言的代码生成器,因为所有平台其都有最好的开发语言,并且有最好的厂商支持,这样我们只需要能构造建立在format之上的高阶抽象就可以让lisp将进入任何平台领域,成为最好的"设计语言".
比如我们要写一个操作系统,并且这个操作系统很特别,他需要为AMD的GCN异构计算做全面优化,那么这个操作系统肯定不能用已有的C语言去写,因为以前的操作系统用C开发几十年,架构稳定,虽然能移植过去,但是却不能发挥性能,因为性能的关键取决于应用,这也是windows linux的失败,那么如果有更高级抽象操作系统 (lisp)那么移植到GCN应该是容易的,抽象的操作系统,抽象的应用执行,将很容易为异构硬件平台作优化。
又比如我们要写一个分布式系统,有很多异构服务器组成,有的是http,有的是c为目标平台优化写的主控服务器,那么要设计这种系统,如果能用lisp做设计,为不同平台生成目标代码,那么我们将可以站在全局更上层的抽象上做更多全局控制甚至更改推翻重来,用c写的就玩不起了。
因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行,硬要拿去真正在一个环境中去运行,那么它将被限制在一个环境,而是他的应用范围变窄,比如我想开发操作系统或者开发分布式应用,或者为并行处理器GPU写程序,那就无望了。
更悲剧的是Clojure与JAVA之间的关系是API调用关系,这将很大程度上限制lisp的高阶抽象的发挥,我们不得不经常设计合适的谓词为lisp与java之间找到一个合适的分界点。现实与天堂模糊的分界点是lisp能高效快速开发抽象逻辑的重要保障,如果加入一个分界点区分设计工作,那将是很复杂的,甚至是不能成功的,lisp的分界点转换可能是很快的,人为跟不上的。
当然Common Lisp本身平台也很弱小,弱小到根本不具备强大的目标平台开发能力,我们活在人间,天堂的饼子再美好也无法喂饱我们的肚子。
我觉着Common Lisp要能有发展,最好的出路是借鉴类似UML的代码设计工具,做不同语言的代码生成器,因为所有平台其都有最好的开发语言,并且有最好的厂商支持,这样我们只需要能构造建立在format之上的高阶抽象就可以让lisp将进入任何平台领域,成为最好的"设计语言".
比如我们要写一个操作系统,并且这个操作系统很特别,他需要为AMD的GCN异构计算做全面优化,那么这个操作系统肯定不能用已有的C语言去写,因为以前的操作系统用C开发几十年,架构稳定,虽然能移植过去,但是却不能发挥性能,因为性能的关键取决于应用,这也是windows linux的失败,那么如果有更高级抽象操作系统 (lisp)那么移植到GCN应该是容易的,抽象的操作系统,抽象的应用执行,将很容易为异构硬件平台作优化。
又比如我们要写一个分布式系统,有很多异构服务器组成,有的是http,有的是c为目标平台优化写的主控服务器,那么要设计这种系统,如果能用lisp做设计,为不同平台生成目标代码,那么我们将可以站在全局更上层的抽象上做更多全局控制甚至更改推翻重来,用c写的就玩不起了。
相关文章推荐
- 干货丨除了深度学习,你还应该了解这些发展方向
- 11月学习总结---确定以Linux为终身的发展方向
- 设计师应该关注的科技发展方向(二)
- 网页浏览器发展方向总结
- [学习]未来发展规划(技术方向)
- 云计算,不仅仅是数据的存储计算,更应该是数据的分析、挖掘计算- 电饭锅产业技术路线图发布:明晰发展方向
- ROS探索总结(五)学习遇到的问题
- 设计师应该关注的科技发展方向(一)
- [mystery]-也谈技术人员发展方向及嵌入式学习
- 银行对公业务的发展方向,及多银行资金管理云服务的探索
- FirstApp,iphone开发学习总结13,方向感应和通告
- memcached学习(3)memcached的删除机制和发展方向
- 学习的方向和方法的总结
- C++程序员学习发展方向分析和指导(C++入门学习指导建议必看)
- 设计师应该关注的科技发展方向(一)
- 设计师应该关注的科技发展方向(四)
- iOS探索--IOS学习路线总结
- 深度学习未来的可能发展方向
- WEB 开发程序员的学习与发展方向
- C++程序员学习发展方向分析和指导(C++入门学习指导建议必看)