认识Python

目录

written by 晴天小雨
文中涉及的内容若侵权,请联系本文作者删除!

前言

        Python诞生于1991年,从一开始的被冷待到被推上了风口浪尖,足足花了27年的时间,根据2018年7月份的TIOBE的语言排名榜显示,Python已跃居第4位,也可见其如今的地位日益凸显。

TIOBE Index for July 2018

Jul 2018Jul 2017ChangeProgramming LanguageRatingsChange
11Java16.139%+2.37%
22C14.662%+7.34%
33C++7.615%+2.04%
44Python6.361%+2.82%
57changeVisual Basic .NET4.247%+1.20%
65changeC#3.795%+0.28%
76changePHP2.832%-0.26%
88JavaScript2.831%+0.22%
9-changeSQL2.334%+2.33%
1018changeObjective-C1.453%-0.44%

        如果你不知道Python的一些起源,你就不知道为什么Python那么简单易学但又困难重重?如果你不知道Python的一些历史,你就不知道为什么Python会那么火,以及为什么会成为科学计算和人工智能的推荐语言。
        无论学习什么语言,个人认为,了解它的起源和历史,可以很好地帮助我们了解语言规则和设计的最初灵感,可以了解作者的初衷以及为什么要那样去设计等等。
        今天,请跟随我的脚步,引你进入Python的世界,那是一个很奇妙的魔法般的世界。

作者简介

这里写图片描述

英文名Guido van Rossum
中文外号龟叔
国 籍荷兰
出生地荷兰
出生日期1956-01-31
毕业院校阿姆斯特丹大学
学历数学和计算机硕士学位
主要成就发明 Python 语言
任职公司DropBox
擅长语言Pascal、C、Fortran、shell、ABC、Python等

Python诞生背景

在80年代,电脑的配置很低。

        比如早期的Macintosh,只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存。所有的编译器的核心是做优化,以便让程序能够运行。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。有人甚至认为C语言的指针是在浪费内存。至于动态类型,内存自动管理,面向对象……别想了,那会让你的电脑陷入瘫痪。

这种编程方式让Guido感到苦恼。

        Guido知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间,即使他已经对如何实现了如指掌。
偶然的机会,Guido接触到shell,发现shell可以像胶水一样,将UNIX下的许多功能连接在一起。许多C语言下上百行的程序,在shell下只用几行就可以完成。然而,shell的本质是调用命令,最致命的是shell没有数值型的数据类型,加法运算都可以变得复杂,更别谈全面调用计算机的功能。
        于是,Guido又花了一段时间去查找和研究,会不会有一种语言,像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程?

ABC语言让Guido看到希望

        ABC是由荷兰的数学和计算机研究所开发的。Guido在该研究所工作,并参与到ABC语言的开发。ABC语言以教学为目的。与当时的大部分语言不同,ABC语言的目标是“让用户感觉更好”。ABC语言希望让语言变得容易阅读,容易使用,容易记忆,容易学习,并以此来激发人们学习编程的兴趣。比如下面是一段来自Wikipedia的ABC程序,这个程序用于统计文本中出现的词的总数:

  HOW TO RETURN words document:
      PUT {} IN collection
      FOR line IN document:
         FOR word IN split line:
            IF word not.in collection:
               INSERT word IN collection
      RETURN collection
  • ABC语言使用HOW TO用于定义一个函数。
    冒号和缩进来表示程序块
    行尾没有分号
    for和if结构中也没有括号()
    赋值采用的是PUT,而不是更常见的等号
    (是不是很像Python?)

        但因当时ABC语言编译器保存困难、对电脑的配置比较高、扩展性差且无法输入和输出,最终没有流行起来,尽管已经具备了良好的可读性和易用性。

1989年的圣诞节

        1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,Python诞生了

        1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
        Python语法很多来自C,但又受到ABC语言的强烈影响。来自ABC语言的一些规定直到今天还富有争议,比如强制缩进。但这些语法规定让Python容易读。
        另一方面,Python聪明的选择服从一些惯例,特别是C语言的惯例,比如回归等号赋值。Guido认为,如果“常识”上确立的东西,没有必要过度纠结。
        Python从一开始就特别在意可拓展性。Python可以在多个层次上拓展。从高层上,你可以直接引入.py文件。在底层,你可以引用C语言的库。
        最初的Python完全由Guido本人开发。Python得到Guido同事的欢迎。他们迅速的反馈使用意见,并参与到Python的改进。Guido和一些同事构成
        Python的核心团队。他们将自己大部分的业余时间用于hack Python。随后,Python拓展到研究所之外。Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节。这一特征吸引了广大的程序员。Python开始流行。

