1994 年末,一群来自美国各地的程序员聚在一起,讨论他们的新式秘密武器。

这是 Python 有史以来的第一次研讨会,有 20 多名开发者参加,Barry Warsaw 是这些与会者当中的一员。他回忆起那些早期 Python 用户的兴奋之情:

我记得有一个人说,“你不要跟别人说我来参加这个研讨会,因为使用 Python 就像拥有了某种竞争优势”。在他们看来,Python 就是他们的秘密武器,不是吗?

在早期的 Python 研讨会上,Warsaw 就曾说过,Python 提供了一些东西,让代码编写变得更加简单,更容易完成编程任务。

他回忆道:“当我第一次接触 Python 时,我就知道它有一些特别之处。Python 的可读性不错,编写 Python 代码变成了一种乐趣”。

如今,人们对 Python 的热情已经远远超出了最初的开发者圈子。一些人预测,随着 Python 用户群的快速增长,它很快会成为世界上最流行的编程语言。每天有数以百万计的人使用 Python,用户群呈现出指数级的增长,几乎没有出现下降的迹象。

不管是专业的还是业余的开发人员,他们都在使用 Python 处理大大小小的任务,特别是 Web 开发人员、数据科学家和系统管理员。今年出现的第一批黑洞图片就是用 Python 拼接出来的。

Python 在一些世界知名的组织中扮演着关键角色,比如,Netflix 用 Python 向全球 1 亿多户家庭提供流媒体视频,Instagram 用 Python 实现图片分享,NASA 借助 Python 来探索太空。最后,如果你的时间不是很紧张,并且又想python快速的提高,最重要的是不怕吃苦,建议你可以扩我伪xin 762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

Python 的早年时期

从某些方面看,Python 的崛起就像那个英国喜剧团体(Python 因这个喜剧团体而得名)一样不寻常。在 Python 自己的领域,这门编程语言也变得越来越出名和越来越有影响力。

Python 原先是荷兰程序员 Guido van Rossum 的一个个人项目。20 世纪 80 年代末,van Rossum 在荷兰国家数学和计算机科学研究中心的 CWI 部门开发分布式系统。由于对已有的编程语言感到十分失望,他决定开发一门新的语言——一门既易于使用功能又强大的语言。

对于外行来说,自己开发一门编程语言就像是“造飞机”一样,但当时 30 多岁的 van Rossum 在某些方面已经很有造诣。他花了三年时间与 CWI 的一个团队合作,一起开发了 ABC(一种解释型编程语言),他知道开发一个可以执行指令的解释器需要些什么,以及一门新的编程语言需要哪些语法构建块。

对于当时的 van Rossum 来说,使用仅有的几种编程语言完成任何一件事情都显得很困难。他正在开发的 Amoeba 分布式计算系统要求他使用 C 语言 或 Unix shell,但这两种语言都有很大的局限性。C 语言要求开发人员自己手动管理内存,容易埋下潜在的 bug,而且还缺少可重用的代码库。开发人员想要完成日常任务,需要在每个新项目中重新发明轮子。Unix shell 存在另外一个问题——它虽然为日常任务提供了一些实用程序,但它们的运行速度太慢,无法处理复杂的逻辑。最后,如果你的时间不是很紧张,并且又想python快速的提高,最重要的是不怕吃苦,建议你可以扩我伪xin 762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

这些语言对开发人员造成的限制如此之大,以至于在 van Rossum 看来,他自己创建的这门解释型语言——从 ABC 语言借用了一些特性——似乎是最好的选择。

van Rossum 回忆道:“我当时在想,为什么不自己开发一门语言呢?我完全可以借鉴 ABC 的一些想法,并将项目的规模缩小一些,把原先需要花三年时间完成的东西缩短至三个月内,让它变成我自己的个人项目。于是,Python 诞生了”。

1989 年末,van Rossum 开始认真地开发这门语言,并借用了他最喜欢的喜剧团体“Monty Python”的名字,又因为与蛇有关系,后来就有了那个盘绕的巨蟒的 logo。

他说:“当时我的社交生活并不丰富。除了看电视就是写代码,有时候也会同时做这两件事”。

