当前位置: 首页 > news >正文

web网站开发用什么软件/手机网站怎么优化关键词

web网站开发用什么软件,手机网站怎么优化关键词,学ui去哪个机构比较好,wordpress菜单 链接为什么Python不是未来的编程语言?作者 | Rhea Moutafis译者 | 弯月,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下是译文:Python经过了几十年的努力才得到了编程社区的赏识。自2010年以来,Python得到了蓬勃发展&#xff0c…
544de038adc1bc2ba520b6a8abe6316f.gif

为什么Python不是未来的编程语言?

3dcc9620aeaaba46b71552214c7033dc.png

作者 | Rhea Moutafis

译者 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下是译文:

Python经过了几十年的努力才得到了编程社区的赏识。自2010年以来,Python得到了蓬勃发展,并最终超越了C、C#、Java和JavaScript。

但是,这种趋势将持续到什么时候?何时Python会被其他语言取代?被取代的原因又是什么呢?

对于Python被淘汰出局的确切日期有很多猜测,它可能会像科幻小说一样成为过去。在本文中,我将讨论促成Python大面积普及的优势,以及将来导致它陨落的弱点。

a1fb032d3a9e408abc74f7e3f91328cb.png

促成Python流行的因素

通过Stack Overflow发展趋势就可以洞悉Python的成功。考虑到StackOverflow的规模,我们可以认为这是衡量编程语言流行度的一个很好的指标。

尽管在过去几年中,R语言的发展一直处于平稳状态,很多其他编程语言已开始稳步下降,但Python的增长似乎势不可挡。在所有StackOverflow的问题中,带有“python”标签的占到了14%,而且这种趋势还在上升。其中的原因有很多。

Python是一种古老的语言

Python于90年代问世。这不仅意味着Python有足够的时间成长,而且还拥有了一个庞大的支持社区。

因此,如果你在使用Python进行编程时遇到任何问题,只需上网搜索就可以得到答案。因为总是会有人在这之前就遇到了这个问题,并为此撰写了一些有用的资料。

对初学者很友好

Python对初学者友好的原因不仅仅是因为它已经存在了数十年,予以程序员足够的时间编写出色的教程,而且还因为Python的语法非常易于理解。

首先,无需指定数据类型。你只需声明一个变量即可,Python会根据上下文判断这个变量是整数、浮点数、布尔值还是其他类型。对于初学者来说,这是一个巨大的优势。如果你有过使用C++编程的经历,那么就会懂得只因为你错把浮点数定义成了整数,就导致程序无法通过编译有多么难受了。

此外,比较Python和C++代码,不难发现Python有多么易于理解。尽管C++在设计时考虑到了英语,但与Python代码相比,阅读C++的代码还是相当坎坷。

用途广泛

由于Python已经存在了很长时间,因此开发人员为之开发出了各色的软件包。如今,无论遇到什么问题,你都可以找到相关的软件包。

  • 想处理数字、向量和矩阵?那么就来试试 NumPy 吧。

  • 想进行技术和工程的计算?那么就来试试 SciPy 吧。

  • 想操作和分析大数据?那么就来试试 Pandas 吧。

  • 想学习人工智能?为什么不试试 Scikit-Learn 呢。

无论你需要进行哪方面的计算任务,都可以找到相关的Python软件包。由于过去几年中机器学习的迅猛发展,Python已经站在了时代发展的最前沿。

c9e94c9cd071f718ee268a0640221acf.png

Python的缺点,这些缺点是否致命?

通过上述讨论,你可以想象在很长一段时间内Python的发展都势不可挡。然而,Python也逃不开一切技术的命运,它也有自己的弱点。接下来,我将逐个介绍Python的重大缺陷,并评估这些缺陷是否致命。

速度

Python很慢,非常非常慢。平均而言,使用Python完成某个任务所需的时间是使用任何其他语言的2–10倍。

