Python的诞生

Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承。

现在,python以其优美,清晰,简单的特性在全世界广泛流行,成为最主流的编程语言之一。

截止至2016年7月,python在TIOBE流行编程语言排行榜,已经上升到第四名。并且从趋势图中可以看出其还在呈增长趋势。

Python被广泛应用于众多领域,例如:

数据分析: 2016/2月/11,美国科学家宣布发现引力波,分析观测30年的数据。分析引力波数据的Python包:GWPY
云计算 : 典型应用——Python开发的OpenStack
WEB开发: 众多优秀的WEB框架,Django、flask、 tornado
科学运算人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas。
系统运维: 运维人员必备,slatstack(系统自动化配置和管理工具),Ansible(自动化运维工具)
图形开发: wxPython、PyQT、TKinter

并且越来越多的公司选在python作为其主要开发语言,例如:

Google - Google Groups、Gmail、Google Maps、AlphaGo等,Google App Engine支持python作为开发语言
NASA - 美国宇航局,从1994年起把python作为主要开发语言
Dropbox - 美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
BitTorrent - bt下载软件客户端
gedit - Linux平台的文本编辑器
GIMP - Linux平台的图像处理软件(Linux下的PS)
知乎(国外的Quora) - 社交问答网站,国内最大的问答社区,通过Python开发
Autodesk Maya - 3D建模软件,支持python作为脚本语言
YouTube:世界上最大的视频网站YouTube就是用Python开发的
Facebook:大量的基础库均通过Python实现的
Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的

除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
更多案例:https://www.python.org/about/success/

Python的优缺点

任何语言都有其欧缺点,python也不例外,先让我们看看python的优点:

1.  Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,

初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有

相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可

以在市场上所有的系统平台上运行

5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能

    缺点:

1.代码不能加密

因为PYTHON是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。

2. 多线程支持不好

3.Python慢

Python相对C语言确实慢很多,但其实这里所指的速度慢在大多数时候我们是无法感知的,比如说,是用C语言程序开发了一个程序,执行需要花0.01秒,使用Python实现同样功能的程序,需要花0.1秒

的时间,虽然相差10倍,但是我们基本是感知不到的。更多的时候,程序慢是程序员实现功能方式导致的。就好像开罐头的时候,有的人用牙咬,有的人用工具,这样两个人的效率相比起来就差了很多。

我曾经听过一句话,语言本身的快慢差距并不能被我们体会出来,真正让我们体会出差距的是用语言的人。

Python的解释器

1.Cpython

Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

2.Jython

Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

3.IronPython

Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

4.PyPy

Python实现的Python,将Python的字节码字节码再编译成机器码。此编辑器能够大大加快Python程序的运行速度,可能会是Python的未来。

5.RubyPython、Brython ...

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

Python发展史

1989年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一

种C和shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓

展系统。

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.

1999年 Python的web框架之祖——Zope 1发布

Python 2.0 - 2000/10/16,加入了内存回收机制,构成了现在Python语言框架的基础

Python 2.4 – 2004/11/30, 同年目前最流行的WEB框架Django 诞生

Python 2.5 - 2006/09/19

Python 2.6 - 2008/10/1

Python 2.7 - 2010/07/03

Python 3.0 - 2008/12/03

Python 3.1 - 2009/06/27

Python 3.2 - 2011/02/20

Python 3.3 - 2012/09/29

Python 3.4 - 2014/03/16

Python 3.5 - 2015/09/13

2014年11月,Python2.7将在2020年停止支持的消息被发布,并且不会在发布2.8版本,建议用户尽可能的迁移到3.4+    Python最初发布时,在设计上有一些缺陷,比如Unicode标准晚于Python出

现,所以一直以来对Unicode的支持并不完全,而ASCII编码支持的字符有限。例: 对中文支持不好Python3相对Python早期的版本是一个较大的升级,Py3在设计的时候没有考虑向下兼容,所以很多早期

版本的Python的程序无法再Py3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。2010

年继续推出了兼容版本2.7,大量Python3的特性被反向迁移到了Python2.7,2.7比2.6进步非常多,同时拥有大量3中的特性和库,并且照顾了原有的Python开发人群。

Python2还是Python3?

