На шляху до створення стеку розробки даних для браузерів у Mozilla детально описали Pyodide. Це експериментальний проект Python, призначений для обчислень без використання віддаленого ядра (тобто програми, яка запускає і перевіряє код).
Як пояснив у своєму блозі розробник Майк Дроттбум, це стандартний інтерпретатор Python, що повноцінно працює у браузері. Хоча Pyodide не такий новий проект, як Transcrypt, Brython, Skulpt і PyPyJs, він не потребує переписування популярних обчислювальних інструментів (як от NumPy, Pandas, Scipy і Matplotlib). Його здатність переробляти вбудовані типи даних забезпечує взаємодію між браузерними API й бібліотеками JavaScript.
Pyodide використовує проксі щодо змінної, проксі-сервер зберігає вихідну змінну JavaScript і викликає для неї відповідні методи. Це означає, що будь-яка змінна JavaScript повністю доступна з Python. Такий потужний рівень інтеграції дозволяє користувачу опрацьовувати дані в Python, а тоді надсилати їх у JavaScript для візуалізації.
Pyodide базується на WebAssembly, низькорівневій мові програмування, яка працює з майже нативною продуктивністю, і emscripten (зокрема збірці Python для emscripten, що отримала назву «cpython-emscripten»). Emscripten також дає віртуальну файлову систему на JavaScript, яку може використовувати інтерпретатор Python і в якій файли зникають під час закриття вкладки.
Автори кажуть, що проект все ж на стадії розробки й деякі функції ще не підтримуються. Що ж до продуктивності, то інтерпретатор Python всередині віртуальної машини JavaScript працює від 1 до 12 разів повільніше у Firefox і до 16 разів повільніше у Chrome. Така швидкість годиться для інтерактивного дослідження, але навряд підійде для власного коду.
Ще немає коментарів