引用如果你被要求从数百种编程语言中选择一种介绍性语言怎么办?你会选哪一个?是申请率最高、长期霸榜的常春藤Java吗?C是易学难精吗?还是在游戏和工具领域仍占主导地位的C++?还是占据Windows桌面应用半壁江山的C#?……我想每个人可能会根据工作要求的必要条件和兴趣爱好的充分条件做出不同的选择。也有很多工程师在学习一门新技术时会担心自己所学的技术会不会越来越流行,而尽量避免学习非常小众、冷门的技术。这种担忧无可厚非,毕竟越多的人使用一项技术,越早学习这项技术的工程师就越有好处和优势。同时,如果学了一门冷门技术,不仅做英雄无用,在就业市场上也没有优势。如果要问我入门编程语言的选择,我肯定会选择Python。具体原因可以引用一位网友的回答,“学完Python就可以上天堂”。Python的流行如果你在互联网上,你将能够亲身感受到Python语言的流行。Python语言以其易学、语法优美、应用领域广泛等诸多优点俘获了一大批爱好者。然而,在没有确凿证据的情况下,很多开发者无法说服自己静下心来学习。接下来,我们就用数据来说话。编程语言排行榜首先,我们来看一下近期编程语言排行榜中Python语言排行榜的变化情况。TIOBE的月度编程语言排名是编程语言趋势的指标,每月更新一次。这个排名是根据互联网上有经验的工程师、课程和第三方供应商的数量,使用搜索引擎计算得出的,一定程度上反映了编程语言的受欢迎程度。2017年9月TIOBE编程语言排行榜2017年10月TIOBE编程语言排行榜2017年11月TIOBE编程语言排行榜从近三个月的排名来看,Python一直稳定在排行榜前五。但编程语言排名只能反映当前Python语言的流行程度,并不能回答Python是否越来越流行的问题。不过,我们可以从TIOBE公布的历史数据中找到一些端倪。在2015年2月发布的TIOBE编程语言排行榜中,Python仍然排在第8位。在短短两年半的时间里,Python语言已经跃升至第4位,其上升速度屡见不鲜。Googletrends由于TIOBE的编程语言排名是基于从搜索引擎获得的数据,我们也可以通过搜索引擎获得Python的搜索指数,利用搜索指数来查看Python语言的流行度变化。图1.1显示了最近4年关键字Python的Google搜索索引。图1.1Python的Google搜索指数如图1.1所示,从全球范围来看,Python语言越来越流行,其热度也比以往任何时候都高。从中国的搜索指数来看,Python语言不再是越来越流行那么简单,而是出现了爆发式增长。2014年之前,Python在国内还是一门小众语言。从2014年开始,Python在国内越来越流行。一个有趣的事实是,在图1.1给出的Python搜索指数中,中国的Python搜索量每年都有一个非常明显的下降尖峰。此次秒杀时间恰逢春节时间,可见春节是全中国人民的重要节日。春节期间,很少有人还在专攻技术。微信搜索指数我们来看看***发布的微信搜索指数中Python语言的热度。图1.2为Python、Java、PHP、Ruby的微信搜索指数对比图。图1.2Python的微信搜索索引由于微信最多支持4个关键字进行比较,我们选择了Java、PHP、Ruby和Python进行比较。我选择Java是因为它是一种比Python使用更广泛的编程语言;我选择PHP是因为它被认为是世界上“最好的”编程语言;找到最接近的编程语言。从图中可以看出,Python语言和Java语言的微信搜索指数最高,Python语言的微信搜索指数略高于Java语言。基于以上编程语言排名、谷歌搜索指数和微信搜索指数,几个不同的数据源考察了Python语言的流行程度。现在,我们可以得出一个非常明确的结论——Python语言越来越流行,现在非常火。那么为什么Python语言越来越流行呢?原因有很多,比如越来越多的工程师使用Python进行大数据处理;科研人员开始使用Python进行数据分析;系统管理员使用Python来管理Linux系统;开源云计算平台OpenStack采用Python语言开发;很多编程爱好者都使用Python来进行爬虫等。但是,笔者认为,Python语言之所以越来越流行和广泛使用,主要是因为它的诸多优点。对Python的爱与恨:不得不说的优缺点。Python语言有很多优点。其中,以下优点尤为显着:易学:与其他编程语言相比,Python语言是一种相对容易学习的编程语言,其重点在于如何解决问题而不是编程语言的语法和结构。正是因为Python语言简单易学,越来越多的初学者选择了Python语言作为编程的入门语言。例如浙江省2017年高中信息化改革中,《算法与程序设计》课程将使用Python语言替代原来的VB语言。语法优美:Python语言力求代码简洁优美。在Python语言中,缩进用于标记代码块。通过减少无用的花括号并去除语句末尾的分号等视觉噪音,代码的可读性得到显着提高。读一个好的Python程序就像读英语一样,它可以让你专注于解决问题,而不必过多担心编程语言本身的语法。丰富强大的库:Python语言叫做BatteryIncluded,意思是Python语言的类库非常全面,包括解决各种问题的类库。不管实现什么功能,都有现成的类库可以使用。如果一个功能比较特殊,标准库没有提供相应的支持,那么大概率会有相应的开源项目提供类似的功能。合理使用Python类库和开源项目,可以快速实现功能,满足业务需求。开发效率高:Python优势互补。例如,由于Python语言拥有丰富而强大的类库,可以显着提高Python的开发效率。与C、C++和Java等编译型语言相比,Python开发人员的工作效率要高出许多倍。实现同样的功能,Python代码的文件往往只有C、C++、Java代码的1/5~1/3。虽然Python语言有很多吸引人的特性,但是Python语言之所以被各大互联网公司广泛使用,很大程度上是因为Python语言的开发效率高。开发效率高的语言更能满足互联网快速迭代的需求。因此,Python语言在互联网公司中被广泛使用。应用范围广:Python语言的另一个优势是应用范围广泛,工程师可以用Python做很多事情。例如Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等。Python语言介于脚本语言和系统语言之间。我们可以根据需要将其作为脚本语言来编写脚本,也可以作为系统语言来编写服务。不可忽视的缺点毫无疑问,Python确实有很多优点,而且每一个优点看起来都非常吸引人。但是,Python也不是没有缺点,主要缺点如下:Python的执行速度不够快。当然,这不是一个很严重的问题。一般来说,我们不会直接将Python语言与C/C++等语言进行比较。就Python语言的执行速度而言,一方面,网络或磁盘延迟会抵消一部分Python本身消耗的时间;另一方面,由于Python特别容易与C结合,我们可以通过分离一部分应用来优化速度,将其转换为编译扩展,在整个系统中使用Python脚本来连接这部分应用以提高速度程序的整体效率。Python的GIL锁限制并发:Python的另一个大问题是它不能很好地支持多处理器。如果读者长期接触Python,那么他们一定听说过GIL这个词。GIL指的是Python全局解释器锁(GlobalInterpreterLock)。当Python的默认解释器要执行字节码时,需要先申请这把锁。这意味着如果您尝试使用多线程扩展您的应用程序,您将始终受到这个全局解释器锁的限制。当然我们可以使用多进程架构来提高程序的并发性,也可以选择不同的Python实现来运行我们的程序。Python2与Python3不兼容:如果一个普通的软件或库不能实现向后兼容,那么它就会被用户无情地抛弃。在Python中,其中一个陷阱就是Python2不兼容Python3。由于Python不向后兼容,给所有Python工程师造成了无数烦恼。如何开始?了解了Python的整体趋势和优缺点之后,接下来自然就是如何学习Python了?笔者在这里的建议是:找个通俗易懂的教程比较好,不需要多选,只选一个,从头到尾看完。自己练习教程中的案例。通过实际项目进行练习。如果只是纸上谈兵,可能看一眼就忘了,所以最好有实战项目去做。注意,真正的项目不一定非得是商业项目,比如自己建一个网站,关键是核心功能要完整。***找一个已经了解Python的人。向他请教一些学习规划方面的建议,遇到困难再向他请教。这样会事半功倍。但是,学习搜索并学习如何提出更好的问题。***,在选择使用哪种编程语言之前,我还想提醒读者“世界上只有两种编程语言,一种是被广泛使用却天天被吐槽的编程语言,而另一种则是一门无人问津、毫无存在感的编程语言。”Python语言作为最具动态类型的语言,自然有它的道理。如果我们充分了解它的优缺点,在使用的时候取其精华,去其糟粕,那么Python一定是工程师们解决问题的一把利剑。
