计算机语言的发展, 是一个相当有趣的进程, 有着相当复杂的时代和环境, 以及硬件条件的影响. 我今天所谈的, 以一家之言, 总结一些规律.
这个时代里面, 一种原始的语言出现了, 这个语言原始到实际上并不能称之为语言, 汇编时代. 每一条语句, 无非是和机器语言的一一对应, 提供的服务不过是让程序员的01生活稍微有了一点点改善. 我想, 当时的从无到有, 还是很让程序员们振奋鼓舞的, 虽然谁也没有预料到后来的事情.
但是, 这一小小一步, 已经为后来的辉煌揭开了序幕.
在此之前, 只有一个可怜的全局变量, 全局函数的概念, cpu里面的那几个灵魂似的寄存器, 在程序员眼里, 恐怕也就是一个全局变量. 内存,只是一个简单的扩展,保存一些状态而已.
函数的出现, 参数和局部变量, 把内存创造性的赋予了一个新的含义. 这下, 结构化语言, 递归的概念, 就水到渠成了.
函数式语言, 是对机器语言的第一次抽象, 革命性的发展了生产力. 从此, 代码被划分为一个个独立的块, 组织起来, 进行协作. 把过去的那种无数的jmp, 组织起来的令人疯狂的, 面条式的结构, 终结掉了. ..
坦白而言, 函数式语言, 在时间和空间上, 有很大的牺牲. 在那个原始时代的很多变态的技巧, 再也不合适了. 但是, 这种牺牲是值得的, 因为计算机的硬件水平已经大大发展, 比之从前的捉襟见肘, 已经略有改善, 另一方面, 软件的规模, 也对代码的组织, 有了更大的要求. 需要一种科学的方式, 来组织代码, 函数式的代码, 正是人心所向.
记得学编译的时候, 曾经提及Fortran语言, 一个古老语言. 说是函数式的, 不过, 只支持全局变量. 应该是历史上第一次看到静态语言这个词....
- 汇编时代(机器语言时代): 大约四五十年代, 一切还处于原始社会. 这个时代的人是很痛苦的, 甚至没有程序员和软件的概念, 相干啥都得自己写. 整个是小农经济时代的一种自得其乐.
这个时代里面, 一种原始的语言出现了, 这个语言原始到实际上并不能称之为语言, 汇编时代. 每一条语句, 无非是和机器语言的一一对应, 提供的服务不过是让程序员的01生活稍微有了一点点改善. 我想, 当时的从无到有, 还是很让程序员们振奋鼓舞的, 虽然谁也没有预料到后来的事情.
但是, 这一小小一步, 已经为后来的辉煌揭开了序幕.
- 函数语言时代:时间转眼到了六七十年代,人们为了让自己生活的更加没有,做了无数的努力,经过几十年的积累,计算机语言时代到来了,几乎所有现代化的概念, 都在这个时代爆发出来.这是一个令人振奋的时代,也是一个很打击后辈们信心的历史.比如我们现在很火的动态语言,GC,都在那些博士论文里面,白纸黑字,掷地有声,历历在目. 还有那些基本组成部分, 结构化语言, 函数.....整个计算机语言大厦就此耸立..
在此之前, 只有一个可怜的全局变量, 全局函数的概念, cpu里面的那几个灵魂似的寄存器, 在程序员眼里, 恐怕也就是一个全局变量. 内存,只是一个简单的扩展,保存一些状态而已.
函数的出现, 参数和局部变量, 把内存创造性的赋予了一个新的含义. 这下, 结构化语言, 递归的概念, 就水到渠成了.
函数式语言, 是对机器语言的第一次抽象, 革命性的发展了生产力. 从此, 代码被划分为一个个独立的块, 组织起来, 进行协作. 把过去的那种无数的jmp, 组织起来的令人疯狂的, 面条式的结构, 终结掉了. ..
坦白而言, 函数式语言, 在时间和空间上, 有很大的牺牲. 在那个原始时代的很多变态的技巧, 再也不合适了. 但是, 这种牺牲是值得的, 因为计算机的硬件水平已经大大发展, 比之从前的捉襟见肘, 已经略有改善, 另一方面, 软件的规模, 也对代码的组织, 有了更大的要求. 需要一种科学的方式, 来组织代码, 函数式的代码, 正是人心所向.
记得学编译的时候, 曾经提及Fortran语言, 一个古老语言. 说是函数式的, 不过, 只支持全局变量. 应该是历史上第一次看到静态语言这个词....