虽然名义上 van Rossum 是为了更好地完成日常工作而开发 Python,但他承认他的动力更多的是来自于自己开发一门语言所要面临的挑战。

他说:“当时我也不知道 Python 是否真的会让我的工作变得更有效率。在某种程度上,我真的很喜欢这种可以自己完成一个大项目的想法,并且可以按照我想要的方式来设计和实现。在我看来,编程是件有趣的事情”。

对于一般人而言,自己开发一门编程语言可能是件很不寻常的事情,但像 van Rossum 这样的例子并非独有。在 20 世纪 80 年代末,各种主要编程语言的出现都是因为当时有限的工具无法满足开发者的需求。Larry Wall 曾经说过,他之所以创建 Perl,是因为其他语言很难解决他的问题,而且他是一个“懒惰、不耐烦和狂妄自大”的人。类似地,为了找到可用于构建集成电路交互工具的语言才,John Ousterhout 设计了 Tcl。

三个月之后,van Rossum 做出了可运行的 Python 原型。

他说:“虽然现在的 Python 有很多在当时并不存在的抽象特性,但语言本身仍然始终如一”。

“那时,Python 已经具备了解析器和运行语言所需的基本组件。第一个可运行的 Python 程序放到现在仍然可以运行”。它们的函数定义是一样的,缩进是一样的,字典和元组的创建语法是一样的,交互式提示符也是一样的。

当他的两个同事开始使用这门语言处理日常任务时,van Rossum 并没有指望它会流行起来。因为他知道,在互联网时代到来之前,让一门编程语言流行起来有多么困难。

在今天,只需要点击几下鼠标就可以把一款软件分享给全世界,但在上世纪 80 年代,这是一件非常费力的事情。van Rossum 回忆起当时推广 ABC 遇到的困难:

“我记得大约在 1985 年,我第一次去美国度假。那是我第一次去美国,我的行李箱里装了一沓磁带”。

当时可用的通信方式只有电子邮件,而电子邮件并不适合用来传播源代码。他从电子邮件里拿到了对 ABC 感兴趣的人的地址和电话号码,然后挨家挨户送磁带。尽管他很卖力地给用户送磁带,都没能让 ABC 真正流行起来。

他说:“尽管 ABC 提供了很多优秀的特性,但我们在 ABC 的推广方面并没有取得很大进展”。不过,随着互联网革命进程的演进,Python 的推广工作变得容易得多,他不用再拖着装满磁带的行李箱到处跑了。

1991 年,van Rossum 通过 alt.sources 新闻组向全世界发布了 Python。这在当时基本上算是一种开源许可协议,比”开源许可协议“这个术语本身早了六年出现。虽然当时的 Python 解释器仍然需要将 21 个单独的部分连接成一个压缩文件,并需要连夜从 Usenet 网络上下载下来,但与几年前线下送磁带的方式相比,它仍然要高效得多。最后,如果你的时间不是很紧张,并且又想python快速的提高,最重要的是不怕吃苦,建议你可以扩我伪xin 762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

他说:“我希望 Python 可以取得成功,毕竟之前我做的另一个东西基本上以失败告终”。

van Rossum 说,在很长一段时间之后,他才知道 Python 的用户群在增长。渐渐地,他意识到 Python 的发展势头正在形成,在与 Python 社区进行了一段时间的交流之后,他知道,Python 成功了。

“这个发现来得非常缓慢。在发布了第一个开源版本之后,我制定了一个新的发布周期,并与 Python 社区频繁交流。我们感觉这是一件很了不起的事情”。

Python 为什么会赢

Python 在 20 世纪 90 年代初期到中期开始受到关注,Python 的时代到来了,这让 van Rossum 感到震惊。

van Rossum 相信,被 Python 吸引过来的开发者,他们转向 Python 的原因与他当初创建 Python 的原因是一样的。他们需要一门高级的脚本语言,能够在易用性和功能之间取得平衡。他们希望能够结束在 C 语言中手动管理内存、在开始新项目时需要为重复任务重新实现代码的日子。

Warsaw 说,Python 在可用性和功能之间取得了平衡——在 20 世纪 90 年代早期,任何一门主流编程语言都没能提供这种平衡。”我写过很多 Perl、Tcl 和 C 代码,感觉它们一点都不好玩。Python 一出现,我就想,‘哇,它让编程变得更有趣了’”。

