金源在线客服

在线咨询

QQ在线咨询

QQ咨询

关于pythonPython

Python与JavaScript做比较公平吗?(下)

作者: 更新时间::2023-04-24

JavaScript 相较于 Python 的优势

JavaScript 是移动开发领域的赢家。虽然有一些移动开发的小众框架(比如 Kivy 和 PyQT)是使用Python开发的,但几乎没有人使用。

对于 Python 开发人员来说,学习 JavaScript 并使用其最流行的移动开发框架 React Native 来构建应用程序是合理的选择。

还有一个领域 JavaScript 略胜一筹,那就是前端开发。在构建现代界面方面,JavaScript拥有一流的框架(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 可以使用多线程。”

有一些方法可以优化 Python 的性能,因为其底层使用的是 C 语言。例如,NumPy 利用经过优化的 C 代码提升了 Python 的速度。Cython 是一个编译器,是 Python 语言的超集,使用该编译器的开发人员可以构建速度更快的C模块,从而加快 Python 代码的执行。

一般来说,对于 I/O 压力较大的应用程序(比如 Facebook)来说,JavaScript 的运行速度更快,这类应用程序需要处理大量的实时数据,避免用户等待至关重要。

如果是CPU需求较大的应用程序,例如需要处理大量数据来解决特定问题的机器学习模型,则Python的速度更快。另外,需要GPU进行大量计算的应用程序,也应该选用Python。

Instagram属于I/O 密集型应用,但它的服务器使用了Python,这表明,经过合理的优化后,Python的执行速度也可以很快。

关于性能,我们还需要考虑到另一个层面:走向市场的时间。只要代码编写合理,这两种语言都可用来快速构建最小化可行产品。对于复杂的程序,使用Python可以缩短开发时间,因为该语言易于阅读和调试。此外,Python还可以促进团队协作。

而使用JavaScript构建产品则会比较复杂,虽然速度很快,但开发时间会更长。出于这个原因,如今很多公司选择了TypeScript,因为一些开发人员认为TypeScript比Python更容易阅读和维护。


机器学习领域内Python与JavaScript的使用

Python 是机器学习开发人员的首选语言。机器学习很复杂,涉及大量数据,因此选择Python合情合理。Python 是一种简单易读的语言,可以减轻开发人员的负担,而且它一直是数据科学的标准。

如今流行的机器学习框架(如TensorFlow、scikit-learn、PyTorc)大多是使用Python编写的,而且它们还提供了专用的 Python API。TensorFlow 曾在2018 年发布了该框架的 JS 版本,支持开发人员构建可在浏览器或 Node.js 服务器中运行的机器学习模型。

但这还不足以赢得整个机器学习的世界。Python非常适合机器学习,而且在短期内它不太可能被另一种语言取代。


Python 和 JavaScript 的未来

很多人认为 Python 与 JavaScript 做比较并不公平。毕竟这两种语言的设计初衷不同,因此二者在软件开发中的应用也存在差异。

正是这些差异使得这两种技术能够在现代编程世界中完美地互补。

将来这种情况会发生变化吗?就目前来看,JavaScript 作为最强大的 Web 与移动应用开发工具的地位似乎非常牢固。同时,JavaScript 也在朝着通用编程语言的方向发展,但未来它能否取代 Python 之类的语言,目前尚无定论。

至于 Python,由于可读性、易用性以及处理数据的能力,该语言可能会继续主导机器学习领域和学术界。

说到底,技术栈的选择始终取决于项目的性质、程序员掌握的技术以及其他多种因素。


   

上一篇:Python与JavaScript做比较公平吗?(上)
下一篇:你知道什么是python基础函数吗?