写点什么

JavaScript 浏览器统治地位不保?Python 有望取代

  • 2021-12-02
  • 本文字数:1834 字

    阅读完需:约 6 分钟

JavaScript 浏览器统治地位不保?Python 有望取代

The Register 报道,Mypy 项目核心团队的成员 Ethan Smith 创建了一个项目,项目将使 CPython 通过 WebAssembly 或 WASM 在 Web 浏览器中运行。该项目是在 Python 核心开发人员 Christian Heimes 的帮助下创建的,它可以使 Python 在某些 Web 应用程序中取代 JavaScript。

 

“Christian Heimes 和我正在开展的新项目目标是使网络成为 CPython 的支持平台,就像 Windows 或 macOS 一样,”Ethan Smith 说。

 

项目遭质疑:为什么在浏览器中运行 Python?

 

Ethan Smith 表示,虽然已经顺利在浏览器中运行了 CPython,不过还有很多工作要做。此外他构建的脚本也已开源。

 

Python 之父 Guido van Rossum 也对该项目表示了肯定,他还提到可以考虑将 CPython on WASM 与 github.dev 网络服务集成,该服务提供了一个完全在浏览器中运行的交互式开发环境,这样可以实现在浏览器中进行 Python 开发。

 

但是项目也遭到了质疑,有人提问称:为什么要在浏览器中运行 Python?

 

对此,Django 联合创始人 Simon Willison 回复道,开始学习 Python 最难的部分是安装 Python,这个项目已经解决了此问题。而且 WASM 也不仅仅局限于浏览器,它是一个非常强大的沙盒,这意味着你也可以使用它来运行不受信任的服务器端代码。

 

Pyodide 项目发布在前

 

The Register 报道,本项目是在另一个名为 Pyodide 的项目之后推出的,Pyodide 项目也使 Python 代码能够在浏览器中运行。

 

“我希望这将使更广泛的 Python 开发人员生态系统能够面向网络,并允许更轻松地与现有 Python 工具和流程集成,而 Pyodide 不得不像 micropip 一样重新发明以取代标准的 pip 包安装程序,”Ethan Smith 解释说。 

 

2019 年 4 月,Mozilla宣布名为 Pyodide 的项目,旨在浏览器内运行一个完整的 Python 数据科学堆栈。原因在于通用的浏览器语言 JavaScript ,没有成熟的数据科学处理库,也缺乏一些数值计算很有用功能和数据结构,比如运算符重载等。

 

Pyodide 的工作流程如下:

 

  • 下载主流 Python 解释器(CPython)的源代码,以及科学计算包(NumPy 等);

  • 进行很小的调整以使其适应新环境;

  • 使用 emscripten 的编译器将它们编译为 WebAssembly。

 

Pyodide 项目地址:https://github.com/pyodide/pyodide

 

本项目地址:https://github.com/ethanhs/python-wasm

 

Ethan Smith 希望他的项目能够帮助促进基于 Web 的跨平台应用程序开发,但很快补充说 WASM 上的 CPython 仍处于开发的早期阶段。

 

CPython 和 WebAssembly 简介

 

CPython

 

如下是官方对 CPython 的说明:

 

CPython is Guido van Rossum’s reference version of the Python computing language. It’s most often called simply “Python”; speakers say “CPython” generally to distinguish it explicitly from other implementations.

 

CPython 是用 C 语言实现的 Python 解释器。作为官方实现,它是最广泛使用的 Python 解释器。除了 CPython 以外,还有用 Java 实现的 Jython,用 .NET 实现的 IronPython,使 Python 方便地和 Java 程序、.NET 程序集成。另外还有一些实验性的 Python 解释器比如 PyPy。

 

CPython 是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括 C 语言)交互的外部函数接口。

 

WebAssembly 的诞生

 

2015 年,Mozilla 在 asm.js 的基础上发布了 WebAssembly 项目;2017 年,Firefox、Chrome、Safari、Edge 相继支持 WebAssembly;2018 年,WebAssembly 1.0 正式发布;2019 年,W3C 发布 WebAssembly 正式标准,WebAssembly 成为继 HTML、CSS、JavaScript 之后第 4 种 Web 语言。目前包括ChromeFirefoxSafariOperaEdge在内的大部分主流浏览器均已支持 WebAssembly。

 

