当前位置: 首页 > 科技观察

UbiquitousPython

时间:2023-03-15 20:36:53 科技观察

1.UbiquitousPython1991年2月20日,后来被称为“仁慈的独裁者”的GuidovanRossum在当时发布了Python。操作系统项目中的辅助工具,Python连官方都没有认可。没有人会想到,Amoeba项目在1996年就停止了发展,而Python却在20多年后发展成为世界上最大的编程语言之一。GuidovanRossum设计Python的初衷是想用它来简化系统管理工具的开发。这个目标确实达到了。大多数Linux操作系统和macOS都内置了Python,更不用说基于Python的Fabric、Ansible、Saltstack了。系统管理工具。然而,只做好主业从来都不是Python的唯一目标。世界那么大,Python去看看。2.不务正业的Python当Python不再只是一个系统管理工具,跨出跨界的第一步,它就再也不能停下脚步,从Web开发到科学计算,从3D建模到人工智能,从嵌入式系统开发到云计算和大数据,几乎每个角落都可以看到Python的身影。一、系统管理工具Python从一开始就是为了提高系统管理效率而开发的。内置的os模块可以提供基本相同的运行方式,同时兼容大多数主流操作系统。系统管理员的脚本只需编写一次即可在不同的操作系统上运行。凭借Python简洁高效的语法,Python在复杂的系统管理任务中的开发效率远高于Shell,执行效率也远高于需要不断进程切换的Shell。为了使用Linux常用的命令行工具,DavidBeazley用Python在几天内开发了一套Windows上常用的Linux工具。对于复杂的系统管理任务,目前流行的配置管理工具,如Fabric、Ansible、Saltstack等,可以让运维人员用几行命令,让上百台服务器低头。随着DevOps运动的发展,“基础设施即代码”的概念越来越流行。借助molecule或testinfra等工具,开发人员可以像运行单元测试一样测试基础设施的配置。2、Web开发1989年世界上第一个网站诞生,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的创始人GuidovanRossum也属于这个群体。为了让Python更好的支持矩阵运算,他还专门设计修改了一些Python语法。这一年发布了Numeric数值计算库。2006年,Numeric正式更名为NumPy。进入新世纪,围绕NumPy,开发了更多与科学计算相关的工具包,如用于科学计算的SciPy、用于符号计算的SymPy、用于数据分析的Pandas、用于数据可视化的Matplotlib、用于实时计算的交互式开发环境IPythonNotebook绘图等专业软件在Matlab等专业软件称霸整个科学计算领域多年后,Python在学术界赢得了一席之地近10年。而当其他通用编程语言在Web浪潮中打完仗,想要在科学计算上抢到一块地盘的时候,却发现事情变得比以前困难多了。4、云计算后互联网时代,云计算和大数据是最常被提及的两个概念。互联网的普及带来了信息生产和交换成本的大幅降低,这也导致了信息爆炸。为了进一步降低成本,释放数据的价值,云计算和大数据技术应运而生。说到云计算,就不得不提OpenStack,它已经成为事实上的开源私有云平台标准。OpenStack选择了Python作为主要的开发语言。主要原因是Python作为一种胶水语言,可以很好地与操作系统进行交互。也很容易集成其他语言编写的工具库,Python自身的生态也足够健壮,比如分布式任务管理、Web开发等都可以很好的支持。同理,市场份额最大的公有云平台AWS在发布之初就提供了PythonSDK支持。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模型制作工具3dsMax、Blender,电影特效工具Houdini、Maya,电影后期合成工具Nuke等,都使用Python作为脚本。七、人工智能自从AlphaGo打败李世石之后,人工智能就乱成一锅粥。然而,人工智能并不是一个新概念,其历史已有半个多世纪。在过去几十年人工智能领域的发展中,传统的主流编程语言显然是Lisp,后起之秀也是Prolog这样的语言。但是当这波人工智能真正火起来的时候,人们发现那些火爆的框架和工具,要么是用Python写的,比如Theano,要么是用C++写的,只不过用的是Python作为接口语言,比如TensorFlow、Caffe、MxNet等等。唯一的非Python框架Torch在2017年顶不住压力,开发了PyTorch。8.其他在算法交易和量化投资领域,Python是最好的选择之一。在嵌入式世界中,流行的程序员玩具RaspberryPi选择了Python作为其主要编程接口。在软件开发管理中,构建工具Scons和事务跟踪工具Trac不是特别流行,但也很活跃。虽然Python的主要应用场景在命令行,但并不代表它不能用于桌面软件开发。借助PyQt、Kivy等图形库,Python也可以开发出漂亮的桌面软件。借用一句流行语:Python这么厉害,为什么不上天?事实上,NASA确实在使用Python开发软件,主要用于卫星和火箭的系统集成和测试自动化。3.软件开发的灵丹妙药Python似乎并没有成为任何领域最流行的编程语言,但是Python在每个领域都是第一。从最初的系统管理,到互联网时代、云计算和大数据时代,再到现在的人工智能时代,每一波浪潮中都只有“不务正业”的Python存在。在领域分割的时代,像Python这样的通用语言在各个领域的关注度都低于领域中的主要语言。然而,时代在变,数字化的浪潮正伴随着人工智能、物联网的东风汹涌而来。为了能够快速响应,企业不得不做出改变。不区分线上和线下业务,只区分已经数字化的和即将数字化的。为了跟上需求的变化,将原有的“分析-设计-开发-集成-测试-上线”的瀑布式开发流程不断压缩。在敏捷软件开发运动的推动下,首先,开发与测试的界限不再清晰;后来DevOps运动兴起,开发和运维之间的墙被打破了;实时大数据架构和数据驱动业务的出现,使得原本相对独立的数据团队也应该更紧密地参与业务发展。当所有角色都在同一个团队并为业务目标编写代码时,使用同一种语言进行交流就变得极其重要。这时候,不落后的Python就有了它的优势。“非业务”的Python曾经在不同的领域占据一席之地,这让属于不同部门、不同角色的团队成员有机会使用Python来统一工作语言。无论是开发、测试、运维,还是数据科学家,Python都是不错的选择,虽然不是最好的。4、低成本试错的最佳选择曾经,编程本身就是一门生意;现在,编程只是用来实现想法的工具。当年,因为一个新的概念,可以创造出很多新的语言。比如,面向对象技术的出现,并没有给企业的业务带来什么大的革新,却掀起了一股技术浪潮;现在,提出了一项新技术。企业要出来,首先要考虑能给企业带来什么好处。对于人工智能这样的新概念(或者旧概念的新提法),本身对企业来说门槛就比较高,商业收益还不明显。如果要投入大量的人力和财力去学习新技术,对于企业来说,风险是非常大的。但是,企业要创新,不能固步自封。尤其是作为追赶型或初创型企业,在互联网赢者通吃的规则下,创新甚至与企业的生死息息相关。因此,低成本的试错是企业成功的关键。使用开源软件或云服务避免重新发明轮子对于企业降低试错成本非常有效。因为Python语言本身非常适合作为服务集成的“胶水”语言,所以很多开源软件和云服务都选择Python作为接口语言(比如Spark、TensorFlow、AWS等)。对于希望使用这些技术进行创新试验的公司来说,Python是一个不错的选择。5.谁在追求Python?Python的流行从一开始就不是一个设计良好的脚本。只是在特定的时间,对编程语言有特定的需求,而Python恰好满足了这样的需求。Python作为一种编程语言并不比其他编程语言好。没有完美的技术,只有最合适的。如果你想预测未来哪种编程语言会更受欢迎,你必须知道未来对编程语言的需求是什么。目前对编程语言的需求是能够被不同的角色所使用,能够集成或复用现有的技术或服务。Python上手快,可读性高,与其他语言的互操作性好,正好可以满足这样的需求。如果将来有一天,对程序执行速度的关注超过了其他要求,也许C语言或Go语言会成为一种更流行的语言;如果对编程语言的抽象能力有更高的要求,也许Elixir、Scala或Clojure会更受欢迎;如果对程序员人数的需求更高,就要降低入门难度,说不定Java又会流行起来;或者,未来对编程的需求不能被当前所有的编程语言所满足。将会有新的编程语言。因此,未来编程会走向何方,取决于企业对编程提出的需求。6.结语或许Python还有很多缺陷,在各个方面都不是特别出色,但它可以把所有的关键技术串联起来,降低引入新技术的成本,让团队成员有共同语言。为什么不这样做呢?什么?纯编程不再可能。你会玩跨界,Python,你会吗?查看该作者更多好文