就编程语言面言,BASIC(“Beginners' All-purpose Symbolic Instruction Code”,即初学者通用符号指令代码)并不是我今天会选择的语言。
当然,在它最初于上世纪 60 年代诞生时,行号和单字符标识符确实是一种进步。
可到了它的全盛时期(我主观认为是在 70 年代末到 80 年代初),开发者已经有了更好的选择,例如 Pascal、Lisp、Forth,甚至是 C。
然而,BASIC 却无处不在!它成为了许多老式计算机的默认界面,比如 Commodore 64。为什么会这样呢?我认为(虽然没有确凿证据),这是因为 BASIC 的设计目标是让任何人都能使用——而不仅仅是那些经验丰富的程序员。
如今,有一种不同的编程语言,有一种语言以历史包袱繁重却深受欢迎而闻名,尤其是在那些不认为自己是程序员的人群中。
这门语言就是 Python——而 Python 就是现代的 BASIC。
回顾 BASIC 的历史
起源背景
BASIC 由达特茅斯学院(Dartmouth College)的约翰·G·克门尼(John G. Kemeny)和托马斯·E·库尔茨(Thomas E. Kurtz)于 1963 年创造(参见《托马斯·E·库尔茨纪念文》。
如果你对其历史感兴趣,可以收听《计算之诞生》播客中有一集关于 BASIC 的内容,这是一档非常精彩的播客节目。
Commodore BASIC
我与 BASIC 的故事始于我使用的第一台电脑——Commodore 64。那台计算机直接启动进入 BASIC 环境。当时我没有意识到,但要运行程序,必须输入 BASIC 代码。换句话说,每个用户其实都是“隐藏的程序员”!我不记得写过比 10 PRINT "HAHA"; 20 GOTO 10 更复杂的程序,但我至少学会了命令和引号的用法。
QBasic
后来,我决定学习如何让计算机“为我所用”,所以必须学习编程。幸运的是,我的 MS-DOS 计算机自带了一个令人惊叹、功能齐全的开发环境——QBasic。没错,BASIC(特别是 QBasic)就是我尝试学习的第一种编程语言。尽管那时我尚未接触到子程序,但至少掌握了条件语句、循环和数组的基础知识。
无论如何,BASIC完成了它的使命——它让我这样一个非程序员,学会了编写一些简单的程序,而没有感到绝望并从此放弃计算机。我想,我算是 BASIC 的一个成功案例吧!
题外话:我最近找到了一盒老式软盘,其中有一张写着我名字的“双密度”软盘,里面存有我 1997 年左右用 QBasic 编写的多个程序。这些代码……质量并不怎么样,毕竟当时我还不知道子程序的存在。
聊回 Python
优点与缺点
说实话,我并不是很喜欢 Python。虽然 Python 有着基于缩进的“优雅”代码块结构,但我个人觉得其语法并不美观(比如格式化字符串、星号运算符的重载、条件位于中间的三元运算符等等)。
此外,Python 在版本更新时打破兼容性的频率也超出了我的预期(甚至容忍度)。而且,尽管 Python 的包生态系统非常广泛,但也因此带来了我对供应链的担忧。
然而,尽管我有这些抱怨,Python 确实有许多吸引人的地方:
● 几乎无处不在。
● 自带“电池”,即一个功能丰富的标准库。
● 简单易用(至少对于日常使用来说是这样)。
Python 远非完美,但在很多情况下,它已经足够好了。
为什么说 Python 是新的 BASIC?
那么,为什么说 Python 是新的 BASIC 呢?答案很简单:因为 Python 已经成为非程序员群体首选的编程语言。它已经达到了“临界质量”(critical mass),可以说 Python 已经赢得了胜利!
当然,这更多只是一种观察而不是原因。实际上,我并不清楚为何人们最初倾向于选择 Python,但如果要我猜,可能是以下几点的综合作用:
● Python 出现的时候,世界正急需一种比 Perl 更美观、更不容易出错的脚本语言。
● Python使用缩进来代替大括号来定义代码块,这一点被大众认为是“优雅”的——虽然我不这么认为,但既然我使用 Lisp,显然我是个异类。
● Python 的标准库中通常包含了你所需要的一切。
● Python对数学友好,因此在物理学、金融等领域研究中站稳了脚跟,从而拓宽了它的生态系统和影响力。
● Python 聪明地借鉴了更复杂语言的便捷功能,同时仍保持了自身的相对简单性。
● Python 从未被某个诉讼缠身的大公司所垄断。
换句话说,这可能是:巧妙的设计、社区管理和偶然性的结合。
证明 Python 统治地位的铁证
尽管我成年后有意避开了 Python,但最近我还是向它妥协了——我用 Python 写了一个个人工具程序。原因很简单:我知道 Python 拥有我需要的一切,而且我相信 Python 的生态系统已足够稳固,能让我写的程序在未来很长时间内都能运行。
所以,如果连我这样一个讨厌 Python 的人都默认使用 Python,那么我认为:Python 就像曾经的 BASIC 一样,已经占领了世界。
最后,我想问大家一句:Python 的统治还会持续多久?
编辑:万能的大雄 参考: https://log.schemescape.com/posts/programming-languages/python-as-a-modern-basic.html
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。