加载中 ...

Python的简史:一切都以仇恨花括号

2019-07-10 16:57:35 来源:沈阳小程序开发 作者:沈阳软件开发

开头 1991年,荷兰人Guido van Rossum不喜欢花括号,所以他发明了Python。语法选择的灵感来自Monty Python和Flying Circus。

现在,Python已经成为一种简单,优雅且易于使用的编程语言,比历史上的所有编程语言都更受欢迎。

回顾Python的历史,您可以看到Python设计的初衷,了解其成功的背景,并了解编程语言的演变历史。与此同时,您还可以看到Python与开源运动之间的精彩联系,以及开源开发的想法和成就的一瞥。

原点

Python的作者Guido von Rossum是荷兰人。 1982年,Guido在阿姆斯特丹大学获得数学和计算机科学硕士学位。然而,虽然他是一名数学家,但他喜欢电脑的乐趣。用他的话来说,尽管他具有数学和计算机科学的双重资格,但他倾向于从事与计算机相关的工作,并且热衷于从事任何与编程相关的工作。

那时,Guido联系并使用了Pascal,C,Fortran等语言。这些语言的基本设计原则是使机器运行得更快。在20世纪80年代,虽然IBM和Apple掀起了一波个人电脑,但这些个人电脑的配置却很低。例如,在早期的Macintosh中,只有8MHz的CPU时钟速度和128KB的RAM,一个大型阵列可以填满内存。所有编译器的核心都经过优化,以使程序运行。为了提高效率,语言还迫使程序员像计算机一样思考,以编写更符合机器品味的程序。在那个时代,程序员想要挤压每一寸电脑的能力。有些人甚至认为C指针浪费了记忆力。至于动态类型,自动内存管理,面向对象.不要考虑它,它会让你的电脑瘫痪。

这种编程方法让Guido感到苦恼。 Guido知道如何用C编写函数,但整个编写过程需要花费很多时间,即使他已经准确地知道如何实现它。他的另一个选择就是炮弹。 Bourne Shell长期以来一直是UNIX系统的解释器。 UNIX管理员经常使用shell为某些系统维护任务编写简单脚本,例如定期备份,文件系统管理等。 shell可以连接UNIX下的许多功能,如胶水。 C语言中的许多程序有数百行可以在shell中的几行中完成。但是,shell的本质是调用命令。它不是一种真正的语言。例如,shell没有数字数据类型,并且添加很复杂。总之,shell无法充分调动计算机的功能。

Guido想要一种语言,就像C语言一样,可以完全调用计算机的功能界面,并且可以像shell一样轻松编程。 ABC语言让Guido看到了希望。 ABC由荷兰数学与计算机研究所开发。 Guido在该研究所工作,并参与ABC语言的开发。 ABC语言用于教学目的。与当时的大多数语言不同,ABC语言的目标是“让用户感觉更好”。 ABC语言希望使语言易于阅读,易于使用,易于记忆,易于学习,并激发人们对学习编程的兴趣。例如,这是来自维基百科的ABC程序,用于计算文本中出现的单词总数:

如何返回单词文件:

PUT {} IN collection

FOR IN IN IN文件:

对于单词分割线:

IF word not.in collection:

INSERT word IN集合

返回收藏

HOW TO用于定义函数。 Python程序员应该能够非常容易地理解这个程序。 ABC语言使用冒号和缩进来表示块。最后没有分号。 for和if结构中也没有括号()。赋值使用PUT而不是更常见的等号。这些更改使ABC程序读起来像一段文字。

尽管具有良好的可读性和易用性,但ABC语言并未最终流行。当时,ABC语言编译器需要一台相对高调的计算机才能运行。这些计算机的用户通常精通计算机,他们更关心程序的效率而不是学习的难度。除了硬件困难之外,ABC语言的设计还存在一些致命的问题:

可扩展性差。 ABC语言不是模块化语言。如果要为ABC语言添加功能,例如支持图形,则必须更改很多地方。

