当前位置: 首页 > news >正文

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

    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语言违反了人类人性中对事物多样性的需求而不能成为编程语言中的主流。

 

转载于:https://www.cnblogs.com/tkt2016/p/5755974.html

相关文章:

  • 【leetcode #84 #85】Maximal Rectangle
  • MAC系统下,删除.svn文件
  • NOIP2000进制转换
  • 264. Ugly Number II
  • 黑盒测试用例设计——错误猜测法
  • 初学Java:我为什么来学Java?
  • hdoj5835【水题】
  • Android ScrollView+ViewPager+PullToRefreshListView
  • CF #367 DIV2 E
  • dl标签和table标签
  • sql 分割字符串 存储过程
  • GUI之绘画控制
  • jmc远程监控java服务
  • 制作根文件系统的经验
  • SharePoint UserProfileService 接口列表 注解
  • 345-反转字符串中的元音字母
  • Docker容器管理
  • Effective Java 笔记(一)
  • js正则,这点儿就够用了
  • REST架构的思考
  • 一天一个设计模式之JS实现——适配器模式
  • 《天龙八部3D》Unity技术方案揭秘
  • #FPGA(基础知识)
  • #git 撤消对文件的更改
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (一)基于IDEA的JAVA基础10
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /etc/sudoer文件配置简析
  • @RequestBody与@ResponseBody的使用
  • @test注解_Spring 自定义注解你了解过吗?
  • [ solr入门 ] - 利用solrJ进行检索
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [2018-01-08] Python强化周的第一天
  • [C++]类和对象【上篇】
  • [HTML API]HTMLCollection
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
  • [Interview]Java 面试宝典系列之 Java 多线程
  • [LeetCode] 2.两数相加
  • [leetcode]Search a 2D Matrix @ Python
  • [Linux]----文件操作(复习C语言+文件描述符)
  • [Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作
  • [sqlmap]学习笔记#1
  • [VC++入门]指针一
  • [web前端] yarn和npm命令使用
  • [程序猿感悟] 风雨20年:我所积累的20条编程经验
  • [大模型]大语言模型量化方法对比:GPTQ、GGUF、AWQ
  • [机缘参悟-119] :一个IT人的反思:反者道之动;弱者,道之用 VS 恒者恒强,弱者恒弱的马太效应
  • [架构之路-246]:目标系统 - 设计方法 - 软件工程 - 需求工程- 需求开发:获取、分析、定义、验证
  • [解决方案]sql server复制需要有实际的服务器名称才能连接到服务器
  • [量化投资-学习笔记013]Python+TDengine从零开始搭建量化分析平台-策略回测进阶
  • [数据结构]~栈和队列(0-1)