时势造英雄

硬件提升

        1990年代初,个人计算机开始进入普通家庭。Intel发布了486处理器,windows发布window3.0开始的一系列视窗系统。计算机的性能大大提高。程序员开始关注计算机的易用性,比如图形化界面。C++和Java相继流行。C++和Java提供了面向对象的编程范式,以及丰富的对象库。在牺牲了一定的性能的代价下,C++和Java大大提高了程序的产量。语言的易用性被提到一个新的高度。ABC失败的一个重要原因是硬件的性能限制。从这方面说,Python要比ABC幸运许多。

Internet萌芽

        1990年代还是个人电脑的时代,windows和Intel挟PC以令天下,盛极一时。尽管Internet为主体的信息革命尚未到来,但许多程序员以及资深计算机用户已经在频繁使用Internet进行交流,比如使用email和newsgroup。Internet让信息交流成本大大下降。一种新的软件开发模式开始流行:开源。程序员利用业余时间进行软件开发,并开放源代码。

开源

        1991年,Linus在comp.os.minix新闻组上发布了Linux内核源代码,吸引大批hacker的加入。Linux和GNU相互合作,最终构成了一个充满活力的开源平台。Python相当的开放,又容易拓展,所以当用户不满足于现有功能,很容易对Python进行拓展或改造。随后,这些用户将改动发给Guido,并由Guido决定是否将新的特征加入到Python或者标准库中。如果代码能被纳入Python自身或者标准库,这将是极大的荣誉。由于Guido至高无上的决定权,他因此被称为“终身的仁慈独裁者”。Python被称为“Battery Included”,是说它以及其标准库的功能强大。这些是整个社区的贡献。
        Python的开发者来自不同领域,他们将不同领域的优点带给Python。比如Python标准库中的正则表达是参考Perl,而lambda,map,filter,reduce等函数参考了Lisp。Python本身的一些功能以及大部分的标准库来自于社区。Python的社区不断扩大,进而拥有了自己的newsgroup,网站,以及基金。从Python2.0开始,Python也从maillist的开发方式,转为完全开源的开发方式。社区气氛已经形成,工作被整个社区分担,Python也获得了更加高速的发展。
        到今天,Python的框架已经确立。Python语言以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收。Python支持解释运行,并能调用C库进行拓展。Python有强大的标准库。由于标准库的体系已经稳定,所以Python的生态系统开始拓展到第三方包。这些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,将Python升级成了物种丰富的热带雨林。

启示

Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

        Python从其他语言中学到了很多,无论是已经进入历史的ABC,还是依然在使用的C和Perl,以及许多没有列出的其他语言。可以说,Python的成功代表了它所有借鉴的语言的成功。同样,Ruby借鉴了Python,它的成功也代表了Python某些方面的成功。每个语言都是混合体,都有它优秀的地方,但也有各种各样的缺陷。同时,一个语言“好与不好”的评判,往往受制于平台、硬件、时代等等外部原因。程序员经历过许多语言之争。其实,以开放的心态来接受各个语言,说不定哪一天,你也可以像Guido那样,混合出自己的语言。

小结

  1. Python的第一个字母大写(如果你写成python,别人一看就知道你不是专业的)。
  2. Python的意思是蟒蛇,源于作者喜欢的一部电视剧(Monty
    Python’s Flying Circus)。 • Python的作者是Guido van Rossum(龟叔)。

  3. 由于Guido至高无上的决定权,Guido被称为“终身的仁慈独裁者”。

  4. Python被称为“Battery Included”,是说它以及其标准库的功能强大。
  5. Python是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C编写的一个编程语言。
  6. Python正式诞生于1991年。
  7. Python的解释器如今有多个语言实现,常用的是CPython(官方版本的C语言实现),其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译)。
  8. Python目前有两个版本,Python2和Python3,最新版分别为2.7.x和3.7.x,现阶段大部分公司用的是Python2。
  9. Life is shot, you need Python.人生苦短,我用Python。
  10. 2018年7月份TIOBE编程语言流行排行榜,Python位居第4位。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值