js和python哪个快python:Python取JavaScript做比较公平吗?谢霆锋的前妻张柏芝,终于没有再被天下宽容 太疯狂了
在信息爆炸的时代,互联网始终保持着令人难以置信的活力。现在,就让我们聚 作者 | STX Next译者 | ...
在信息爆炸的时代,互联网始终保持着令人难以置信的活力。现在,就让我们聚
作者 | STX Next译者 | 弯月出品 | CSDN(ID:CSDNnews)在讨论应该使用 Python 还是 JavaScript 构建项目时,1般我们都没有会说只使用1种编程语言来构建所有的组件。
在现代开发中,如果想构建符合标准的,确保在截止日期前完成,或者构建1款可以处理数百万用户的应用程序,那么通常都会使用多种语言、框架、工具和 API因此,如果我们想比较 Python 和 JavaScript,那么就应该讨论使用这两种语言来构建的核心组件。
除了这个核心主题以外,我们还将在本文中讨论:Instagram 成为天下上最大的 Python 应用程序的背后故事;最适合 Python 和 JavaScript 的应用程序;这两种语言可互补Python和JavaScript 的快速介绍。
在深入探讨细节之前,首先我们来简单地回顾1下 Python 和 JavaScript 的发展经历,以及它们当前在编程天下中的独特地位Python发展成为最大的编程语言之1的经过Python 问世于 1991 年,这是1种通用编程语言,因此可用于解决任何可以用代码量化和描述的问题。
近年来,Python 在科技市场的受欢迎程度大幅上升在Django 等 Web 开发框架的推波助澜下,Python 声名大噪,此外Python在学术圈也非常流行以后,Python 又成为了机器学习和数据处理的首选语言,这进1步增加了 Python 的人气。
CSDN付费自视觉中国Python 借助 Django 等 Web 开发框架在网络开发中人气大增,虽然还比没有上 JavaScript在 2020 年的 StackOverflow 开发者调查中,JavaScript 以 67.7% 的使用率位居榜首,而 Python 的使用率为 44.1%。
在框架方面,JavaScript 的库和框架 jQuery、React 和 Angular 占据前3位Django 排在第 10 位如今,许多科学家和研究人员都在使用 Python,这些人精通复杂的科学知识,但技术力没有是特别强,对他们来说,Python 是1种简单易学的语言。
科学家们可以利用 Python 快速制作原型,因此这种语言更具吸引力这1切都是因为 Python 是最简单的语言之1,但这种语言入门容易,想要精通却很难即使你没有是程序员,也可以利用 Python 实现简单的自动化,比如抓取网站的数据,或者将数据从1个程序迁移到另1个程序。
此外,如果花费1番心思真正掌握 Python,就可以利用它来构建各种各样的JavaScript 成为通用编程语言的漫漫长路JavaScript 于 1995 年首次问世当时还没有 Web 应用,JavaScript 的目标是让 Web 成为1个真正的应用程序平台。
JavaScript 的发展并非1帆风顺由于1些设计选择,以及糟糕的营销,JavaScript 被许多开发人员厌弃,而且由于低网速和低带宽的限制,JavaScript的能力也非常有限另外,很长1段时间以来,跨浏览器的兼容性1直存在问题,这使得开发人员很难构建可以在所有浏览器上运行的网站。
CSDN付费自东方IC多年来,JavaScript 的受欢迎程度1直在稳定增长于 2006 年发布的 jQuery 是第1个消除跨浏览器兼容性问题的库在 jQuery 的支持下,网站交互性的实现变得更加容易。
后来又出现了1个支流框架 AngularJS,但它后来被 Angular 2+ 取代,如今该框架在企业级解决方案中仍然非常流行2011 年~2012 年左右,JavaScript 首次获得了所有支流浏览器的支持,包括Firefox、Chrome、Opera 和 Safari。
但即使到现在,JavaScript 仍然未能获得 100% 的支持这是因为 JavaScript 会定期添加新功能,因此浏览器开发人员必须没有断努力改进对 JS 的支持2013 年,Facebook 工程团队发布了 React,该框架迅速流行起来,并为巩固 JavaScript 作为最受欢迎的网络技术贡献了重要力量。
当然,上述只是 JavaScript 发展历史的概要,实际上整个发展过程更加漫长,更加复杂总的来说,JavaScript 经历了重重磨难,才有了如今的地位目前,新版 JavaScript 的设计正在朝着成熟通用编程语言的方向迈进。
何时使用 Python 和 JavaScript 来构建核心组件如果核心组件或系统发生故障的时间过长,整个项目就会面临崩溃因此,我们需要慎重地选择这部分的构建技术对于优先级较低的系统,你可以尝试没有同的方法,找到最节省成本的方法。
然而,在为构建核心组件选择编程语言时,也采用这种态度就会导致项目走向失败假设有1款次要用于共享照片和视频应用程序,在全球拥有超过 10 亿用户,那么处理海量内容的服务器就是该应用程序的核心组件对于这类应用,我第1个想到的就是Instagram,这款应用号称“天下上最大的 Python 网站”。
Instagram 的1位工程师曾表示,“Instagram 的服务器完全由 Python 驱动”Instagram 服务器的应用程序就是“1个庞大的、包含数百万行代码以及数千个 Django 端点的大型代码库”。
Instagram 的每张照片、每个视频都是通过最流行的 Python Web 框架 Django 编写的为何 Instagram 会选用 Python 来编写核心服务器?Instagram 使用了大量 Facebook 数据中央的服务器。
工程师没有仅需要管理应用程序的外观、消息流、内容推荐算法,还需要确保服务器的 CPU 没有会过热这是1项极其艰巨的任务他们为何会选择 Python 作为次要语言?Instagram 的开发者博客公布了答案:“我们最初选择使用 Python,是因为该语言简单且实用,这取我们的理念非常吻合,即从简单的事情入手’。
但简单也有1个缺点:效率低”简单且实用Martin Fowler 是1位开发大师,拥有数十年的从业经历,还出版了多本书籍,他曾经写道:“任何傻瓜都可以编写计算机可以理解的代码但只有优秀的程序员可以编写人类可以理解的代码。
”这意味着,虽然你的目标是确保机器没有会因每天为数十亿用户提供服务而过热,但实现这1点的方式并没有是学习怎样更好地编写机器代码你必须编写方便其他开发人员理解的代码,这样他们就可以在必要时快速调试代码,或在现有代码之上构建新功能,同时还没有会担心破坏现有系统。
Python 非常适合这类应用,因为该语言方便阅读、简洁且易于理解Instagram 使用 JavaScript 吗?虽然 Instagram 的服务器选用了 Python,但界面部分却并非由 Python 负责。
Python 负责存储和管理所有数据,但智能手机上的界面是使用原生编程语言构建的,而且还有很大1部分来自 JavaScriptInstagram 的移动界面是使用 Swift(iOS)和 Java(Android)构建的,但流行的移动前端 JavaScript 框架 React Native 也发挥了重要作用。
Instagram 工程师之所以选择该框架,是因为他们希望提高开发速度,这样就能够尽快为应用程序的 iOS 和 Android 版本添加新功能React Native 是没有二之选,因为工程师只需编写1套代码就可以在没有同的系统上发布新功能。
他们可以使用 JavaScript 代码在两个系统上创建原生界面本来他们可以使用另1种方法,例如利用 Swift 和 Java 构建单独的界面,但他们选择了 React Native在 React Native 的支持下,维护界面的工作没有仅可以节省成本和开发时间,而且也可以减轻开发人员的负担。
Python 取 JavaScript:哪种语言的使用更多?Instagram 代表了当前网络和移动行业的基准许多流行的应用都采用了取之类似的结构:后端采用 Python,前端采用 JavaScript。
即使是取 Instagram 完全没有同的 PayPal,也有类似的技术栈他们曾在1个非常简单的声明中称使用了 Python 来管理数据,而且还使用 JavaScript 来创建用户界面这份声明被极度简单化了,因为了解1下他们所使用编程语言和工具的细节,就会被复杂性所淹没。
另外,他们没有像 Instagram 那样热衷于取全天下分享技术栈的细节还有1篇博文解释说,PayPal 的中央层基础设施(Web服务器和前端)采用了Node.js,因此这样他们就可以只使用 JavaScript 来构建网站了。
但这也没有是核心组件PayPal 的的核心组件隐藏在所有这些界面之下,其中很多是采用 Python(很可能还有其他几种语言)编写的,而且安全性、稳定性和数据管理也是由 Python 负责的JavaScript 没有适合核心系统的构建。
最初,这门语言的设计目标是为网站添加交互性,虽然如今已经发展成为1个强大的工具,但依然受到设计的限制另1方面,Python 的设计目标是通用编程语言,因此它的用途远远超出了 Web 开发如今,Python 还植根于学术界。
我们没有仅可以利用 Python 构建网站,而且还可以利用这门编程语言来构建人工智能的神经网络因此,总的来说,Python 的使用比 JavaScript 更广泛但是,在几个领域内JavaScript 是没有二之选,选择 Python 就没有太明智了。
JavaScript 相较于 Python 的优势JavaScript 是移动开发领域的赢家虽然有1些移动开发的小众框架(比如 Kivy 和 PyQT)是使用Python开发的,但几乎没有人使用对于 Python 开发人员来说,学习 JavaScript 并使用其最流行的移动开发框架 React Native 来构建应用程序是合理的选择。
还有1个领域 JavaScript 略胜1筹,那就是前端开发在构建现代界面方面,JavaScript拥有1流的框架(React、Angular、Vue)开发人员还可以借助 Node.js,构建应用程序的服务器端。
此外,开发人员还可以通过 JAM 技术栈(即JavaScript + APIs + HTML),在短期内快速构建漂亮的 Web 应用对于预算有限,时间紧迫的中小型 Web 和移动开发团队来说,JavaScript 绝对是最佳选择。
Instagram 和 PayPal 的例子表明,Python 取 JavaScript 结合使用,可以构建出主导市场并彻底改变数十亿人生活的应用程序JavaScript 在性能上是否超越了 Python?。
使用 JavaScript 构建的应用程序可以在 Web 上快速运行取 Python 应用程序相比,无疑使用 Node.js 构建的 Web 应用程序的运行速度会更快正如 Towards Data Science 所说,“Python 的性能相对较慢,因为它只能单线处理请求,而 Node.js 可以使用多线程。
”有1些方法可以优化 Python 的性能,因为其底层使用的是 C 语言例如,NumPy 利用经过优化的 C 代码提升了 Python 的速度Cython 是1个编译器,是 Python 语言的超集,使用该编译器的开发人员可以构建速度更快的C模块,从而加快 Python 代码的执行。
1般来说,对于 I/O 压力较大的应用程序(比如 Facebook)来说,JavaScript 的运行速度更快,这类应用程序需要处理大量的实时数据,避免用户等待至关重要如果是CPU需求较大的应用程序,例如需要处理大量数据来解决特定问题的机器学习模型,则Python的速度更快。
另外,需要GPU进行大量计算的应用程序,也应该选用PythonInstagram属于I/O 密集型应用,但它的服务器使用了Python,这表明,经过合理的优化后,Python的执行速度也可以很快关于性能,我们还需要考虑到另1个层面:走向市场的时间。
只要代码编写合理,这两种语言都可用来快速构建最小化可行产品对于复杂的程序,使用Python可以缩短开发时间,因为该语言易于阅读和调试此外,Python还可以促进团队协作而使用JavaScript构建产品则会比较复杂,虽然速度很快,但开发时间会更长。
出于这个原因,如今很多公司选择了TypeScript,因为1些开发人员认为TypeScript比Python更容易阅读和维护机器学习领域内Python取JavaScript的使用Python 是机器学习开发人员的首选语言。
机器学习很复杂,涉及大量数据,因此选择Python合情合理Python 是1种简单易读的语言,可以减轻开发人员的负担,而且它1直是数据科学的标准如今流行的机器学习框架(如TensorFlow、scikit-learn、PyTorc)大多是使用Python编写的,而且它们还提供了公用的 Python API。
TensorFlow 曾在2018 年发布了该框架的 JS 版本,支持开发人员构建可在浏览器或 Node.js 服务器中运行的机器学习模型但这还没有足以赢得整个机器学习的天下Python非常适合机器学习,而且在短期内它没有太可能被另1种语言取代。
Python 和 JavaScript 的未来很多人认为 Python 取 JavaScript 做比较并没有公平毕竟这两种语言的设计初衷没有同,因此二者在开发中的应用也存在差异正是这些差异使得这两种技术能够在现代编程天下中完美地互补。
将来这种情况会发生变化吗?就目前来看,JavaScript 作为最强大的 Web 取移动应用开发工具的地位似乎非常牢固同时,JavaScript 也在朝着通用编程语言的方向发展,但未来它能否取代 Python 之类的语言,目前尚无定论。
至于 Python,由于可读性、易用性以及处理数据的能力,该语言可能会继续主导机器学习领域和学术界说到底,技术栈的选择始终取决于项目的性质、程序员掌握的技术以及其他多种因素*本文由CSDN翻译,未经授权,禁止转载。
原文链接:https://medium.com/@STXNext/python-vs-javascript-is-it-a-fair-comparison-a3d90288a204—
这篇文章就到这里啦,如果你觉得有用的话,没有妨给我1个赞,也可以关注我的账号,收藏我的文章,让我们1起学习进步吧!
当前非电脑浏览器正常宽度,请使用移动设备访问本站!