无法直接执行IO。 ABC语言无法直接操作文件系统。虽然您可以通过文本流导入数据,但ABC无法直接读取和写入文件。输入和输出的难度对计算机语言来说是致命的。你能想象一辆无法开门的跑车吗?

过度创新。 ABC使用自然语言来表达程序的含义,例如上述程序中的HOW TO。然而,对于程序员来说,他们更习惯于使用函数或定义来定义函数。同样,程序员更习惯于使用等号分配变量。尽管ABC语言非常特殊,但学习起来非常困难。

沟通困难。 ABC编译器很大,必须保存在磁带上。在Guido访问时,他必须有一个大磁带来为其他人安装ABC编译器。这样,ABC语言很难快速传播。

1989年,为了发送圣诞假期,Guido开始为Python语言编写编译器。 Python的名字来自Guido最喜欢的电视连续剧Monty Python的Flying Circus。他希望这种名为Python的新语言符合他的理想:在C和shell之间创建一个功能齐全,易于学习和可扩展的语言。作为语言设计爱好者,Guido已经尝试设计一种语言。这一次,它只是一种纯粹的黑客行为。

语言的诞生

1991年,第一个Python编译器诞生了。它以C语言实现,可以用C语言调用库文件。从诞生开始,Python就具有:类,函数,异常处理,核心数据类型,包括表和字典,以及基于模块的扩展系统。

许多Python语法来自C语言,但它受ABC语言的强烈影响。 ABC语言的一些规定今天仍然存在争议,例如强制缩进。但是这些语法规则使Python易于阅读。另一方面,Python的聪明选择遵循一些约定,尤其是C语言约定,例如回归等于赋值。 Guido认为,如果在“常识”上建立某种东西,就没有必要过度纠缠。

Python从一开始就对可扩展性特别感兴趣。 Python可以在多个级别进行扩展。从较高级别,您可以直接导入.py文件。在底部,您可以引用C库。 Python程序员可以在Python中快速编写.py文件作为扩展模块。但是,当性能是一个需要考虑的重要因素时,Python程序员可以更深入地了解底层的C语言程序,并将它们编译成.so文件,以便在Python中使用。 Python就像使用钢结构建筑,首先指定一个大框架。程序员可以在这个框架下自由扩展或改变。

最初的Python完全由Guido自己开发。 Python很受Guido同事的欢迎。他们很快回应了评论,并参与了对Python的改进。 Guido和我的一些同事组成了Python的核心团队。他们把大部分业余时间都用在黑客上。随后,Python扩展到了研究所之外。 Python隐藏了机器级别的许多细节,并将其交给编译器进行处理,突出了编程思维的逻辑层次。 Python程序员可以花费更多时间来考虑程序的逻辑而不是具体的实现细节。这个功能吸引了大量的程序员。 Python已经变得流行。

是时候创造一个英雄了

我们不得不暂停Python时间,看看快速变化的计算机行业。在20世纪90年代初,个人电脑开始进入普通家庭。英特尔发布了OA系统

ad.jpg

Windows 486处理器发布了一系列从窗口3.0开始的窗口系统。计算机的性能大大提高。程序员开始关注计算机的易用性,例如图形界面。

由于计算机性能的提高,软件的世界也开始发生变化。硬件足以满足许多个人计算机的需求。硬件供应商甚至渴望出现高需求的软件来驱动硬件更新。 C ++和Java已经变得流行。 C ++和Java提供了面向对象的编程范例,以及丰富的对象库。以某种性能为代价,C ++和Java大大提高了程序的吞吐量。语言的易用性已被提到一个新的水平。我们仍然记得ABC失败的一个重要原因是硬件的性能限制。在这方面,Python比ABC更幸运。

另一个安静的变化是互联网。在20世纪90年代,它是个人电脑的时代。 Windows和英特尔挟PC使这个世界成为一个盛大的场合。虽然基于互联网的信息革命尚未到来,但许多程序员和有经验的计算机用户经常使用互联网进行通信,例如使用电子邮件和新闻组。互联网大大降低了信息交换的成本。一个新的软件开发模型已经变得流行:开源。程序员在业余时间使用软件开发并且是开源的。 1991年,Linus在comp.os.minix新闻组上发布了Linux内核源代码,吸引了大量黑客。 Linux和GNU一起工作,形成一个动态的开源平台。

