開発言語の選定
アプリ開発を行うための開発言語を選定する。
1. 言語の選定基準
本件はプライベートネットワーク内で動作するチャットアプリであるため、バックエンド技術が必要になる。 N君は、現在主に使われているバックエンド言語に関して調査した。その結果主に以下の5つの言語がバックエンドとして利用されていることがわかった。本件では下記の中から使用する開発言語を選択する。
- Ruby
- PHP
- Python
- Java
- Go
選定の基準は開発に関する前提条件で記述した前提条件を元に評価を行い、最も評価の高い言語を選択する。しかし、前提条件のままでは評価が難しいため以下に前提条件を満たしているかの判断基準について明記する。また、調査の段階(上記5つを列挙した段階)で現場で使われる言語を選定しているため、条件の「ある程度現場で広く使われていること」は条件を満たしているとする。
条件 | 判断基準 |
---|---|
初心者に易しいこと | 習得難易度が低いこと。(構文が単純、可読性が高いなど) |
調べやすいこと | 信頼度の高い一次情報にアクセスしやすいこと。学習のための本が多く出版されていること。日本語でアクセスできれば更によいとする。 |
効率的に成果物を作成できること | 定番のwebアプリケーションフレームワークの有無 |
ある程度現場で広く使われていること | マイナー言語でないこと。 上記、5つに選定した段階でクリアとする。 |
小さいリソースでの開発に向いていること | 言語の得意な用途が、小規模・個人開発に向いているか? |
オブジェクト指向プログラミングをサポートしていること | サポートしているか否か。 |
上記の基準に合わせて選定する。また、現場で使われているかは以降の評価項目から除外する。
選定方法は星取表により選定を行う。星取表は表を作成し各項目に対して星をつけ、合計評価点が高いものを選択する方法である。
今回は4種類の星により評価する。それぞれ以下のとおりである。なお、星が環境依存の可能性があるため点数を併記して星取表を作成する。
星 | 評価点 | 言葉で評価 |
---|---|---|
✕ | 0 | 非常に悪い |
△ | 1 | 悪い |
◯ | 2 | 良い |
◎ | 3 | 非常に良い |
また、条件の文章が長いため以下に示すとおり短縮して表記する。
条件 | 短縮表記 |
---|---|
初心者に易しいこと | 初心者 |
調べやすいこと | 調べやすさ |
効率的に成果物を作成できること | 短期開発 |
小さいリソースでの開発に向いていること | 個人開発 |
オブジェクト指向プログラミングをサポートしていること | OOP |
2. バックエンド言語星取表
前述の項目及び判断基準に基づいて星取表を作成する。以下に星取表を示す。
項目 | 初心者 | 調べやすさ | 短期開発 | 個人開発 | OOP | 合計点 | 順位 |
---|---|---|---|---|---|---|---|
Ruby | ◯2 | ◎3 | ◯2 | ◯2 | ◯2 | 11 | 1位 |
PHP | ◯2 | ◯2 | ◯2 | △1 | ◯2 | 9 | 2位 |
Python | ◯2 | ◯2 | ◯2 | △1 | ◯2 | 9 | 2位 |
Java | △1 | ◯2 | ◯2 | △1 | ◯2 | 8 | 4位 |
Go | ◯2 | ◯2 | △1 | △1 | ✕0 | 6 | 5位 |
それぞれの星を選定した根拠についてはこのページでは書かないことにする。
詳細に関しては、評価に関する詳細に明記する。
上記の結果からRubyを使用する。
また、WebアプリケーションフレームワークはRubyの定番フレームワークであるRuby on Railsを選択する。この判断は以下の点が根拠である。
- 調べやすく・広く現場で使われていること
- スタートアップ企業の多くが選択しているため短期間の小規模開発で有効であると判断したこと
- 学習のための本も数多く出版されていることから、学習しやすいこと
上記の理由より、N君の選択条件にマッチしていると判断し、Ruby on Railsを選択することにした。
以上の点から、N君は開発に使用する言語及びフレームワークは、Ruby / Ruby on Rails(以降 Rails)を選択することに決めた。