lisp学习总结(二)-----lisp应该探索发展的方向
现在流行一种语言叫做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学习总结(二)-----lisp应该探索发展的方向的更多相关文章
- Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋
Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始
- 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)
项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...
- 2019/3/4 java集合学习(二)
java集合学习(二) 在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以 ...
- 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用
目录 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用 24.1 expect实现无交互登录 24.1.1 安装和使用expect 24.2 正则表达式的使用 24 ...
- PHP中的MySQLi扩展学习(二)mysqli类的一些少见的属性方法
虽说是少见的一些属性方法,但是可能还是有不少同学在日常的开发中使用过,这里只是学习了可能相对来说我们用得比较少的一些 mysqli 的属性或方法.就当是扩展一下自己的知识体系. 切换用户 首先就是切换 ...
- crawler4j 学习(二)
crawler4j 学习(二) 实现控制器类以制定抓取的种子(seed).中间数据存储的文件夹.并发线程的数目: public class Controller { public static voi ...
- 从零开始学习jQuery (二) 万能的选择器
本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...
- Android Animation学习(二) ApiDemos解析:基本Animators使用
Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...
- AspectJ基础学习之二搭建环境(转载)
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
随机推荐
- 漏洞扫描工具AWVS介绍及安装教程
PS:webug靶场全都通关了,你也就是个合格的新手了. 上次我们在通关webug靶场第三关的时候,提到一个漏洞扫描工具叫做AWVS.这次我们介绍一下它. 1 AWVS漏洞扫描工具 Acunetix ...
- H3C 端口隔离简介
- Spring Security 学习笔记-securityContext过滤器
位于过滤器顶端,第一个起作用的过滤器.SecurityContextPersistenceFilter 在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContex ...
- dotnet 通过 WMI 获取系统安装的驱动
本文告诉大家如何通过 WMI 获取用户已经安装的驱动程序 通过 Win32_SystemDriver 可以获取用户已经安装的驱动程序 var mc = "Win32_SystemDriver ...
- VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,中文正则,倒数第二列, 匹配任意一个字符 :
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下: ...
- python 下载bilibili视频
说明: 1.清晰度的选择要登录,暂时还没做,目前下载的视频清晰度都是默认的480P 2.进度条仿linux的,参考了一些博客修改了下,侵删 3.其他评论,弹幕之类的相关爬虫代码放在了https://g ...
- Jquery xhr2跨域
相关享目托管在github: https://github.com/devgis/CSharpCodes
- 超简单!pytorch入门教程(四):准备图片数据集
在训练神经网络之前,我们必须有数据,作为资深伸手党,必须知道以下几个数据提供源: 一.CIFAR-10 CIFAR-10图片样本截图 CIFAR-10是多伦多大学提供的图片数据库,图片分辨率压缩至32 ...
- Java核心技术·卷 II(原书第10版)分享下载
Java核心技术·卷 II 内容介绍 Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与<Java编程思想>齐名,10余年 ...
- 将Samba设置为Active Directory域控制器
一 简介 从版本4.0开始,samba可以作为Active Directory(AD)域控制器(DC)运行,如果在生产环境中安装samba,建议运行两个或者多个DC用于故障转移 本文介绍如何让将一个S ...