硬件性能不是瓶颈,Python易于使用,因此很多人都在转向Python。 Guido维护着一个maillist,Python用户通过电子邮件进行通信。 Python用户来自许多领域,具有不同的背景,并且对Python有不同的需求。 Python相当开放且易于扩展,因此当用户对现有功能不满意时,可以轻松扩展或转换Python。然后,这些用户将更改发送到Guido,Guido决定是否向Python或标准库添加新功能。如果代码可以合并到Python本身或标准库中,这将是一个巨大的荣誉。由于圭多的最高决定,他被称为“终身仁慈的独裁者”。

Python被称为“包含电池”,这意味着它与其标准库一样强大。这些是整个社区的贡献。 Python开发人员来自不同的领域,他们将不同领域的优势带给Python。例如,Python标准库中的正则表达式引用Perl,而lambda,map,filter和reduce等函数引用Lisp。 Python本身的一些功能以及大多数标准库都来自社区。 Python社区正在扩展,并拥有自己的新闻组,网站和基金。从Python 2.0开始,Python也从maillist开发方法演变为完全开源的开发方法。社区氛围已经形成,整个社区共享工作,Python也实现了更快的发展。

到目前为止,已经建立了Python框架。 Python语言以对象为核心组织代码,支持多种编程范例,并使用动态类型自动执行内存回收。 Python支持解释运行并可以调用C库进行扩展。 Python有一个强大的标准库。由于标准库系统已经稳定,Python生态系统已经开始扩展到第三方软件包。这些软件包,如Django,web.py,wxpython,numpy,matplotlib和PIL,将Python升级为物种丰富的热带雨林。

启示

Python美观,清晰,简单,是一种优秀且广泛使用的语言。 Python在TIOBE排名中排名第八。它是谷歌的第三大开发语言,Dropbox的基本语言和Douban的服务器语言。 Python的历史可以作为代表,给我很多灵感。

社区在Python的开发中发挥了重要作用。 Guido认为他不是一名多才多艺的程序员,所以他只负责框架的开发。如果问题太复杂,他会选择四处走动,这就是拐角处。这些问题最终由社区中的其他人解决。社区的人才非常丰富。即使您创建网站并从开发中筹集资金,有些人也愿意处理它。今天的项目开发变得越来越复杂,而且越来越大。合作和开放思维是项目最终成功的关键。

Python已经从其他语言中学到了很多东西,无论是已经在历史中的ABC,还是仍在使用的C和Perl,以及许多其他未列出的语言。可以说Python的成功代表了它借用的所有语言的成功。同样,Ruby使用Python,它的成功也代表了Python成功的一些方面。每种语言都是混合型,它有其优秀的地方,但也有各种各样的缺陷。同时,语言“好与坏”的判断通常受到平台,硬件和时间等外部原因的影响。程序员经历过许多语言纠纷。事实上,接受每种语言的开放思想,也许有一天,程序员可以像Guido一样混合自己的语言。

汇海 Technology是领先的综合性软件和信息服务公司,为客户提供从软件开发到营销和推广的互联网解决方案,旨在成为业界领先的全链信息技术服务提供商。公司与中国移动,平安银行,南方数字,北大青鸟,西门子等行业巨头进行了全面深入的战略合作。深入涉足汽车,金融,电子商务,农业,教育等重点行业,不断开拓全国市场,为客户提供全方位的连锁服务。优质,高效,技术服务,综合优势和行业特色。武汉哪家公司做网站?武汉哪家公司做网站?哪家公司是网站?武汉着名的网站建设公司?武汉的武汉网站生产企业有哪些?武汉网站外包?武汉有哪些可靠的软件开发公司?武汉有哪些更好的app开发,微信开发和系统开发公司?如果您有这样的需求,请联系汇海技术,财富热线:027-86633307,我们将以专业的服务态度做到每一个需要,这是我们的目标,使每一个需要到极致!

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。