JavaScriptのようにPythonコードをHTML内に記述して実行できる「PyScript」 Anacondaがオープンソースで公開
米Anaconda社は、HTML文書の中にJavaScriptと同じようにPythonのコードを記述し、実行可能にする「PyScript」をオープンソースで公開した。
この記事は新野淳一氏のブログ「Publickey」に掲載された「「「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開」(2022年5月9日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
Pythonの主要なディストリビューション「Anaconda」などを提供している米Anaconda社は、HTML文書の中にJavaScriptと同じようにPythonのコードを記述し、実行可能にする「PyScript」をオープンソースで公開しました。
下記が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以外の言語を選んでプログラミングする、ということが広がっていくのでしょうか。
関連記事
- オープンソース「cURL」の作者、大企業から「24時間以内にこの質問に答えるように」との無礼なメールを受け取る
オープンソース「cURL」の作者に届いた大企業からのメールの内容が無礼だと話題に。cURLの作者は、問題の背景にオープンソースを理解していないユーザーの存在があると指摘している。 - GitHubがコード検索を強化 正規表現に対応、プログラミング言語別の検索も可能に
GitHubが強化したコード検索機能のプレビュー版を公開。正規表現に対応した他、特定のプログラミング言語を対象にすることや、特定の組織やリポジトリ、ファイルパスなどの検索範囲を指定することなどが可能になった。 - Kotlin開発元が軽量なコードエディタ「Fleet」発表 エディタとバックエンドの分散処理や共同作業に対応
プログラミング言語の「Kotlin」や、統合開発ツール「IntelliJ IDEA」などの開発元であるJetBrainsが、新規に開発した軽量なコードエディタの「Fleet」を発表。他のユーザーとエディタ画面を共有できる機能や、エディタとバックエンドの分散処理が可能な点が特徴という。 - Microsoftが「.NET 6」正式リリース .NETとして最初の長期サポート版
米Microsoftが、同社のアプリケーションフレームワーク「.NET」の最新版となる「.NET 6」の正式リリースを発表した。「.NET Framework」と「.NET Core」フレームワークを「.NET」に統合してから初の長期サポート版(LTS版)の.NETとなる。 - GitHubのAIプログラミング機能「Copilot」がneovimとIntelliJ IDEAでも利用可能に
GitHubのAIプログラミング機能「GitHub Copilot」が、「nervim」と「IntelliJ IDEA」でも利用可能になった。これまでは「Visual Studio Code」のみに対応していた。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.