其中的原因有很多。其中之一是因为Python是动态类型的,别忘了你不需要像其他语言一样指定数据类型。这意味着内存的耗费非常大,因为在任何情况下程序都需要为每个变量保留足够的空间。而巨大的内存使用量必然需要耗费大量的计算时间。

另一个原因是Python一次只能执行一个任务。这是灵活的数据类型带来的结果,Python需要确保每个变量只有一个数据类型,而并行进程可能会在这一点上出问题。

相比之下,普通的Web浏览器一次可以运行十几个不同的线程。当然其中还涉及别的因素。

但最终所有的速度问题都不打紧。因为电脑和服务器的价格越来越低,我们谈论的也只不过是几分之一秒的问题。最终用户并不真正在乎他们的应用加载需要0.001还是0.01秒。

范围

最初,Python是动态作用域。这基本上意味着,为了评估表达式,编译器首先需要搜索当前块,然后依次搜索所有调用函数。

动态作用域的问题在于,每个表达式都需要在所有上下文中进行测试,这很繁琐。这就是为什么大多数现代编程语言都使用静态作用域。

Python曾尝试过渡到静态作用域,但搞砸了。通常,内部作用域(例如函数中的函数)能够查看和更改外部作用域。在Python中,内部作用域只能看到外部作用域,但不能更改。因此引发了很多混乱。

Lambdas

尽管Python非常灵活,但Lambdas的使用还是有一定的局限性。Lambda只能是Python中的表达式,而不能是语句。

另一方面,变量声明和语句始终是语句,这意味着它们不能使用Lambda。

在Python中,表达式和语句之间的区别相当随意,这是其他编程语言都没有的问题。

空白

在Python中,你需要使用空白和缩进来表示不同级别的代码。这种格式具有视觉吸引力,而且易于理解。

其他编程语言(例如C++)都需要依赖大括号和分号。尽管这可能在视觉上没有那么强的吸引力,而且对初学者不够友好,但可以提高代码的可维护性。在大型项目中,这种方式更为妥当。

Haskell等新兴的编程语言解决了这个问题:它们依赖空白,但同时也为那些希望不用空白的人提供了另一种语法。

移动开发

我们目睹了从台式机向智能手机的转变,很明显,我们需要强大的语言来构建移动软件。

然而,使用Python开发的移动应用并不多。这并不意味着Python无法开发移动应用,你可以试试看一个名为 Kivy 的 Python 包。

但是,Python的设计被没有考虑到移动设备。因此,即使Python可以应付基本的任务,但我们最好还是选择专门为移动应用程序开发而创建的语言。广泛用于移动编程的语言包括:React Native、Flutter、Iconic和Cordova。

我们需要明确的是,笔记本电脑和台式计算机已经存在很多年了。然而,由于移动设备的使用已然超越了桌面设备,因此我们肯定地说,学习Python不足以成为经验丰富的全方面开发人员。

运行时错误

Python不需要首先编译,然后再执行。相反,它会在每次执行时编译,因此所有编程上的错误都会在运行时显示出来。这会导致性能下降、浪费时间,而且还需要进行大量测试。

对于初学者来说,这未必是坏事,因为测试可以教会他们很多知识。然而,对于经验丰富的开发人员而言,必须使用Python调试复杂的程序很令人头疼。性能欠缺是Python最大的问题。

910621a55b9cbf2e4f066d14d9e702bb.png

Python什么时候会被取代?

如今,编程语言市场上涌现了新的竞争力量:

  • Rust提供了与Python相同的安全性——不会意外覆盖任何变量。但是,它通过所有权和借用的概念解决了效率的问题。根据StackOverflow Insights,Rust是近几年最受欢迎的编程语言。

  • Go 与 Python 一样非常适合初学者。语言本身非常简单,维护代码更加简单。此外,有趣的是,Go开发人员是市场上收入最高的程序员之一。

  • Julia是一种非常新的语言,可与Python正面竞争。Julia填补了大规模技术计算的空白:以前,人们通常都需要使用Python或Matlab编写代码,然后再使用C++库修补整个程序,因为C++库是大规模必不可少的。如今,人们可以使用Julia,而不必在两种语言之间挣扎。

