文档章节

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

TKT2016
 TKT2016
发布于 2016/08/10 11:12
字数 620
阅读 146
收藏 1

    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
粉丝 4
博文 2
码字总数 620
作品 2
宿迁
私信 提问
思维被Lisp的语法所绑架

实际上Lisp那就是语法树的文本表示,然而Lisp最不好的就是用大括号,毫无原则的层层包括。我发现很多人自从学了Lisp之后思维反而被绑架了,跳不出这种括号了。而且还天天为括号歌功颂德。 那...

pollex
2014/05/22
425
1
​​​​​​​为什么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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
28分钟前
2
0
centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
6
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部