py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。所有的最新的标准库的更新改进,只会在3.x的版本里出现。Guido决定清理Python2.x ,并且不再兼容旧版本。

最大的一个改变就是使用Unicode作为默认编码。Pyhton2.x中直接写中文会报错,Python3中可以直接写中文了。从开源项目看,支持py3的比例已经大大提高,知名的项目一般都支持py2.7和py3+。

py3比py2更规范统一、去掉了没必要的关键字Python3.x还在持续改进。

所以我们还是推荐大家使用Python3.x。

python的历史的更多相关文章

  1. Python 发展历史

    1. Python发展历史 起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更 ...

  2. 百万年薪python之路 -- python的历史

    1.python的历史 ​ 2004 Django框架诞生了 ​ python2: ​ 源码不统一,有重复的功能代码 ​ python3: ​ 源码统一,没有重复的功能 2.python是一个什么编程 ...

  3. python的历史和下载python解释器

    一.python的诞生 1.Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,创造了一种C和sh ...

  4. python的历史与优劣

    历史 Python的创始人是Guido van Rossum,在发明Python语言之前Guido曾参与过一门称作ABC的语言的设计,ABC是专门为非专业程序员设计的:Guido在Python语言的设 ...

  5. 初识Python - Python的历史(转)

    声明: 本文转自维基百科 如有意见请联系删除 综述 该编程语言 的Python是在20世纪80年代末的设想,和实施是在1989年12月开始由吉多·范罗苏姆在CWI在荷兰的继任者农行能够异常处理,并与接 ...

  6. 【Python】Python发展历史

    起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣.用他 ...

  7. Python之历史

    一.python简单介绍 python的创始人:吉多·范罗苏姆(Guido van Rossum),于1989年开始编写,到1991年完成了第一个python编译器.它是用C语言实现的,并能够调用C语 ...

  8. Python的历史与基本知识入门

    一.Python简介 1.1989年由"龟叔"Guido van Rossum在圣诞节期间打发无聊时间编写. 2.Python是一门弱类型解释性语言. 3.优点:代码简洁,明确,优 ...

  9. Python的历史及介绍

    Python的诞生 Python的创始人吉多·范罗苏姆(Guido van Rossum),在1989年12月的圣诞节期间,为了打发时间,决定开发一种新的脚本解释程序,作为ABC语言的继承. 现在,p ...

随机推荐

  1. codeforces 632+ E. Thief in a Shop

    E. Thief in a Shop time limit per test 5 seconds memory limit per test 512 megabytes input standard ...

  2. 关于Java数组

    今天,我们将要谈到的是Java里的数组 数组是一种容器,它是一些相同类型元素的集合.我们可以用数组,去存储一些相同类型的数据,比如,整数,浮点数,字符,...事实上,数组甚至可以用来存储同一个类的多个 ...

  3. 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...

  4. java web学习总结(三) -------------------TOMCAT使用帮助(二)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

  5. springmvc的类型转换

     一.springmvc的类型转换 (一)默认情况下,springmvc内置的类型转换器只能 将"yyyy/MM/dd"类型的字符串转换为Date类型的日期 情境一: 而现在我们无 ...

  6. 推荐一个内容滚动jquery插件

    myslider是一个内容滚动jquery插件,版本0.1.2的每次滚动内容是一行内容,可以是文字,可以是一个链接,还可以是图片. 官方网址:http://keleyi.com/jq/myslider ...

  7. SharePoint 2013 文档上传的多种形式

    SharePoint 2013 中的某些功能需要使用 ActiveX 控件.这会在不支持 ActiveX 的浏览器上产生限制.目前只有 32 位版本的 Internet Explorer 支持此功能. ...

  8. Android—android与js交互以及相互传参

    Android中可以通过WebView来实现与js的交互,让用户可以在android客户端看到js写的页面,接下来为大家介绍的就是怎样实现此功能: 首先android项目目录下有“assets”文件夹 ...

  9. UIView的几个layout方法

    iOS layout的相关方法: 1,layoutSubviews 2,layoutIfNeeded 3,setNeedsLayout 4,setNeedsDisplay 5,drawRect 6,s ...

  10. 又一个高性能轻量级的iOS模型框架YYModel

    前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...