不管是过去还是现在,Python 提供的都是清晰而明确的语法,它使用缩进将代码分组成块,让开发人员更容易阅读和理解代码。

Gartner 公司的研发总监 Fintan Ryan 说,无论是现在还是在上世纪 90 年代,Python 清晰明了的风格都在吸引开发者方面起到了重要作用,尽管通过缩进来达到这种效果在开发者当中存在分歧。”Python 的语法非常简洁。你也可以在其他语言中实现缩进,但 Python 已经自动实现了。有些程序员喜欢这种缩进方式,有些则不喜欢”。

1994 年,Barry Warsaw 在第一次 Python 研讨会上

Python 强调代码的简洁和可读性,这并非偶然。van Rossum 曾公开表示,编程语言不仅要告诉计算机该做什么,还要便于在开发者之间传递思想。

Ryan 说,除了可读性之外,Python 很早就内置了一些通用的功能,这让 Python 从其他语言中脱颖而出。“你从一开始就可以使用某些功能,比如类和异常处理。Python 还提供了对 lambda、map 和 filter 等函数的支持,这些东西在很多情况下都非常有用”。

如果 80 年代末的主流编程语言能够再好一点,或许就不会给 Python 留有机会。van Rossum 开发 Python 的动机之一就是因为 Perl 与他在 CWI 工作时使用的 Amoeba 分布式计算系统不兼容。他说:“Python 的幸运之处在于 Perl 不能被移植到 Amoeba。如果 Perl 可以被移植到 Amoeba,我就不会想要自己去开发一门语言”。

尽管 Python 在发布后吸引了一批铁杆粉丝,但在 20 世纪 90 年代,Python 在编程语言方面仍然处于劣势。van Rossum 说,Python 的竞争对手是 Tcl/Tk 和 Perl,这两种语言的目标与 Python 是一样的,即简单易用且功能强大。

他说:“上世纪 90 年代,在前三大编程语言中,Perl 无疑是第一名,Tcl/Tk 是第二名,而 Python 则是第三”。


http://www.taodudu.cc/news/show-135719.html

相关文章:

  • 适合数据科学小白的必备Python工具! ! !
  • 用Python不回头也能看美女,这招你会了吗?
  • 为什么python会火?看到这个几个与众不同的地方你就懂了!
  • Python正则表达式初识(二)
  • 一篇文章教会你利用Python网络爬虫获取Mikan动漫资源
  • Python基础编程——字典
  • Python基础编程——字典的创建
  • 那些下载不了的视频,Python只用1行代码就能直接下载
  • Python基础编程——多重继承下方法的调用
  • python入门:工欲善其事,必先利其器
  • 懂得了这些才可以说学习Python入门了
  • 零基础 8 周掌握 Python,成为全能人才!
  • 大数据之Python入门语法基础
  • python入门:正则表达式,面向对象编程,零基础视频教程分享
  • 5行Python实现验证码识别,太稳了
  • 【python教程入门学习】自动抢票之 12306 登录篇
  • Python实用小工具了解一下,总有一款是你需要的
  • 为了上班摸鱼,我用Python开发“BOSS来了”
  • 牛批了,1行python代码就可实现炫酷可视化
  • 请问大家如何看待Python?零基础如何学Python?
  • Python爱好者,这里有一个库可以帮助你作为新手掌握人工智能!
  • python如何最适合web开发中的人工智能?
  • 非科班的我如何自学Python在一线城市找到一份15k的offer的?
  • Python杂谈——Python都能干什么呢?
  • 为何python攀上数据科学巅峰?调查显示Python超越R
  • 忘了python关键语句?这份备忘录拯救你的记忆
  • 很多都是python很简单吗,但是要如何才能入门python并精通呢?
  • 50k大牛告诉你Python怎么学,10个特性带你快速了解python
  • 七夕要到了,用Python比心表白
  • 零基础入门学习Python,我与python的第一次亲密接触后的感受!

