先感谢 Cliffu 给出的链接,我跑去看了下原文,看来还是有一些味道是翻译不过来的,看了原文更 能感受到作者的意思。

我在看了这章后,很有感慨。我很同意作者的观点就是我想要的编程语言是一种能让我快速简单地开发 出我想开发的软件的语言。在我不在研究编程和编程语言本身的时候,使用编程语言编程只是我想开发 出一个实现我想法的程序的一个步骤而已,我的真正在乎目标是实现一个程序,那个程序完成了我的 想法中的功能,而不管使用那种语言,它只是完成我目标的一个过程,一种工具。但是不同的语言之间 还是有很大差别的。我学的第一门编程语言是C语言,C语言给我的认识是内核很小的语言,语言本身的 特性很小,我很喜欢C语言,因为我学会了,而我应该再也不会忘记C语言了。但是C语言本身的标准库 却是非常有限的,当你需要什么功能时,要不然自己实现,要不然就去找第三方库去吧,使用起来很不 方便(在想完成自己的一些项目时)。而后面我接触了Python,我的感觉是:卧槽,这语言用起来也 太爽了吧,自带的标准库功能就非常强大了,而且还有很多使用起来非常方便的第三方库。使用Python, 我总能比较迅速的实现一个我想要的程序,而这才是我想要的。而效率是我关心的重点吗?其实很多时候 并不是,我能接受Python版程序带来的一些性能损失和运行时间变长。

作者也说了,即使计算机的硬件性能增长,带来的性能提升很大可能也会被浪费掉。计算机上的一层 一层的抽象,每一层都在消耗着性能,但是我们还是乐此不疲地添加着一层一层的抽象层,因为每 多做一层抽象,我们就能更方便更直观更直接的解决我们遇到的问题,而不用再在思考着高层次的问题 的时候还要考虑着底层的实现细节。这肯定会带来性能损失的,是waste,不过这个是一种good waste, 因为这些抽象让我们可以以更加简洁的方式来解决问题。那么在一层一层的抽象层之上我们的程序在 从底层的视角来看,是非常低效的,浪费了很多的性能;但是在高层的视角来看,我们简洁明了地解决 了问题,而不是花费了很多的时间浪费在了与我们的目标问题无关的其他实现细节上。这样实现出来的 软件,可能效率低下,却并不是烂的。

我认为作者的编程思维是浪费机器时间而节省程序员的时间。因为即使摩尔定律不成立了,机器计算 速度的增长肯定也是会比程序员开发时间的增多来的更加便宜的,那么我们就没有必要为了我们现在 明显可以进行“浪费”的算力而花费大量开发时间来换取不划算的运行效率。

对于未来的编程语言,我的看法是声明式编程(Declarative programming)会变得更流行,虽然 在底层我认为肯定还是使用命令式编程实现的,但是在不断增加的抽象层之上,最终应用层会使用声明 式编程,我们只需要告诉电脑要做什么就可以了,至于怎么做就不用应用层程序员操心了。