開発でマイナー言語を採用する時に考えることって何だろ

ちょっとマイナーな言語を採用する時、どんな情報を収集して、何を検討し、どうやって判断するのか? ということを、帰り道につらつら考えていたので、とりとめもなくメモ。

それも、言語仕様の詳細や内部機構は知らず(デコンパイルしたこともなく)、好奇心から少し触ったことがある程度・・・なーんて場合。世間のマネージャやアーキテクトと呼ばれる人たちは、一体何を考えて採用を決めているんだろう。自分には、まだよくわかりません。

  • システムのこと
    • システムの種類
    • 作りたいものの機能概要
    • パフォーマンスやセキュリティの要件
      • 特殊な条件や制約があるか
  • システム開発のこと
    • 社内用か、外販用か
    • 何年程度使うつもりか(見込みの保守期間)
    • 将来の更新計画はあるか
    • 1人で作るのか、チームで作るのか
      • チームなら、経験者がいるかどうか
  • 言語仕様
    • 開発開始からどれくらい経過しているか
    • 最近バージョンアップが行われているか
    • リリース頻度はどれくらいか
    • バージョンアップによって開発者にどのような手間が発生しうるか
    • 公式のドキュメントは充実しているか
    • 言語自体の技術的な課題はあるか、あるとすれば何か
  • 開発環境
    • そこそこ安定していて気が利くエディタ、デバッガ、ビルドツールは揃っているか
    • 広く支持されているIDEはあるか
    • テスティングフレームワークはあるか
    • ソースコード管理ツールとの相性はよいか

その他として、マイナー言語を扱う組織的リスク(開発・保守する人はいるのか、教育コストを払って育てるのか、新たに雇うのか)も、当然ながら考える必要がある。

また、開発にあたって有償ツールが必要な場合、価格とライセンス体系はどうなっているかも気になるに違いない。

情報収集にあたっては、サイトや書籍、ユーザコミュニティの有無、充実具合などが知りたいトコロ。他社事例なんかも、できれば欲しいかも?

・・・色々あるなぁ。もっとあるんだろうなぁ。