Python in the browser: my journey towards enhancing the Scientific Python ecosystem's interoperability with Pyodide
Agriya Khetarpal (~agriyakhetarpal) |
12
Description:
The Python programming language in recent years has gained advancements not only in terms of speed but also with its coverage of platforms and architectures that it supports, such as the upcoming iOS (PEP 730) and Android (PEP 738) ABIs, which will be a boon for its popularity and help expand it to a large variety of users. Similarly, the advent of WebAssembly (through the Emscripten toolchain) in the last decade has served a purpose rarely met by any other implementation of low-level code: being able to provide a way to run programs written in multiple languages at near-native speed by reworking higher-level instructions and their intermediate representations to near-assembly ones, that can run inside conventional browsers such as Google Chrome (and other Chromium-based browsers), Safari, and Firefox; across devices.
Here, the web browser has 1. access to the CPU of the host machine and therefore does not hit any major speed or connectivity constraints, and 2. the inherent security models for web browsers and sophisticated sandboxing means that security constraints are seldom a problem.
This talk shall describe Python in WebAssembly through its most popular implementation (Pyodide), how the Scientific Python and PyData ecosystems for scientific computing, artificial intelligence, data science, and more are working to improve interoperability with Pyodide – and lastly, discuss through an interactive yet informational exchange coupled with pragmatic considerations for this Python distribution in specific in terms of interactive documentation and packaging insights, and provide a precursor on how the Scientific Python ecosystem is expected to change in the coming years with further advancements in this area.
Prerequisites:
- This talk is intended for those familiar to a reasonable extent with the Python programming language and scientific computing libraries such as NumPy, SciPy, Pandas, and Matplotlib.
- However, it does not intend to dive into the details behind the implementation of Pyodide and how it uses the Emscripten toolchain, in order to appeal to a wider audience. The majority of the talk will also be accessible to new learners, who should be able to learn about software packaging and web-based interactive documentation. Seasoned Python programmers may still end up learning a few new things related to Pyodide, Emscripten and WASM.
- Participants should expect to receive a mixture of technical and non-technical content. Therefore, they should be familiar with using a web browser and navigating through documentation-based static websites.
Speaker Info:
Agriya Khetarpal is a software engineer at Quansight Labs, where he works on the packaging and distribution of fundamental open-source software in the PyData stack, and on approaches to WASM-powered interactive documentation that are primarily built to serve the purpose of accessibility and education for the Python programming language.
He graduated with a bachelor's degree from the University of Delhi in August, 2024.
He is interested in various topics that include but are not limited to: Python packaging, scientific computing, numerical software, compilers and toolchains, technical writing and documentation, and many more.
Speaker Links:
- GitHub: https://github.com/agriyakhetarpal/
- Twitter: https://twitter.com/agriyakhetarpal/
- LinkedIn: https://linkedin.com/in/agriyakhetarpal/
- Email address: agriyakhetarpal [at] outlook [dot] com