文档章节

Lisp永远成不了编程主流语言

TKT2016
 TKT2016
发布于 2016/08/10 11:12
字数 620
阅读 137
收藏 1
点赞 0
评论 0

    Lisp语言是第二古老的高级编程语言。许多的黑客和开发者对Lisp推崇备至,Paul Graham甚至说"编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平"。

    然而这样先进的语言在现在使用的编程语言从来没有排到前20,听说它的人不少,用的人却非常少。

    许多人对Lisp语言的第一印象就是一层层的括号,很老的关于苏联黑客偷到Lisp源码的最后一页全是括号的笑话就不用再说了。

造成Lisp程序如此多括号的原因就是S表达式。所谓S表达式,是指一种以人类可读的文本形式表达半结构化数据的约定,是点对表示法的形式定义。

S表达式是Lisp语言的鲜明特点,使数据和代码形式统一,让使用者有能力对程序和数据进行统一处理。

    Lisp语言使用这统一的S表达式,让A+B编程了(+ A B),数据是统一了,却让人别扭了,尤其在使用更复杂的四则混合运算时更让人难以接受。然而那些Lisp拥护者对这些不能接受S表达式的人总是持批评鄙视的态度。

    Lisp未能成为主流的根本原因是这一语言是反人性的,它的先进是对于机器的先进,就像二进制对于计算机来说是先进的一样。

    人是生物,对事物的需求都有着多样性的需求,人类的所有语言对漂亮的形容词从来不止一个,对颜色的要求从来就不止黑白亮色,所以在数字上选择了十进制而不选择二进制,这是最基本的人性。Lisp使用S表达式抹平了一切多样性,禁止人类数千年来不约而同选择的的A+B这样的中缀表达式规则,违反了人性,所以受到了广大开发者的不接受。

    简单说,Lisp语言违反了人类人性中对事物多样性的需求而不能成为编程语言中的主流。

© 著作权归作者所有

共有 人打赏支持
TKT2016
粉丝 3
博文 2
码字总数 620
作品 2
宿迁
​​​​​​​为什么Lisp语言如此先进?

(节选自即将出版的《黑客与画家》中译本) 一、 如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。 Python模仿Lisp,甚至把...

平凡之路
2016/07/12
23
0
为什么Lisp语言如此先进?(译文)

上周,《黑客与画家》总算翻译完成,已经交给出版社了。 翻译完这本书,累得像生了一场大病。把书稿交出去的时候,心里空荡荡的,也不知道自己得到了什么,失去了什么。 希望这个中译本和我的...

阮一峰
2010/10/14
0
0
一篇比较深刻的讲FP特性的文章

【IT168 技术文档】甫于日前落幕的Software Development 2.0研讨会,来宾之一的Andrei Alexandrescu被问到未来编程语言的趋势时,他认为函数编程(Functional Pogramming)可能会再度兴起。我认...

刘小兵2014
2010/12/14
0
0
下一代编程语言可能具有的特点

高科技的东西总是从小众走向大众,计算机编程也是如此。可以预见,未来即使是普通人也会编程。 编程语言的发展趋势就是从机器语言开始,渐渐向人们更容易理解的方向发展。 未来编程语言的特点...

太医
2012/05/30
3.1K
48
11大类编程语言功能比较表(信息图)

导读:有程序员的地方就会有因为对编程语言的探讨而引发的战争(例如Linux之父Linus Torvalds炮轰C++ 一无是处,认为C++既无助于简化,以实际用于进行原型化或者简单的GUI编程,又不是像C那样...

sevens2008
2012/01/31
5.1K
12
Lisp 家族迎来新成员,函数式语言 Lux 是什么?

代码世界即将加入一门新成员:Lux。你没看错,它不是洗发水,而是古老的 Lisp 家族中新诞生的函数式语言。 目前 Lux 还在研发之中,最新版本是 0.5.0。它可被用来编写一系列在 JVM (Java 虚...

两味真火
2017/01/17
2.3K
8
GCL笔记01-LISP基础知识

LISP两大方言系:Common Lisp以及Scheme Lisp(以下简称cl与scheme),之所以说是方言系,是因为LISP语言具有很高的灵活性,语法很容易转化成另一种形态,每一个语法系都有众多的版本实现。 ...

兰穆达
2012/05/23
0
2
【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验

【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验 《实用 Common Lisp 编程》一书中提到一个 Lisp 神奇案例:运行在太空飞船上的一段代码在太空飞...

FreeBlues
2013/01/22
0
0
#讨论#大家对函数式编程有什么看法呢

最近在看lisp和haskell,觉得确实是跟命令式语言差别很大,也很有启发 但是函数式编程貌似一直是“非主流” 但是在很多大公司的项目中也广泛用到 不知道大家有什么见解

来自杭州的小杨
2010/10/27
290
3
程序员对C语言的拙劣看法

我对C语言的拙劣看法 扯买房实在不擅长,咱门还是来聊程序吧。 C语言是面向过程的,而C++是面向对象的C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑...

小辰GG
2017/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux 技巧:让进程在后台可靠运行的几种方法

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断...

mskk
6分钟前
0
0
手把手教你利用Nextcloud搭建个人网盘/私有云盘

越来越多的云盘宣布关闭,百度网盘也时不时8秒和谐视频,分享也会提示侵权被和谐。为了解决这些问题,我们可以搭建一个自己的个人网盘(私有云盘),常用的开源框架包括ownCloud,Seafile,N...

flyzy2005
10分钟前
0
0
Confluence 6 配置时间和日期格式

你可以修改你 Confluence 为用户显示的时期和时间格式。设置的句法使用的是 SimpleDateFormat class,请参考 Java SimpleDateFormat 文档中的内容来设置日期和时间格式。 有下面 3 个时间和日...

honeymose
13分钟前
0
0
php seralize unserialize

关于PHP 序列化(serialize)和反序列化(unserialize)出现错误(Error at offset)的解决办法。 首先我们分析一下为什么会出现这个错误: 编码问题 UTF-8: ANSI: 我发现在我的机器上边编码改...

yeahlife
20分钟前
0
0
七、JSP九大内置对象和四个作用域

九大内置对象: request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。 response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基...

Wakeeee_
23分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
55分钟前
0
0
双向认证-nginx

1、设置容器 docker run -it --name nginx-test2 -v /home/nginx:/apps -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8183:80 -p 7443:443 -d nginx:stable 2、修改nginx配......

hotsmile
56分钟前
0
0
深入了解 Java 自动内存管理机制及性能优化

一图带你看完本文 一、运行时数据区域 首先来看看Java虚拟机所管理的内存包括哪些区域,就像我们要了解一个房子,我们得先知道这个房子大体构造。根据《Java虚拟机规范(Java SE 7 版)》的规...

Java大蜗牛
58分钟前
4
0
SpringBoot | 第六章:常用注解介绍及简单使用

前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志 配置等。这章节开始,开始总结一些关于springboot的综合开发的知识点。由于SpringBoot本身是基于Spring和SpringMvc...

oKong
58分钟前
12
0
云数据库架构演进与实践

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。 微服务,也就是一种面向服务的,有特定边界的松...

巨杉数据库
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部