21世纪是编程的时代,几乎人类所做的一切,但凡跟互联网沾点边,都可能涉及到计算机编程,后台的程序跑出的结果通过大大小小的屏幕呈现在我们面前,人们已经觉得这是理所当然的。
于是有的人就认为,在不远的未来,编程是人人必备的技能。今年11月15日,年过半百的SOHO中国董事长潘石屹在微博上宣布,正式开始学习Python。
但是世界上有99.7%的人不会编程,如果你属于其中一个,那么你估计会觉得程序就像魔法一样,正如一位科幻小说作家写道:“任何足够先进的技术看起来都像是魔法。”
当然,程序并非魔法,然而,它既难懂又复杂,现在科技公司的代码基数以百万行作为单位,无论你在手机上想实现什么功能,程序员第一个想到的就是,这个代码该怎么写?学会编程在这个社会似乎已经如此重要,以至于少儿编程都已经成了培训机构趋之若鹜的新“蓝海”。
但是四、五岁的小孩真的有必要学编程吗?或者说你已经工作了大半辈子、年过半百了,还有必要像潘石屹一样去学python吗?
Python之父Guido van Rossum最近接受了一次访谈,在访谈中他表示:“并非每个人都需要知道(计算机)里面发生了什么。”
Python诞生的初衷:让程序化繁为简
我们可以回顾一下python的诞生,python是以蒙提·派森(Monty Python)的超现实喜剧片命名的,20世纪80年代末,Guido Van Rossum为荷兰国家数学和计算机科学研究中心Centrum Wiskunde&Informatica(CWI)开发分布式系统。因为当时的编程语言存在缺陷,他决定创建一种新的语言——一种更易于使用又功能强大的语言。
“我的初衷就想着,好吧,为什么我不开发一种自己的语言,我可以利用现有的ABC语言,但将开发规模从需要三年完成的大项目缩小到自己可以在三个月内完成的小项目,于是python诞生了。”Van Rossum说到。
让程序化繁为简是python背后哲学的核心,python是一个直译语言而不是编译语言,这意味着程序员可以立即得到他们正在编写的代码的反馈,而不需要在每次修改后花时间重新编译它。
Python是如此的简洁,以至于Van Rossum说:“在python中,你键入的每个符号都是必需的。”
尽管JavaScript在全球25亿部Android手机上运行着,但是对于通用编程和教育,python已经成为默认标准。
“在python中,有一大堆常见的编程任务是很容易的,”Van Rossum说。“对于那些还不是程序员的人来说,想成为一名程序员,python这样的语言可以让他们更容易达成目标。”事实上,许多院校的计算机科学专业正在从Java转向python,因为对于初学者来说,掌握python要容易得多。
起初的想法是让每个人都会编程
在发明python前后很长一段时间里,Guido van Rossum坚持的想法是要让每个人都会编程,所以他要将语言设计的更加简洁和易懂。
这也是Guido van Rossum发明python的出发点之一,将程序员的时间成本在语言中进行考虑,这使得python在传播的过程中流露出一种社会哲学。
Van Rossum在和别人谈论python时非常支持一个观点,那就是多花一点时间,让你的代码在将来更容易被别人理解。
通过高质量的工作来表达你对他人和他们时间的尊重,这是Van Rossum默默地在世界上传播的一种精神。“你编写代码主要是为了与其他程序员交流,在一定程度上,也是为了将你的意志强加给计算机。”他说。
Van Rossum在20年前发起了一个短暂的项目——CP4E (Computer Programming for Everybody,每个人的计算机编程),如今这个目标伴随着python的传播产生的已经几乎达到了。
“我通常不是一个非常有远见的思想家,人们总是问我,python的下一步是什么,我从来不知道,但我那时候似乎戴上了最有远见的帽子——认为每个人都应该学习编程。”个人计算机已经存在了20年,但它们大多数只是被当成美化了的打字机和计算器。
Van Rossum问道:“这些人都有电脑,却很少有人学习编程,这难道不疯狂吗?”
从那以后,他一直致力于通过python的改进使编程更容易学习和更容易上手,现在是3.7版本,python也成为了世界上最流行和使用人数最多的几种语言之一。
“计算机只有有用的东西,并非每个人都要知道里面发生了什么”
尽管Van Rossum仍然认为编程是非常有价值的技能,比如解决问题、遵循目标的方向、理解方向的含义等等,但是他也发现,“有些编程入门对孩子们来说很有趣,但并不是所有的孩子都觉得有趣,我不认为应该把它作为课程的必修部分。”
与此同时,由于软件的发展,尤其是互联网软件的发展,人们对计算机编程的需求也减少了,这些软件可以让你直观地完成过去需要编程才能完成的工作。
“我不太确定这个项目是否还需要继续了,”Van Rossum在谈到CP4E时说,“我认为计算机现在已经做到了这一点,计算机只是有用的东西,不是每个人都需要知道里面发生了什么。”
Python正成为业余人员的最爱
尽管Van Rossum已经放弃了CP4E这个项目,但是python本身正在为很多非专业编程的人员提供了编程的机会。
越来越多的人在各种领域使用python,Van Rossum说:“目前关于python意外成功的流行理论认为,在某种程度上,python已经进入了数据科学、机器学习和一般的科学数据处理领域,对每个人来说,像他们的同事和竞争对手一样使用相同的语言而不是尝试不同的东西,会显得相对容易一些。”尽管一开始它只是专业程序员的工具,Van Rossum说,“python现在也是业余爱好者的语言,我的意思是这也是最好的方式。”
一个成功的开源软件项目,比如python,对于初学者来说必须易于学习,这个python做到了;但是对于更高级的用户想要解决的现实世界的问题,也必须有实际的应用。
对于初学者来说,都希望事情简单,所以他们所有的大脑都用来学习编程环境的复杂性,而对于高级用户来说,他们更需要能帮助他们应付一些相互联系的抽象功能的复杂性。
“如果你用python编写一个原型,然后让它工作,通常这不是很难的事情,”Van Rossum说,“然后你可以扔掉第一次写的程序,根据你所学到的东西再写一次同样的东西,你仍然可以用python编写,但第二个版本会比第一个版本好得多。”
因此,python长久的吸引力还来自于这可以从头开始的乐观。“如果你在编写和调试代码方面投入了更多的时间,那么你就不会那么敢于抛弃一切重新开始。”Van Rossum说。
从刚开始想让每个人都学会编程,到后来认识到并非所有人都要学编程,Van Rossum自己也没预料到python最终却成为了业余爱好者的最爱,也就是说,既不是人人都会,也不拒人于千里之外,对不想学的人来说,当然可以不学,而对于想尝试的人来说,用python入门则再好不过。
在访谈最后提及他的30年python之旅的感悟,Van Rossum也表示:“你不会总是得到你最初所追求的结果,但也许你得到的结果是一样好的、甚至更好。”