寻找高阶语言

1.

理论上,软件开发应该是一种有趣的智力游戏,以洞察、归纳、协调各种逻辑作为内容的游戏。

但现实中,编程却并不总是令人愉悦的事情。抛开社会性的因素,很多问题都源于我们使用的工具一直过于原始。

原始的工具使得我们需要过多地关注细节,过多地在意细节使得思维的层次降低,表达变得没有效率,无法胜任更复杂的逻辑。

这就是一切的开始,寻找更高层次的工具,才能处理更高层次的事情。

 

2.

从历史来看,这种趋势其实是很清晰的:

汇编语言:不需要记机器码,以抽象的指令为基础编程。

高级语言:不需要关心cpu指令和寄存器分配,以抽象的变量为基础编程。

操作系统:托管了任务调度、内存分配、文件系统等,在抽象的平台之上编程。

虚拟机:托管了内存空间的使用,以抽象的对象为基础编程。

函数/流程控制语句:相比goto,提供更高层次的流程描述方式。

面向对象:相比全局函数+分支流程,提供更高层次的描述局部差异的方式。

dsl(正则表达式、sql):提供更高层次的描述特定领域逻辑的方式。

 

这些变革已经如此地深入人心,是因为可以让我们在更高的层次思考。

设想一下一种语言不支持正则表达式,或者不支持for/while,相信抓狂的人不会占少数。

除非有很高的收益(如执行效率),没有人会想回到过去。

相比之下,动态语言、函数式语言等,有些使得代码更加简洁,有些使得某些需求的实现更为简单。

但总体而言,并没有使思维层次得到提高,所以仍无法和上述相比。

 

3.

我寻找的,是下一个能与之相比的内容。

今天,硬件和平台的发展速度要远远高于语言的发展速度。

从面向对象以来,编程语言一直没有本质的发展,这是很离奇的现象。

 

这是一个计划的开始,

计划中可能会借鉴:历史、相关学科的积淀、主流语言的细节、成熟的开发环境,

靠谱或不靠谱地畅想对逻辑描述/开发环境的改进。

 

希望能够坚持。

posted @ 2011-06-12 10:15  bellscape  阅读(206)  评论(0)    收藏  举报