「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開
Pythonの主要なディストリビューション「Anaconda」などを提供しているAnaconda社は、HTML文書の中にJavaScriptと同じようにPythonのコードを記述し、実行可能にする「PyScript」をオープンソースで公開しました。
Did you hear the news from PyCon!? We are thrilled to introduce PyScript, a framework that allows users to create rich Python applications IN THE BROWSER using a mix of Python with standard HTML! Head to https://t.co/n4OoeBD46z for more information.
— Anaconda (@anacondainc) April 30, 2022
下記がPyScriptのコードの例です。まるでJavaScriptのように<py-script>タグを用いてHTMLの中にPythonのコードを記述しています。
<html>
...
<py-script> print('Now you can!') </py-script>
</html>
Webブラウザ上にPythonインタプリタ
PyScriptによるPythonコードの実行はWebAssemlby化されたPythonインタプリタによってWebブラウザ上で実行されるため、サーバ側に特別な仕組みを持つ必要はありません。
PyScriptのデモページも用意されており、Hello Worldから始まり、ToDoアプリや統計とグラフ化などまで、さまざまなアプリケーションの記述が可能なことが示されています。
一般的なPythonライブラリ群にも対応するとのことで、Webブラウザ上でPythonの得意な計算処理も可能になることが期待されます。
PythonインタプリタをWebAssemblyで実装した「Pyodide」が中心
前述の通り、PyScriptはWebAssembly化された代表的なPythonインタプリタ実装である「Pyodide」(パイオダイドと発音されているようです)を用いて開発されています。
PyodideはMozillaが2018年に開発を開始したプロジェクトで、Pythonのリファレンス実装であるCPythonのソースコードに最小限の変更を行い、EmscriptenでWebAssemblyへコンパイルできるようにすることで、WebブラウザなどのWebAssembly実行環境上で事実上標準と同じPythonインタプリタが実行できることを目指しているプロジェクトです。
参考:PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中
PyScriptはこのPyodideを中心に、HTMLやJavaScriptとの連携機能などを実装したものです。
WebAssemblyによるインタプリタの実装はPythonだけでなくRubyでも実現しています。PyScriptができるなら、RubyScriptも技術的に可能でしょう。
参考: WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。WebブラウザでRubyが動く世界がやってくる
PyScriptはビジョンとしてPython以外の言語にも対応する方向性を示しています。今後Webブラウザでは用途に応じてJavaScript以外の言語を選んでプログラミングする、ということが広がっていくのでしょうか。
関連記事
PublickeyではWebAssemblyが注目され始めた2017年に、JavaScript以外の選択肢が広がる可能性について記事を書いていました。
あわせて読みたい
ついにKubernetesからDockershimが正式に削除、Docker Engineのサポートが終了。今年最初のKuberenetes 1.24正式版がリリース
≪前の記事
GitHub、コードのコントリュビュータに2要素認証を義務化、2023年末までに。パスワードレスへの対応も積極化