Python也有保质期?它在脚本领域的“大佬地位”还能持续多久?
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
有一种语言在过去十年受喜爱度一路飙升,成为最受欢迎的一种编程语言,它是谁?
千呼万唤始出来,没错,它就是我们的老弟Python。
Python是一种易于使用、阅读和转换的对象型编程语言,由C语言实现。
最近,Python被评为全球最受欢迎的编程语言,其中有很多原因在不断稳固它的地位,但也有许多原因使其可能失去该头衔。
Python的用途是什么?
Python是一种解释型语言,这意味着任何编译器或汇编器都不能将其放入机器代码中。相反,使用Python的另一种语言——C语言,可以用来解释Python.h头文件。通常情况下,可以把Python归入脚本类,但在笔者看来,不忽略Python作为编程主要部分的地位至关重要。
(1) 可执行?
Python的一大缺点是,Python代码不能被编译成可执行文件。用Python编写的任何应用程序或工具都需要在终端用户系统上安装Python及其依赖项,且要安装与之对应的正版安装包,这些版本与用于开发所述应用程序的安装包相对应。
(2) 网站?
Python已经证明其在运行网站后端方面的惊人才能,这也是Python相对于许多其他语言的一大优势。Python拥有大量不可思议的安装包来部署APIs、甚至设计功能齐全的网站应用程序。
(3) 机器学习
机器学习是Python的另一重要用途,这无疑有助于Python在近年来迅速广受欢迎。机器学习是技术研究的前沿领域,Python及其与C语言的密切关系对机器学习研究非常高效有用。虽然Python确实缺乏一些诸如Nim、Julia和Go等语言的性能,但在很多方面,它的快速、简单、简洁可以弥补这一点,但可能其通用性更为重要。
(4) Unix
如果不讨论现代类unix系统,就很难讨论Python。Python 2.7已被弃用两个月,笔者的桌面环境及操作系统中的更多特性仍然运用Python2.7。Bash和Python的组合可以生成一些非常有用的脚本,用于运行服务器、填充数据、完成请求、编辑文件,当然还有更多作用。
Python的缺点
虽然Python确实是门伟大的语言,对全世界造成巨大影响,但每种语言都有其缺点,Python也不例外。首先,最显著的一个缺点是:
Python运行缓慢。
(1) 性能
虽然笔者肯定同意使用日志及for each方法,并且通常情况下,编写出更好的代码肯定能加快Python的运行速度,但在某些情况下,代码一定会变慢,机器学习就是个很好的例子,因为训练神经网络常需使用递归。笔者无法告诉你有多少次编写过用Python提取数据的脚本,然后在命令行接口(CLI.)中经历超时和减速。
为缓解这种情况,人们做出了一些努力,使用了颇有影响力的Cython,但在尝试使用Cython时,转换通常并是完全不相关。尽管在很多情况下,Python的局限性不被察觉,但如果说笔者从来没有过必须切换到Julia、Nim或C语言才能完成某些工作,那一定是无稽之谈。
(2) 依赖项
Python的另一个重大缺点是依赖项和虚拟环境。关于Python领域中的脚本语言,笔者认为,Python在依赖项和虚拟环境方面做得很好。我喜欢将Python比作我使用的有类似作用的两种语言——Julia和Nim,Julia依赖项的世界与Python非常类似,其有一个在我主观看来的优点,即虚拟环境要好很多且更易使用。
然而,随着Nim的加入,Python将被遗弃。使用Nim,可以创建一个已编译执行文件,其中包含所需的所有依赖项。在如何为终端用户和部署处理依赖项及安装包方面,Nim轻松完胜Python和Julia。
Python的好处
尽管对Python颇有怨言,但它确实也有很多方面招人喜欢。
(1) Python的令人敬佩之处
Python是一种常用的编程语言,它有很多优点:
易搜索
易讨论
性能好
修补程序很多
不仅如此,Python功能强大,用起来十分可靠,这使得Python成为初学者的最佳选择,同时也使那些想要快速构建稳定、持久技术的人同时运用这些技术更为容易。
(2) Python看起来很英文范儿
像Python这种语言和类似脚本语言之间的一个很大的区别就是Python的可读性和容易理解性。通常,阅读Python就像阅读一本关于与数字等同变量的奇怪又抽象的书。这不仅使初学者更容易接受,而且也使转变、修改和解码更容易进行,这些都极为重要,特别是对有数千名开发人员在其中工作的大型代码池而言。
老实说,大家都宁愿写Python而不愿写C语言。
(3) Python作为开源软件
虽然对一些人来说,他们的语言是否免费和开源可能并不重要,但对笔者而言,这非常重要。Python基金会的运行主要依靠捐款和教育证书,这意味着Python是一个完全免费和开放的软件,有人编写代码供你使用,这太棒了。
Python会寿终正寝吗?
来源:Pexels
实际上,我经常被问到的一个问题是,“你认为Python会存在多久?”这个问题经常出现在机器学习领域,因为Python有许多跟机器学习的相关问题。有趣的是,任何一种语言都可能是静态的,且在很长一段时间内将作为最广泛使用的编程语言。
在C语言之前,Fortran广受欢迎,在C++之前,C语言广受欢迎,在Java之前,C++也是如此,这样的例子不胜枚举,而且总会按此发生。计算机让人兴奋不已,因为它不断发展,随之而来的研究技术也不断进步。就在30年前,16GB内存(RAM)的想法听起来还极为荒诞,因此,人们根本不知道未来的编程语言会是什么样子。
虽然Python最终很可能会被另一种编程语言超越,但在笔者看来,人们仍然在编写Fortran、C语言、Java和c++,记住这一点极为重要;所以Python本身很可能会与我们同行,并在很长一段时间内被广泛使用,不管它可能变得多么不受欢迎。
其他编程语言
Python流行所面临的最大威胁可能是其他的新编程语言。上述所讨论的语言——Julia和Nim,在笔者看来是Python目前的两大竞争对手。Julia当然能改变我们进行机器学习的方式,而Nim绝对是高级脚本的一个巨大创变者。
目前,虽然这些语言可能还没有得到很多支持,但它们表现出笔者认为的重要一点:
进步大有可能。
也就是说,Python不是一堵坚实的砖墙,编程语言、机器学习和脚本语言的进步肯定不会就此止步。笔者认为,这些语言之所以未获成功,部分原因是它们都是统计型语言,而且在很大程度上为功能性语言,笔者理解,对于那些一直坚持使用并热爱Python的人而言,该概念让人震惊不已。
结论
来源:Pexels
应该学习Python吗?
答案毋庸置疑。
Python作为一种很好的入门语言,可以帮助你熟悉如何解决问题,开始编程。与包括Julia和Nim在内的其他语言相比,Python拥有丰富的资源,这就使得它更易学习。
一门语言的大火始终伴随着另一门语言的没落,我不认为Python会很快消失。
但作为一名程序员,不断成长很重要,开阔视野更重要。如果你用Python已有一段时间,那么可以开始学习第二种语言。尝试一种不同模式的语言,并了解那种模式及所选语言的类编程方法论如何运用这些概念。
这样的话,你不仅能学会使用更快的方法,而且还能学会许多之前甚至都不曾考虑的事情。
加油,你是最棒的~
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
手把手教你Springboot项目部署到阿里云教程(2) 安装java web开发环境jdk和Tomcat
往期文章Springboot项目部署到阿里云教程(1) 成功连接远程云服务器和配置阿里云安全组 承接上文,我们已经可以访问到我们的云服务器了,那么现在开始往里面安装应用。教程jdk、tomcat、mysql下载地址 链接: https://pan.baidu.com/s/1FS1yYNqvnRJODklRnm9wog 提取码: g6nb 一. 去官网下载JDK 一般常见的做法是下载下来然后用工具传到Linux服务器上,我这里推荐一种让云服务器帮你下载的方法: 1 、用IE浏览器下载这个文件,然后去下载中心暂停并复制下载链接 选择IE浏览器 2、下载 # 切换目录 cd / # 创建一个文件夹 Java mkdir usr/local/java # 进入这个文件夹 cd /usr/local/java # 将复制下来的下载链接`ctrl+insert`放到这里 wget 下载链接 3、解压chmod +x jdk-8u191-linux-x64.tar.gztar xzf jdk-8u191-linux-x64.tar.gz -C /usr/java 4、设置环境变量: a . 打开/e...
- 下一篇
如何使用 Istio 进行多集群部署管理:单控制平面 Gateway 连接拓扑
作者 | 王夕宁 阿里巴巴高级技术专家 **导读:**本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书,讲述了如何使用Istio进行多集群部署管理来阐述服务网格对多云环境、多集群即混合部署的支持能力。 前文详情: 如何使用Istio进行多集群部署管理:单控制平面VPN连接拓扑 单控制平面拓扑下,多个Kubernetes集群共同使用在其中一个集群上运行的单个Istio控制平面。控制平面的Pilot管理本地和远程集群上的服务,并为所有集群配置Envoy Sidecar代理。 集群感知的服务路由 Istio 1.1中引入了集群感知的服务路由能力,在单一控制平面拓扑配置下,使用Istio的Split-horizon EDS(水平分割端点发现服务)功能可以通过其入口网关将服务请求路由到其他集群。基于请求源的位置,Istio能够将请求路由到不同的端点。 在该配置中,从一个集群中的Sidecar代理到同一集群中的服务的请求仍然被转发到本地服务IP。如果目标工作负载在其他集群中运行,则使用远程集群的网关IP来连接到该服务。 (集群感知的服务路由) 如图所示,主集群c...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G