デジタル人材の育成
最終更新日:2021年6月25日
POSIX規格に規定されたシェルスクリプトは、多くの環境で動作する非常にポータビリティの高いスクリプト言語であり、そのポータビリティから広く開発者に配布するスクリプトなどの用途に適しており、実際にそのような目的で多く利用されている。しかしながら、シェルスクリプトはあくまで補助的に利用される言語であり、シェルスクリプトを書く開発者もそれを専門としているわけではない事が多い。さらにシェルスクリプトは古い言語であり、一般的なプログラミング言語とは異なった構文を持っていることから記述するのが難しく、生産性を低下させており、バグの原因にもなっている。
本プロジェクトでは、現代的なプログラミング言語に近い構文と機能を持つシェルスクリプト言語を開発する。この言語は POSIXに規定されたポータビリティの高いシェルスクリプトへの変換を行うことによって、書きやすい言語でありながら、POSIX準拠のシェルスクリプトと同等のポータビリティを実現する。これによって開発者はポータビリティの高いシェルスクリプトを簡単に書くことができるようになり、ポータビリティがより高いスクリプトの配布が促される効果が期待できる。
また、近年では多くの言語で採用されていながらシェルスクリプトでは利用できなかった静的型検査の手法を採用することで、より安全でバグの少ないスクリプトを書くことが可能となり、生産性も向上することが期待できる。
近年CI・DevOpsが各開発運用現場に適用されているが、そこで使われているのはシェルスクリプトという古い言語のままである。bashや高級シェルを前提とするOSもあるが、Dockerで使われているAlpine Linuxではバイナリサイズの小さいashが標準で、シェルの持つ機能が少ない。
シェルスクリプトは互換性を意識すると便利な拡張機能は使えず、プログラマにとっては非常につらい書き方をしなければならない。JavaScriptのBabelのように拡張性の高い文法で書けて、実行のバックエンドは古い互換性の高い言語にトランスパイルするような言語拡張環境をシェルスクリプトの世界で実現できることを期待している。
2021年6月25日
2021年度未踏IT人材発掘・育成事業:矢尾田プロジェクト概要を掲載しました。