课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网软件编程行业的不断发展,使用Python进行软件开发以及系统编程设计等以及成为了许多软件开发工程师的选择方法之一。就在今天,我们给大家简单介绍一下,通过使用Python进行开发都在哪些领域实现了。
1. 系统管理工具
Python从一开始就是为了提高系统管理效率而开发的。内置的os模块可以在兼容大部分主流操作系统的情况下,提供基本一致的操作方式,系统管理员的脚本只需要写一次,就可以运行在不同的操作系统上。借助Python简洁高效的语法,Python在复杂系统管理任务上的开发效率要远远高于Shell,同时执行效率也是远高于需要不停进程切换的Shell。为了可以使用常用的Linux命令行工具,David Beazley用Python在几天之内在Windows上开发了一套Linux常用的工具集。
对于复杂的系统管理工作,目前流行的配置管理工具,如Fabric,Ansible,Saltstack等,可以让运维人员使用几行命令,让成百上千台服务器俯首帖耳。随着DevOps运动的发展,“基础设施即代码”的理念越来越深入人心,借助于molecule或者testinfra这样的工具,开发者可以像运行单元测试一样,对基础设施的配置进行测试。
2. Web开发
全世界第一个网站在1989年上线,而万维网(World Wide Web)在1994年被发明出来。可以说,Python是和互联网一起长大的。作为动态语言,并且具有更高的抽象层次的Python和Perl,很快就被开发者们发现更适合用于开发网站,并在早期互联网的兴起过程中发挥重要作用。
随着互联网的发展,很多以互联网为生的编程语言被发明出来,比如Java,PHP,Ruby等,逐渐超越了Python和Perl这些前辈。不过Python在Web开发领域仍然占有一席之地。比如著名的一站式Web框架Django,轻巧的Flask,高并发性能的Tornado等。一些著名的网站,也是在Python技术的支持下运行着,比如Youtube、Reddit、Pinterest、Dropbox、豆瓣等。
3. 科学计算
在Web技术大行其道,Java、PHP等编程语言来势汹汹之时,Python的注意力却没有完全放在Web上面,随随便便的就把先发优势给放弃,转而搞科学计算去了。
Python在设计之初的一个理念是,尽可能的用英语或者高中代数中约定的表达方式来编程,所以尽管一开始的应用场景并没有考虑科学计算,但学术界却盯上了Python。1995年,一个研究如何让Python支持高效矩阵运算的小组成立,Python的创始人——Guido van Rossum也在这个小组之中,为了让Python能够更好地支持矩阵操作,还专门设计和修改了一些Python语法。就在这一年,Numeric数值计算库发布,在2006年,Numeric正式改名叫做NumPy。
进入新世纪,围绕NumPy,更多科学计算相关的工具包被开发出来,比如用于科学计算的SciPy,用于符号计算的SymPy,用于数据分析的Pandas,用于数据可视化的Matplotlib,以及可以实时画图的交互式开发环境IPython Notebook等。在Matlab等专业软件主导整个科学计算领域多年之后,Python用近10年的时间,在学术界赢得了一席之地。而当其他通用编程语言在Web浪潮中厮杀结束,回头也想要到科学计算中抢一块领地时,却发现事情已经变得比当年要难得多了。
4. 云计算
在后互联网时代,云计算和大数据是被提起最多的两个概念。互联网的普及,带来了信息生产和交换成本的大幅降低,也因此导致了信息大爆炸。为了进一步降低成本,并释放数据的价值,云计算和大数据技术应运而生。
提到云计算,不得不提的就是OpenStack,目前已经成为了事实上的开源私有云平台标准。OpenStack选择Python作为主要开发语言,其最主要的原因,是Python作为胶水语言,可以和操作系统很好的交互,同时集成其他语言编写的工具库也很容易,而且Python自身的生态足够健壮,像分布式任务管理,Web开发等都能够很好的支撑。出于同样的原因,目前市场份额最大的公有云平台AWS在发布之初就提供Python SDK支持。
5. 大数据
大数据技术的兴起,让很多新技术有了露脸的机会。比如Scala、R、Julia这些语言,曾经都是小众语言,但因为他们在大数据方面的优势,吸引了大量的开发者。除了这些小众语言之外,Java和Python算是在传统强势编程语言中没有掉队的两个。
Python的不掉队,要得益于其在科学计算领域的积累,比如Pandas和SciPy,这些曾经用在学术界的工具,在大数据处理中同样变得重要。因此,像Spark, H2O这样的大数据处理工具,核心部分并不是Python编写,但为了满足工具使用者的需求,都花了巨大精力来开发Python接口。除此之外,完全基于Python的工具,虽然不多,但还是存在,比如Airbnb开发的数据可视化工具superset和任务编排工具airflow。
6. 仿真模拟
在程序员圈子里一提到Python,第一反应就是“上手简单”。正是由于简单,每个人都会写一点,就算不会写,也可以看懂,因此大家并不以会Python为多么骄傲的事情。相比Python,程序员们更愿意炫耀自己擅长Clojure或者Haskell这样相对复杂的编程语言。
不过简单也有简单的好。正是由于上手简单,让Python成为各种仿真模拟软件首选的脚本语言。比如大名鼎鼎的图片处理工具GIMP,3D模型制作工具3ds Max,Blender,电影特效工具Houdini, Maya,电影后期合成工具Nuke等等,都以Python作为脚本。
7. 人工智能
自从AlphaGo战胜李世乭开始,人工智能就火得一塌糊涂。然而,人工智能并不是什么新概念,其历史已经超过了半个世纪。在人工智能领域过去这几十年的发展中,传统的主流编程语言明明是Lisp,而后起之秀也是像Prolog这样的语言。但是当这一波人工智能真正开始流行起来时,人们发现,那些流行的框架和工具,要么是用Python写的,比如Theano,要么是C++写的,但是Python作为接口语言,比如TensorFlow,Caffe,MxNet等。仅有的非Python框架Torch,在2017年也抵不住压力,开发了PyTorch。
8. 其他
在算法交易和量化投资领域,Python是最佳选择之一。
在嵌入式领域,广受欢迎的程序员玩具树莓派,选择Python作为主要编程接口。
在软件开发管理中,构建工具Scons和事务追踪工具Trac虽然不算特别流行,但也处于活跃的状态。
尽管Python的主要应用场景都在命令行,但不代表其不能做桌面软件开发,借助于PyQt和Kivy这些图形库,Python也可以开发出漂亮的桌面软件。
借用一句流行语:Python这么厉害,咋不上天呢?
事实上,NASA确实在使用Python来开发软件,主要是用于系统集成和卫星、火箭等的测试自动化方面。
作者:佟达
来源:公众号:思特沃克
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!