尽管市场上还有其他语言,但Rust、Go和Julia 可以弥补Python的弱点。所有这些语言在即将到来的技术中都有出色的表现,最典型的就是人工智能。尽管它们的市场份额仍较小,但根据StackOverflow的数据显示,这些语言的发展呈现出明显的上升趋势。

如今,Python无处不在,我们还需要五年甚至更长的时间,才有可能看到Python被新语言所替代。

就目前而言,我们很难判断哪种语言有可能替代Python,是Rust、Go、Julia抑或是其他的新语言。但鉴于Python体系结构中最基本的性能问题,其终将难逃被人替代的命运。

原文:https://towardsdatascience.com/why-python-is-not-the-programming-language-of-the-future-30ddc5339b66

本文为 CSDN 翻译,转载请注明来源出处。

【END】

99bccecfcf57ddbc16bad5932ebceb7c.png

热 文 推 荐

“Hey Siri” 背后的黑科技大揭秘!

终端模拟器大 PK,你 Pick 谁?

程序员造轮子的正确姿势

编程基础知识真的是九阳神功吗?

在Kubernetes上部署一个简单的、类PaaS的平台,原来这么容易!

旷视提双边分支网络BBN:攻坚长尾分布的现实世界任务 | CVPR 2020 Oral

2020年,这20个大家都认识的加密交易所过得怎么样?

dba4e7d6495cea3355abc2588580fdea.png你点的每个“在看”,我都认真当成了喜欢
http://www.lbrq.cn/news/1586107.html

相关文章:

  • 企业网站建设 法规/打开百度搜索引擎
  • 没有公司个人可以做网站卖东西吗/潍坊seo教程
  • 赤峰网站建设red/如何做网站推广
  • 手表网站布局/成都网站关键词推广
  • php做的静态网站怎么加密/seo优化思路
  • 公司做网站需要准备什么资料/app推广平台
  • 济南网站建设网站制作/电商网站怎样优化
  • bob网站建设/伟哥seo博客
  • 哈尔滨网站建设价格低/seo全国最好的公司
  • 课程网站建设/企业网站建设论文
  • wordpress图片付费主题/北京seo优化诊断
  • 二手车做的好的网站有哪些/优化设计电子课本
  • frontpage如何做网站/高端网站建设报价
  • 选择ssm框架做网站的好处/企业网站建设的流程
  • 做a的视频在线观看网站/seo描述是什么意思
  • 青岛市建设局网站/免费源码网站
  • wordpress横线/合肥网站优化软件
  • 梧州网站建设定制/cms
  • 常州网站建设最易/深圳关键词优化
  • 网站内页的设计/西安优化外
  • 临海如何制作公司网站框架/手机百度关键词优化
  • dede网站后台模板/全网整合营销平台
  • 在线观看免费网站/长沙网红奶茶
  • window服务器如何做网站访问/怎么做一个自己的网页
  • 电子商务网站建设 论文/百度网址收录入口
  • 论职能网站建设/百度推广登陆
  • 建设旅游服务类网站的可行性报告/舆情分析网站
  • 南通网站建设外包/seo团队
  • 网上做效果图网站有哪些软件有哪些/免费推广网站2023mmm
  • 建设学校网站的报告/杭州百度优化
  • 二叉树实现
  • DM8数据库服务正常,但是登录报错 [-70019]:没有匹配的可登录服务器
  • 音视频时间戳获取与同步原理详解
  • Day 6: CNN卷积神经网络 - 计算机视觉的核心引擎
  • Spring Boot全局异常处理与日志监控实战指南
  • shell脚本tcpdump抓取数据解析执行关机指令