长春星宿网站建设公司怎么样,电子商务公司企业简介,装修案例文案,排版设计工作内容本文经AI新媒体量子位(公众号ID:QbitAI)授权转载#xff0c;转载请联系出处。人生苦短#xff0c;我该不该选择Python#xff1f;编程语言几年一变样#xff0c;榜单之争也是愈演愈烈#xff0c;还架不住时不时杀出个黑马……而对于Python#xff0c;自2010年初以来一直蓬…本文经AI新媒体量子位(公众号ID:QbitAI)授权转载转载请联系出处。人生苦短我该不该选择Python编程语言几年一变样榜单之争也是愈演愈烈还架不住时不时杀出个黑马……而对于Python自2010年初以来一直蓬勃发展至今在流行程度上也超越了C、C、Java等老牌编程语言。那么问题来了这种趋势将持续到什么时候最终会因何故被其他语言取代对于Python是不是the language of the future无极4新闻平台网友们展开就此展开一番激辩。反方必然会有一种语言取代Python一位名叫Rhea Moutafis的网友认为Python不会是“未来的编程语言”。观点仅发布数日便得到了10.2k的点赞。他从“流行原因”、“缺点”以及“何时、何故被取代”三方面做了阐述。Python为何现在如此流行Moutafis认为Python的成功一定程度体现在Stack Overflow的趋势上。这个平台衡量了发布帖子中的标签数量再考虑到它的规模对于“受欢迎编程语言”来说是个不错的指标。从图中可以看出R语言在过去几年中处于稳步增长的状态但其他语言像C#、C、Java和JavaScript都有下降的趋势。而在所有Stack Overflow的问题中几乎有14%的问题被贴上了 “Python “的标签而且这个趋势还在上升。Moutafis认为原因有如下3个方面。首先Python也算是一个老牌语言。Python从90年代便已出现这不仅意味着它有足够的时间来发展还意味着拥有一个庞大而强有力的社区支持。所以你在用Python编程的时候如果遇到了任何问题只要网上搜索一下大概率就能解决掉。因为很有可能在你之前就有人遇到过同样的问题还在网上留下了宝贵的意见。其次Python对于初学者来说是友好的。对于这一点并不是说它存在了几十年给了程序员们充足的时间来写使用教程。而是Python的语法易读性特别好。例如你不需要指定数据类型只要声明一个变量Python会根据上下文理解这个变量是属于整数、浮点数、布尔值等等。这对于初学者来说优势是巨大的。如果你用过C你就有可能体会到这样的痛苦程序跑不出来可能仅仅是因为把一个浮点数指定成了整数……以及如果对比着读过Python和C的代码你就能深刻的体会到Python代码理解起来是有多么容易。最后Python的用于很广。Python从出现至今开发人员几乎在各个领域、用途方面开发了包(package)想处理数字、向量和矩阵Numpy是的你首选。想进行技术和工程方面的计算SciPy了解一下。想在数据处理和分析领域大展身手Pandas值得一试。想涉足人工智能Scikit-Learn真香(褒义……)。无论你想处理哪种计算任务Python几乎都可以提供相应的包。从近几年机器学习的激增也不难看出Python一直处于发展的前沿。Python的缺点是否具有致命性当然没有一个技术是完美的Python也不例外。Moutafis列出了6个最重要的缺陷还评估了它们是否具有致命性。第一速度 (Speed)。平均来说用Python运行一个任务所需要的时间是其他语言的2-10倍。为什么会这样呢其中一个原因就是它是动态类型。就像刚才说的你不需要指定数据类型这就意味着它需要使用大量的内存因为程序需要为每个变量预留足够的空间确保在任何情况下都能工作。而大量的内存使用量意味着大量的计算时间。另一个原因是Python一次只能执行一个任务。这是灵活数据类型的结果——Python需要确保每个变量只有一个数据类型而并行进程可能会把这一点搞得一团糟。相比之下一般的Web浏览器一次可以运行12个不同的线程……但说到底这些速度问题都无关紧要。计算机和服务器现在很便宜了用户并不真正关心他们的应用程序是否在0.001或0.01秒内能加载完。第二作用域 (Scope)。最初Python是动态确定作用域的。这基本上就意味着要对表达式求值编译器首先需要搜索当前块然后依次搜索所有调用函数。动态作用域的问题在于每个表达式都需要在每个可能的上下文中进行测试。这个是相当繁琐的过程这也就是为什么大多数现代编程语言使用静态作用域的原因。对于这个问题Python试图过渡到静态作用域但却搞砸了通常内部作用域能够查看和更改外部作用域但在Python中内部作用域只能看到外部作用域而不能更改它们。第三Lambda。尽管Python内部的灵活性很好但Lambda的使用还是相当有限制的。Lambda只能是Python中的表达式而不能是语句。另外变量声明和语句始终是语句这意味着Lambda不能用于它们。表达式和语句之间的这种区别可以说是相当随意在其他语言中就不会出现这种情况。第四空白符 (Whitespaces)。在Python中你可以用空格和缩进来表示不同级别的代码。这让它在视觉上很吸引人也很容易理解而其他语言例如C更多的是依赖大括号和分号。虽然这可能并不吸引人无极4网也不适合初学者但它让代码的可维护性提高了很多。对于较大的项目来说这就更有用了。像Haskell这样的新语言就解决了这个问题它们依赖于空格但同时为那些希望不使用空格的人提供了一种替代语法。第五移动开发 (Mobile Development)。随着应用逐步从电脑桌面转向移动端很明显我们需要强大的语言来构建移动软件。但用Python开发的移动应用并不多。Python并不是为移动端开发而设计的即便在基本任务上能达到差强人意的效果但最好还是选择专门为移动端开发的语言例如React Native、Flutter、Iconic和Cordova。需要明确的是笔记本和台式电脑仍会在未来存在一段时间。但由于移动端流量早已超过了桌面端可以说学习Python还不足以让你成为一个全能型开发者。第六Runtime Error。一个 Python 脚本不是先编译然后再执行。相反它在每次执行时都会编译所以任何编码错误都会在运行时显示出来。这导致性能差、时间消耗大以及需要大量的测试这对初学者来说是很好的因为测试可以教给他们很多东西。但对于经验丰富的开发人员来说不见得这是个好事。在未来何时、何故会让Python被取代在编程语言这个市场上出现了一批新的竞争者Rust提供了和Python一样的安全性——没有任何变量会被意外覆盖。但它用ownership和borrowing的概念解决了性能问题。根据StackOverflow Insights的数据它也是过去几年来最受欢迎的编程语言之一。Go对于Python初学者来说也是非常棒的一门语言。它非常简单甚至代码维护起来更容易。有意思的一点是Go开发者是市场上收入最高的程序员之一。Julia是一门非常新的语言可以与Python一较高下它填补了大规模技术计算的空白。在大规模计算中人们通常会使用Python或Matlab然后用C库进行修补。现在只用Julia就可以了不用再在两种语言之间来回切换。虽然市场上有其他语言但Rust、Go和Julia是修复Python弱点的语言。所有这些语言都擅长于未来的技术尤其是人工智能。虽然它们的市场份额仍然很小但从StackOverflow标签的数量可以看出它们上升的趋势都很明显。考虑到目前Python的普遍流行这些新语言要想取代它肯定要花上五年甚至整整十年的时间。那么取代Python的将是哪一种语言Rust、Go、Julia还是未来的新语言目前还很难说但考虑到Python架构中的性能问题必然会有一种语言取代它的位置。正方你的观点漏洞百出反方一辩陈述完毕接下来是正方的观点。用户miraculixx针对Moutafis的文章发起了猛烈攻击也获得了高度关注——2.1K的赞。miraculixx直接开门见山这篇文章有够烂的。你喜欢Rust、Go和Julia那就去写它们好了不要来抨击Python。而后直接提出了七大错误之处。Python并不慢首先速度有两个组成部分。其一你写出想要的程序有多快这是客户和大多数开发人员真正关心的。Python对于一个命令行语言来说它的速度是非常快的大多数其他语言所需要的时间要长得多。其二是执行速度。正如你所指出的在很多情况下这几乎不重要但当它有需要的时候Python既有内置的工具来加速也有广泛的工具生态系统来实现native速度 (与编译后的 C 代码相同)。Python确实可以并行运行多个任务与大多数其他语言不同Python代码非常容易并行运行甚至可以跨大型节点集群运行这对于云计算来说非常好。内置的多模块处理可以在本地和远程节点上运行。还有其他工具如Celery、IParallel、Dask等让并行运行代码变得轻而易举。缩进作为代码块的分隔符对任何项目来说都是一种优势因为这样就能确保代码看起来与个人偏好无关意味着更好的可读性这通常会增加可维护性。无论你有1个还是100个开发者Python都很好用大多数项目都只有1-5个开发者而且Python的模块化方法使得重构代码变得非常容易。模块化是构建大型可维护软件产品的关键成功因素。静态类型不是可扩展团队的关键因素根据我的经验静态类型的影响如果不损害协作能力的话也是可以忽略的。团队实际开发过程中的细节情况超过出了你写的评论一言以蔽之静态类型很难做到处处都是对的当出现问题的时候还是需要更多人加入到团队来解决。团队规模越大沟通成本就越高以n2的速度增长。也就是说Python并不老Python最新版本是在2019年第四季度发布的。无论是语言还是它所支持的用例都不能说是“老”。你说它不能在浏览器中运行不仅是错误的而且也没有抓住重点。大多数语言都不能在浏览器中运行因为Web语言是JavaScript。不管你喜不喜欢事情就是这样。React、Flutter等都不是编程语言把不该比较的东西混为一谈对你文章的可信度并没有什么好处。......那么你觉得Python未来的命运会是什么样呢郑重声明本文版权归原作者所有转载文章仅为传播更多信息之目的如作者信息标记有误请第一时间联系我们修改或删除多谢。