デジタル人材の育成
公開日:2023年6月19日
本プロジェクトでは動的型付けプログラミング言語Pythonにトランスパイル(変換)可能な静的型付けプログラミング言語、及びその周辺ツールを開発する。Pythonは産業・学術・教育用に広く普及しているプログラミング言語であるが、実行時にコードを検査する動的型付けという方式を採用しているため、実行するまでバグに気づきにくい、実行効率が悪いなどといったデメリットがある。またPythonはそのシェアに比して公式の開発ツール群が貧弱であり、環境構築が難しい言語とされている。これは再現性が重視される学術計算分野においては大きなデメリットである。本プロジェクトで開発するプログラミング言語でそれらの問題を解決する。
本プログラミング言語はPythonコードにトランスパイル可能にする。これにより、Pythonで書かれたコードやライブラリをゼロコストで流用可能となる。本プログラミング言語は強い静的型システムを持ち、より多くの潜在的バグをコード実行前に検出可能にする。このような動的型付け言語に静的型システムを載せる試みは、TypeScriptなどの先例があり、その有用性が実証されている。ただし本プログラミング言語はTypeScriptと違い、トランスパイル対象の言語との文法の互換性に拘らない。問題のあるPythonの文法を修正し、他言語で有効性が実証されている最新のコンセプト(トレイト、関数型プログラミングなど)を導入する。
また、ネイティブコードを出力する機能も実装し、高速な実行を可能とする。更に、ランゲージサーバ、Linter、フォーマッタ、パッケージマネージャなど、開発を補助するツール群を組み込み、それらをコマンド一つで呼び出せるようにする。これにより低い環境構築難度と高い再現性を実現する。
本プロジェクトは、Pythonへトランスパイル可能な静的型付けプログラミング言語とその周辺ツールを開発する提案である。Rust風なPythonというコンセプトは2023年5月初旬にもMojoが発表されたりと業界内でも人気が高く、ホットである。
動的型付けのプログラミング言語に対して静的型システムを持ち込むという試みは、過去ではJavaScriptにおけるTypeScriptだったり、最近ではLaTeXの代替を目指す静的型付け組版システムSATySFiや、シェルスクリプトの代替を目指す静的型付けスクリプト言語Cotowaliなどの先例があり、多くのプログラマーの生産性を高めることに成功している。
最近は高速なPython処理系の実装も増えてきていることから、多様なバックエンドの選択肢も増えている。さらにネイティブコード実装をすることで高速化の他にライブラリのバージョン依存関係をコンパイル時に確定することでシングルバイナリとしての再現・再配布が用意となるメリットもある。過去のPythonライブラリの資産をうまく活用できるのであれば、エコシステムとしても良い。
JuliaやScalaなど過去の先人達の設計や実装もリスペクトしつつ、TypeScriptのPython版のようなものが生まれることを期待して本提案を採択した。
2023年6月19日
2023年度採択プロジェクト概要(芝山PJ)を掲載しました。