预约成功
对于一个局外人来说,创建自己的编程语言在我听起来就像是“我要独力制造一架飞机”。但是,三十多岁的van Rossum有着自己的优势。他曾投入三年时间在CWI的一个团队内工作,并曾创建一种解释性编程语言ABC。因此,他已经深入理解到负责执行程序员指令的解释器在构建过程中存在哪些问题,以及新语言需要哪些语法构建单元。
话虽如此,van Rossum当时只能利用有限的编程语言进行项目开发,其中的难度可想而知。他当时正在研究的分布式计算系统只支持C语言或者Unix shell,而这两者都有很大的局限性。C语言不仅要求开发人员努力对付手动管理内存的复杂性,时时注意潜在错误的雷区,还缺少用于日常开发任务的可重用代码库,开发人员不得不重复造轮子。
而Unix shell的问题在于,它的本质是调用命令,而不是真正的语言,运行速度太慢,无法处理复杂的逻辑。考虑到这些语言给开发人员带来的种种限制,对于van Rossum来说,创建自己的解释语言——能够从ABC语言当中直接借用最佳特性——看起来确实是最好的选择。
1989年底,van Rossum开始认真工作,并决定从他最喜爱的喜剧团体“巨蟒与圣杯(Monty Python)”处借用这个名字。尽管单枪匹马创造编程语言听起来好像不太靠谱,但van Rossum同志还是很好地完成了工作。在短短三个月当中,van Rossum就开发出一套Python解释语言的工作原型。他表示这套原型缺少现代功能,但其中已经出现了当前Python所具备的种种特征。
就这样,Python诞生了
Van Rossum于1991年通过alt.sources新闻组向全世界发布了Python语言。这是一份开源许可,而这时距离开源许可这个概念的出现才刚刚过去六年。
根据以往的经验,vanRossum开始关注Python的用户群体,并发现其长期处于增长态势。渐渐地,他意识到相关生态正在建立。在经过一段时间与Python社区的定期互动之后,他意识到自己可能创造了一种有望获得成功的编程语言。
直到二十世纪九十年代早期至中期,Python真正在世界范围内引起广泛关注。它带来的,是清晰明确的语法,其中通过缩进将代码进行分组,并使得开发人员能够更轻松地理解代码含义。
分析公司Gartner应用程序平台战略团队研究主管Fintan Ryan表示,这种清晰性使得Python成功赢得众多开发人员的“芳心”。无论是在当时还是现在,这种利用缩进实现代码分组的做法都非常重要、堪称天才的创举。
Python为什么能杀出重围
首先,Python天生能吸引开发人员,因为它就是为此而生的。在创造Python的过程中,相关人员特意关注了语言易用性和能力之间的平衡,这种平衡正是开发者所期待的。
同时,Python十分易于阅读。它强调可读性和简洁的语法,倡导用更少的代码来表达清晰的想法,它让编程语言与开发人员的“思想交流”变得更加容易。
并且,从早期的版本开始,Python就提供了一系列内置功能,被称为“Battery Included(内置电池)”,拥有极其强大的标准库,这一下子就让它从众多编程语言中脱颖而出。
而这也正得益于Python开放易拓展的属性,整个社区的共同努力让Python越来越强大。
还有一点也非常重要,那就是Python的源代码是很容易维护的。像Perl让人诟病的一点,就是它过于灵活,源代码常常难以阅读,甚至被称作write-only语言。当代码量达到成百上千行的规模,想在Perl中进行维护,就需要大量的纪律约束。
而在Python中就没有这个烦恼,显得尤为优美。说起来,Python毕竟是把编程哲学嵌进灵魂的语言啊。
为什么应该学习Python
数据科学
这是许多人想学习Python的最大原因。学姐身边一些对Java编程等工作感到厌倦的童鞋,由于令人兴奋的工作和高回报,他们正在学习Python来从事数据科学工作。
但是,是什么让Python成为数据科学和机器学习的首选语言?不久之前R语言不是最好的吗?
学姐认为Python提供关于AI、Data Science、机器学习PyBrain,NumPy和PyMySQL的库和框架就是其中一个原因。另一个原因是多样性,Python体验允许你做更多的事情,例如你可以创建脚本来自动化内容,进入Web开发等等。
机器学习
机器学习的发展在过去的几年中是惊人的,它正在迅速改变我们周围的一切。算法日渐复杂,最好的例子是谷歌的搜索算法,它现在可以通过聊天机器人来回答你所期望的答案。
如果你对机器学习感兴趣,想要做一个宠物项目或只是想玩一玩,Python是唯一能让它变得简单的主要编程语言。尽管Java中提供了机器学习库,但你会在Python中发现更多内容,因为开发人员社区更喜欢Python而不是其他任何关于数据科学和机器学习的内容。
网站开发
优质的开发是学习Python的另一个原因。它提供了许多好的库和框架,例如Django(用python语言写的开源web开发框架)和Flask使Web开发变得非常简单。
PHP中需要花费数小时的任务可以在几分钟内完成。Python也被用于网络爬虫,像Reddit这样互联网上的一些流行网站是使用Python构建的。
简单
这是初学者学习Python的最大原因。当你第一次开始编程时,你肯定不希望从具有严格语法和奇怪规则的编程语言开始。Python既可读又简单,它也更容易设置,而不需要处理任何类路径问题,如Java或C++等编译器问题。
强大的社区
除了正式学习Python,你还需要一个社区环境来熟悉磨炼新技术。而Python,因为诸多优点,正聚集着愈来愈多的高手,在学习同时互相切磋提升。你可以在Google上找到相关问题的解决方案,像StackOverflow这样的社区也将许多Python老师聚集在一起,来帮助新手。
库和框架
Python和Java之间的一个相似之处是可以执行任何操作的开源库,框架和模块的数量,它使应用程序开发变得非常容易。
想象一下,不用Java的Spring或Django和Flask创建一个Web应用程序,工作变得简单,因为只需要关注业务逻辑。Python有满足不同需求的众多库,其中,Django和Flask是Web开发中最受欢迎的两个,而NumPy和SciPy等均运用于数据科学。实际上,Python拥有最好的机器学习和数据科学库集合,如TensorFlow,Scikit-Learn,Keras,Pandas等等。
自动化
由于某一次的脚本需求,职图学员A正在使用通过UDP接收消息的应用程序时出现了问题,但并没有在日志中看到消息。A想检查是否在该盒子和端口上接收了任何UDP流量,但却找不到一个方便的UNIX(一种多用户的计算机操作系统)命令来做到这一点。
坐在A旁边的同事正在学习Python,他在短短5分钟内编写了一个实用工具,使用了其中一个Python模块拦截UDP消息。A对他编写这样一个工具所花费的时间印象深刻,但这只也仅仅是在编写脚本、工具和自动化时显示出了Python的功能,Python在各方面具有的自动化强大功能,足以让你侧目。
工作与成长
Python的发展速度非常快,持续时间很长,如果你刚刚开始编程生涯,那么学习一门不断发展的编程语言会很有意义。它不仅可以帮助你快速找到工作,而且还可以加速你的职业发展。对于初学者来说,除了它的简便性,这还是学习Python的最重要原因。
薪水
Python开发人员是收入最高的开发人员之一,特别是在数据科学,机器学习和Web开发方面。平均而言,他们的年薪非常高,几乎从70,000美元起步,150,000美元大有人在,具体取决于操作者的经验和定位。
如果你想知道,掌握了Python可以用来干什么,在这里可以告诉你,Python可以做任何事情。不管是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发、桌面程序开发,或是人工智能、科学计算、图像处理等,Python都可以胜任。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
总结
Python的设计哲学是“优雅”、“明确”、“简单”。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。Python上手容易,语法简单明了,代码可读性强。它有功能强大的系统及第三方库,内置数据结构丰富且易用。所以风靡全球的新秀Python,它到底是个啥?答案只有两个字“便利”。