デジタル人材の育成

未踏IT人材発掘・育成事業:2021年度採択プロジェクト概要(矢尾田PJ)

最終更新日:2021年6月25日

1.担当プロジェクトマネージャー

  • 竹迫 良範(株式会社リクルート データプロダクトユニット ユニット長)

2.採択者氏名

  • 矢尾田 貴大(Pianoforte 代表)

3.採択金額

  • 2,736,000円

4.テーマ名

  • シェルスクリプトへのコンパイルを行う静的型付けスクリプト言語の開発

5.関連Webサイト

6.申請テーマ概要

POSIX規格に規定されたシェルスクリプトは、多くの環境で動作する非常にポータビリティの高いスクリプト言語であり、そのポータビリティから広く開発者に配布するスクリプトなどの用途に適しており、実際にそのような目的で多く利用されている。しかしながら、シェルスクリプトはあくまで補助的に利用される言語であり、シェルスクリプトを書く開発者もそれを専門としているわけではない事が多い。さらにシェルスクリプトは古い言語であり、一般的なプログラミング言語とは異なった構文を持っていることから記述するのが難しく、生産性を低下させており、バグの原因にもなっている。

本プロジェクトでは、現代的なプログラミング言語に近い構文と機能を持つシェルスクリプト言語を開発する。この言語は POSIXに規定されたポータビリティの高いシェルスクリプトへの変換を行うことによって、書きやすい言語でありながら、POSIX準拠のシェルスクリプトと同等のポータビリティを実現する。これによって開発者はポータビリティの高いシェルスクリプトを簡単に書くことができるようになり、ポータビリティがより高いスクリプトの配布が促される効果が期待できる。

また、近年では多くの言語で採用されていながらシェルスクリプトでは利用できなかった静的型検査の手法を採用することで、より安全でバグの少ないスクリプトを書くことが可能となり、生産性も向上することが期待できる。

7.採択理由

近年CI・DevOpsが各開発運用現場に適用されているが、そこで使われているのはシェルスクリプトという古い言語のままである。bashや高級シェルを前提とするOSもあるが、Dockerで使われているAlpine Linuxではバイナリサイズの小さいashが標準で、シェルの持つ機能が少ない。

シェルスクリプトは互換性を意識すると便利な拡張機能は使えず、プログラマにとっては非常につらい書き方をしなければならない。JavaScriptのBabelのように拡張性の高い文法で書けて、実行のバックエンドは古い互換性の高い言語にトランスパイルするような言語拡張環境をシェルスクリプトの世界で実現できることを期待している。

更新履歴

  • 2021年6月25日

    2021年度未踏IT人材発掘・育成事業:矢尾田プロジェクト概要を掲載しました。