人生苦短,我学Python。
很经典的一句话,不知道你们有没有听过,可能有的朋友刚来,连Python是什么都不清楚,至于为什么想要学它,理由无非是以下几个,做爬虫,建网站,自动化办公,数据分析,从而解决某些效率上的具体问题。
它确实具备这样的功能,也因为适用性广,宜用宜学,成为了多数人入门编程的首要选择,不少教育机构嗅到了这个商机,开始大力宣传Python,营造了一股全民皆可学Python的热潮,上到八十岁老人,下到三五岁的小孩都可以学,先不论这个做法对不对,但是。
你可能就是在这样的机缘巧合下接触到了Python,对它产生了好奇,不得不说,大范围的宣传让Python走进了大众的视野,让更多的人知道,编程不止有C语言,还有Python。
市面上少有全面介绍Python的文章,大多是泛泛而谈,点到为止,这种做法反而为它增添了几分神秘色彩。今天,我们就来一步步揭开它的神秘面纱,从过去和现在两个时间维度进行解读,来帮助大家更好地理解Python,学习Python。
过去
你敢相信,Python竟然是为了打发时间而被设计出来的吗?1989年,Python作者Guido von Rossum(龟叔)希望设计出一种介于C和shell之间,功能全面,易学易用,可拓展的语言。
是什么样的理由,让龟叔想要设计一款如此自然的语言呢?
要知道当时,苹果和IBM已经掀起了个人电脑浪潮,但这些电脑配置低得可怕,早期的Macintosh(苹果的Mac)只有8Mhz的CPU主频和128KB的运行内存。
对比起今天动辄2Ghz的CPU主频,16GB的运行内存,真的是小巫见大巫。
迫于无奈,当时的程序员都得像计算机一样思考,以便写出更符合计算机口味的程序。这种思考方式让龟叔很是无奈,他知道如何用C语言写出一个功能,但这个编写过程太复杂,需要耗费大量的时间。
更多的时候,他选择用Shell,C语言下上百行的程序,在Shell只用几行就能解决,遗憾的是,Shell并不是真正的编程语言,它本质是调用命令,没有数值型的数据类型,连加减乘除都很难实现。
龟叔希望有一种语言,能够像C语言一样,全面调用计算机的功能接口,又可以像Shell一般,几行代码就能轻松的实现编程。
当时的他有幸参与到ABC语言的开发,这让他看到了希望,因为ABC语言的目标就是为了激发人们学习编程的兴趣,让编程语言变得容易阅读,容易使用,容易记忆,容易学习。我们来看一段来自维基百科的ABC程序,这个程序用以统计文本中出现的词(Word)的总数:
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的结构中也没有(),如果将HOW TO换成def,将PUT那一行改为collection=[],将INSERT那一行改为collection.append(word),这就几乎是一个标准的Python函数了。
遗憾的是,这种接近自然文字的语言在当时还是没能流行起来,因为它的要求太高了,需要配置较高的电脑才能运行,而这些电脑的使用者通常精通计算机,他们需要思考的点不在于语言的学习难度,而在于程序的使用效率。
除此之外,ABC语言还存在着一些致命问题,可拓展性差,传播困难,不能直接操作文件系统,还有大多数程序员都不太能接受这种新的编写方式,让它在萌芽期就直接腰斩。
基于此前已经有设计ABC语言的经验,虽然不是很成功,但龟叔还是进行了一次尝试。这一次,也是再普通不过的hacking行为。
借着圣诞假期,他开始写Python语言的编译器/解释器,之所以选中Python(大蟒蛇)作为该编程语言的名字,是取自于Guido最爱的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)。
功夫不负有心人,历经两年时间,于1991年,Python正式诞生,它是用C语言实现的,并能调用C语言的库文件。
Python语言诞生后,处境还是比较尴尬的,一直处于不愠不火的状态,前有C语言大哥,后有Java这个当红达人。
1990年还是个人电脑的时代,尽管Internet为主体的信息革命还有十年才到来,但当时多数程序员与资深计算机用户已经在频繁使用Internet进行交流(包括email和newsgroup),一种新的软件开发模式悄然流行起来:开源。程序员可以利用业余时间进行软件开发,并开放源代码。
只要硬件性能不受限制,Python就有了用武之地,随后,龟叔维护了一个maillist,Python用户就可以利用邮件进行交流,而Python的用户背景各不相同,需求也不同,Python本身开放且容易拓展,这一下就把Python给带火了起来。
现在
Python在编程界的热度,再创历史新高,它不仅赢得了年度TIOBE编程语言奖,还被授予这一年“最受欢迎的编程语言”。
我们再来看看TOP10编程语言在这十几年的指数走势( 2002-2020 )
如今,它已成为数据科学和机器学习等领域中最受欢迎的语言,但它也用于Web开发和后端编程,并逐渐发展到移动应用程序领域,甚至在更大的嵌入式系统中也是如此。
大量采用这种语言的主要原因是易于学习语言及其高生产率。在一个渴望在各个领域拥有更多开发人员的世界中,这两种素质至关重要。
据统计,Python人才需求量每日高达5000+,但目前市场上会 Python的程序员少之又少,竞争小,很容易快速高薪就业。从Python开发者薪资的变化趋势来看,目前Python正处于行业爆发初期的风口上。
从Python开发者薪资的变化趋势来看,随着工作年限的增长工资成直线增长。从事Python开发,所从事的工作机会和工作岗位及工作内容可选择的余地很多,可从事大数据、数据分析师、人工智能工程师等方向,未来发展的空间大。
Python在数据分析、数据挖掘、人工智能、web开发等方面都大有发挥之处,再加上人工智能大量依赖数据,数据相关岗位人才的稀缺,Python现在的职位可谓是炙手可热。
智联招聘在2017年发布的《人工智能就业市场供需与发展报告》称,人工智能人才需求量增长2倍,近七成AI人才的薪资水平在月薪1万以上,约有1%的人才月薪在5万元以上。
Python工程师的薪资高,并不仅仅因为他们会Python这么简单,而是他们具备的工作能力,在互联网人才流动中,自学能力强、技术敏锐度的程序员基本都会有好的发展,获得丰厚的回报。
最后我还要说几句,不管Python未来的命运如何,它的历史本身就极其有趣,以现在的发展势头,它值得我们学习,值得我们去深入了解它的设计理念,以便更好地入门Python,走上Python的学习之路。
原文链接点这里~Python的过去和现在