
No, maybe not all of them. JavaScript is the preferred target language for “transpilers” who convert programming languages into other languages. In particular, Python has many users and rich libraries, which makes it a good language for transpiling to JavaScript. Here are seven projects that make useful use of Python in the JavaScript world. Some of these projects are two-way.
Brython
One of the ideals of WebAssembly is to allow you to use any language you want for web development, but there is still a long way to go to achieve this goal. BrythonThe idea is to achieve this goal right now, at least for Python 3.
Brython implements a version of Python 3 for client-side web programming through a JavaScript library that emulates all Python 3 keywords and most of its internals. Scripts written in Python can be embedded directly into web pages. Brython interacts with the DOM (Document Object Model) and the browser, with a high-level Python module interface that handles everything that would normally be done directly in JavaScript.Navigatorpackage) is provided.
abundant live code exampleAnd Mini app galleryYou can take a look at how Brython works. using brython native android appIt is also possible to write in Python. You can use async function, but python asynchronous Instead of Brython asynchronous must be used.
However, the restrictions that apply to JavaScript in browsers also apply to Brython. For example, it does not support working with local file systems. If you need a way to persist data per application HTML 5 local storageshould use
javascript sun
JavaScripthondoes not provide full in-browser support like the Brython project, but focuses on translating Python 3.5 and later code to JavaScript. It generates ES6 code to minimize the need for browser-side polyfills and preserves source maps, making it compatible with tools like Webpack.
asynchronousAnd to wait for, Python 3.6 supports most common Python keywords and behaviors, including F strings, Python class methods, and inheritance. Additionally, if you need to work with JavaScript directly, you can also inject JavaScript inline via a special function call. For reference, JavaScript Sun has been updated to support Python 3.10 to the latest version, but the latest commit is July 2022.
Zippy
JiphyThe name is short for “JavaScript in, Python out”. In other words, Zippy converts both languages bidirectionally. You can also mix code from both languages and convert it to either target language. However, there is a caveat before converting all OpenStack to JavaScript. The goal of zippy is not to completely transform the codebase. Zippy’s function, as stated in its README, is “to reduce the context switching required by Python developers when writing JavaScript code and vice versa”.
Zippy’s biggest drawback is that it only supports a subset of Python features. You cannot use default classes or arguments, only decorators and exceptions are supported. The main reason is that Zippy focuses on the line-to-line relationship between source code and target code. It does not support mapping Python’s standard library to JavaScript constructs. For reference, the Zippy project has not been updated since mid-2020. Therefore, until development resumes, it should be used with caution for testing purposes.
JS2Py
JS2Py, as the name suggests, converts JavaScript to Python and uses a pure Python conversion engine for this purpose. Currently, official support is limited to ES5, but experimental ES6 support is also available for Adventurers. JS2Py supports many cross-interoperabilities between Python and JavaScript. js2py.require You can import existing Node.js modules into your Python code using methods. Variables on the JavaScript side can be checked on the Python side, and Python objects can be used in JavaScript code. JS2Py also includes a very experimental virtual machine that evaluates JavaScript code from Python, but it is not yet recommended for production use.
Quick Scenario
RapidScriptallows you to write JavaScript applications in a language much closer to Python without the overhead of other similar frameworks. It is similar to CoffeeScript in that it transforms code from an alternative language such as Python into JavaScript that can be run anywhere. Therefore, RapidScript supports the best of both worlds by applying Python’s own syntax to JavaScript functions such as anonymous functions and DOM manipulation, and providing the ability to use JavaScript libraries such as jQuery or Node.js . In other words, you can run a web page or node application using code generated by RapidScript.
Another handy feature of RapidScript is that it provides both Python and JavaScript nomenclature for operations where possible. For example, the special symbol $ used in jquery works like in rapidscript, and arrays .push(javascript) and .add(Python) can support all methods. However, this project should be considered an experimental project as it has not been updated since May 2021.
pyscript
Like Brython, which uses the same underlying technology Pythonlets you run Python directly in the browser. PyScript is a Python runtime ported to WebAssembly. Pyodide Use the project to set up a browser environment suitable for running Python as a web scripting language.
Pyscript allows two-way communication between JavaScript and Python environments. For example, a Python script can work with the document object model, calling JavaScript code and working with the returned results. Python applications can also use the browser as an output device. For example Python to print() You can use the command to write output directly to a web page. It’s pretty much the same way as printing the output to the console.
PyScript also provides a way to work with packages available in the PyPI package index, but this doesn’t always work as expected. For example, pyscript is used to handle HTTP requests. requests It is not yet compatible with libraries or other Python tools. However, Pyscript has a JavaScript equivalent that can do the same thing. fetch Provides a wrapper for the method.
transcription
TranscryptIf you hear the name and think of TypeScript, that’s okay. Because the basic concept of transpiling from Python to JavaScript is the same. It also tries to retain the structure and idioms of the original Python code, including lambda-like structures and multiple inheritance across multiple classes.
It can also generate a source map for transpiled code that points to the original Python, so developers can debug using that code rather than generated JavaScript. According to the documentation, Transcript does this by using CPython’s Abstract Syntax Tree module, which provides programmatic access to how Python parses its own code.
One of the great benefits of Transcript is its automatic access to the document object model. For example in python document.getElementByIdWhen accessed, converted code is in JavaScript document.getElementByIdFor programmers who want to use the framework to manipulate the DOM, Transcript allows writing JavaScript applications using React and the Material UI library. Online step by step tutorialis provided.
It is a related project and many parts are not yet known. Cryptnumago Numscript ports the NumPy mathematical and statistical library to JavaScript. Currently, NumScript is part of NumPy’s capabilities, but provides some of the most commonly used features, such as matrix operations. Numscript has not been updated since 2021.
editor@itworld.co.kr