这还是你所认知的Python吗?原来是这么牛!相关推荐

  1. python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路

    原标题:你所不知道的Python|函数参数的演进之路 函数参数处理机制是Python中一个非常重要的知识点,随着Python的演进,参数处理机制的灵活性和丰富性也在不断增加,使得我们不仅可以写出简化的 ...

  2. 通过共现矩阵和余弦相似度实现机器对单词的认知、python实现

    通过共现矩阵和余弦相似度实现机器对单词的认知.python实现 本文介绍的定义: 一.语料库预处理 二.单词的分布式表示 三.单词的相似度 四.相似单词排序 本文介绍的定义: 语料库.计数方法的目的. ...

  3. python turtle画表情包--牛bi

    翻到了以前用python写的一个画牛逼的表情包,觉得还挺有趣的,自己也一直在用,今天发出来分享给大家,大家还可以在这个基础上自己魔改一下.首先看看效果: 下面是代码: from turtle impo ...

  4. python clicknium 库自动化千牛桌面端

    python clicknium 库自动化千牛桌面端 千牛是阿里巴巴集团卖家工作台,商家经营的必备工具,今天我们使用python来自动化千牛桌面端. clicknium 是基于 python 实现的一 ...

  5. 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...

    作者:Gigi Sayfan 翻译:吴振东 校对:吴金笛 本文约3300字,建议阅读10分钟. 本文将介绍多种Python对象分别所占用的内存,并解释所选择的测量方法和函数,为节省内存提供建议. Py ...

  6. 你所不知道的 Python 冷知识!(建议收藏)

    01. 省略号也是对象 ... 这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写-来得到这玩意. > ...

  7. python可以引流吗_python能干嘛?你所不知道的Python有趣用途(上)

    前言 很多人都觉得Python虽然好学,但却不晓得如何将其应用到生活中,或是只知道Python可以拿来做「数据分析」.「爬虫」.甚至是「人工智慧」,但却觉得那些东西离自己很遥远 (尤其是初学者,经常会 ...

  8. 你所不知道的Python奇技淫巧

    有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写.其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一 ...

  9. 你所了解的python岗位有哪些_Python是最火语言之一,那么他适合做哪些岗位?Python最全岗位!...

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.据统计,现在初级python工程师的起薪一般在10-20K. 现在来为大家解读 ...

最新文章

  1. Python和OpenCV环境配置
  2. shiro认证+授权(使用MD5+salt+散列加密)
  3. 网络的性能指标与分组交换网络
  4. 优酷《追光吧!》正式开播 风度、实力成关键词
  5. 【全网最全的博客美化系列教程】08.自定义地址栏Logo
  6. JAVA的四则运算规则_java四则运算规则
  7. 谁提供一个能用的ICHAT文字聊天室程序,急需
  8. 5个必考的大厂SQL面试题
  9. 微信红包,企业付款到零钱报错:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置 的原因
  10. 计算机主机无法开机故障原因,电脑电源保护无法开机怎么办
  11. 解决OpenOffic不能启动的问题
  12. 小米Max详细刷成开发版开启Root超级权限的经验
  13. 【go1.18】error obtaining VCS status: exit status
  14. Windows 10用户档案无法加载的解决方法
  15. 无源码程序反编译修改文字
  16. PHP实现微信的时间显示方式
  17. strtoupper php 中文,strtoupper回导致中文乱码么
  18. 科技爱好者周刊(第 114 期):U 盘化生存和 Uber-job
  19. [转载]JS和AS交互 作者:ludanlove
  20. 给女朋友明天一条贴心消息【公众号推送】

热门文章

  1. 实操教程|PyTorch AutoGrad C++层实现
  2. 曾经的全国重点大学,如今表现如何?2020年最新排名出炉!
  3. IDEA的这几个调试的骚操作,用了都说爽!
  4. 循环神经网络实现文本情感分类之Pytorch中LSTM和GRU模块使用
  5. Ubuntu 无界面使用selenium chrome + headless
  6. 自动驾驶汽车可用于处理急转弯的 3 种技术
  7. 我靠这份无人机完全指南吹了一整年牛!
  8. 10分钟带你深入理解Transformer原理及实现
  9. 如何在主机win10和虚拟机(virtualbox)中的Ubuntu进行文件传输即共享文件夹的建立
  10. ijkplayer-丢帧策略深入分析