WebAssembly 是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运行的技术方案。

 

它提供了抓换机制(LLVM IR),把高级别的语言(C,C++和 Rust)编译为 WebAssembly,以便有机会在浏览器中运行。主要是解决目前 JavaScript 的效率问题,设计立足点为快速,内存安全和开放。

 

总结其​​​​​​​特点如下:

 

  • 跨平台;

  • 更安全(无法读取本地数据)

  • 免安装(不需下载插件/APP)

  • 快速部署:升级只需在服务器更新代码

  • 小体积

 

参考链接:

 

https://www.theregister.com/2021/11/30/python_web_wasm/

 

https://www.dailyadvent.com/news/22565638947df510839e7d315480790a-You-loved-running-JavaScript-in-your-web-browser-Now-get-ready-for-Python-scripting

 

2021-12-02 17:5417892

评论 1 条评论

发布
用户头像
赶走一个垃圾,又来一个垃圾。
2021-12-08 11:52
回复
没有更多了
发现更多内容

新必应(New Bing)申请出错终极方案

kcodez

微软 ChatGPT New Bing

在深圳龙岗,看见空间智能化的潮水涌动

脑极体

全屋智能

会声会影2023中文最新版消息

茶色酒

会声会影2023

架构误区系列14:纯代码视角的复用

agnostic

复用

得物供应链复杂业务实时数仓建设之路

小小怪下士

Java 程序员 后端

再有人问你什么是分库分表,直接把这篇文章发给他

做梦都在改BUG

Java 分库分表

FL Studio2023免费中文版数字音频工作站软件

茶色酒

FL Studio2023

SpringBoot+ThreadPoolTaskExecutor 批量插入百万级数据实测

做梦都在改BUG

Java Spring Boot 多线程 ThreadPoolTaskExecutor

赞不绝口!仅靠阿里P9分享的 Redis 工作手册,拿到60W年薪Offer

做梦都在改BUG

Java 数据库 redis 缓存 面试

手把手教你使用 Python 调用 ChatGPT-3.5-API

老表

Python GPT-3 ChatGPT

Spring Boot 整合流程引擎 Flowable,so easy

做梦都在改BUG

Java Spring Boot 流程引擎 flowable

kafka是怎么做到基于磁盘却比内存还快的?

做梦都在改BUG

kafka 内存 磁盘

为什么 MyBatis 源码中,没有我那种 if···else

程序知音

零基础如何学习Web 安全,如何让普通人快速入门网络安全?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

JDK 环境配置

流火

Java centos jdk window

字字珠玑!GitHub爆赞的网络协议手册,被华为大佬指定内部必学?

做梦都在改BUG

Java 计算机网络 网络协议

堪称神级!GitHub上标星157K的Java教程,全程干货,只讲重点

做梦都在改BUG

Java

架构实战营模块1第3课 - 什么是面向复杂度架构设计

净意

图像的滤波与图像增强的Matlab实现

timerring

数字图像处理

【我在京东做研发】揭秘支撑京东万人规模技术人员协作的行云DevOps平台

京东科技开发者

开源如何推动云计算的发展与创新 | 雨林开源行

开源雨林

开源 kubenetes OpenStack

在文心一言出生地,百度悄悄燃烧AI小宇宙

白洞计划

百度 文心一言

ChatGPT Turbo API 18元/100万个单词

kcodez

openai ChatGPT

ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘

亚马逊云科技 (Amazon Web Services)

爱不释手!阿里十几位大牛联玦整理—23年最全面试八股文合集

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等

汀丶人工智能

自然语言处理 数据标注

从理论到实践:MySQL性能优化和高可用架构,一次讲清

做梦都在改BUG

Java MySQL 数据库 面试 性能优化

2022 IoTDB Summit:IoTDB PMC 曹高飞《Apache IoTDB 秒级扩容能力与存算分离实践》

Apache IoTDB

数据库 IoTDB

Portraiture4中文免费ps滤镜磨皮插件

茶色酒

Portraiture3

人工智能+低代码,打通AI落地的最后“一公里”

明道云

一文彻底弄清楚分布式锁

做梦都在改BUG

Java 分布式锁

JavaScript 浏览器统治地位不保?Python 有望取代_大前端_闫园园_InfoQ精选文章