揉めそうな話題ですが、teratailの皆さんの意見が知りたかったので質問です。
Webサーバーでの開発をするにあたり、プログラミング言語とフレームワークの選定で揉めています。
様々な会社・部署から集まってきた経歴の異なるメンバーでチームを結成しました。経験してきたプログラミング言語やプロダクトがバラバラで、それぞれ推しているフレームワークがバラバラです。
案件としては、WebAPIであり、MVCでいうところのView機能はありません。HTTPレスポンスで返すのは、HTMLではなくJSONです。なので、HTMLテンプレートとかはフレームワークに必要ありません。
Aさんは、Java の Spring Boot を推しています。
Aさんは、JavaやC#でWeb開発を10年以上してきた実績があります。フロントエンドからバックエンドまで幅広く経験しています。
過去にPHPに触れたことがありますが、当時のPHPは非常に遅かったようで、不信感を持っているようです。
Aさんによると
- Javaはコンパイル言語なので、スクリプト言語よりも遥かに高速である。
- Javaは歴史が長く、ライブラリの質と量が圧倒的に良い。
とのことです。
Bさんは、PHP の Laravel を推しています。
Bさんは、PHPでWeb開発を5年程してきた経験があります。CakePHPの経験もありますが、最近はLaravelに落ち着いたようで、今回もLaravelを推しているようです。
Bさんによると、
- PHPはシェアが多い。Webに関していえば、コミュニティが活発で、Java等よりも情報量も多い。
- PHP(スクリプト言語)の配列は強力で、class定義等をせずにJSONをそのまま扱えるため、仕様変更に強い。
とのことです。
Cさんは、Node.js の Express を推しています。
Cさんは、Webフロントエンドでの開発経験が5年程あり、JavaScriptに精通しています。Webバックエンド側の経験はなさそうです。
Cさんによると、
- どうせクライアントサイド(ブラウザスクリプト)はJavaScriptなのだから、サーバーサイドもJavaScriptにすることで、学習コストを大幅に下げることができる。
- JavaScriptを使えば、クライアントサイドレンダリングとサーバーサイトレンダリングのコードが共通化でき、コード量が大幅に減る
とのことです。
Dさんは、Kotlin を推しています。
DさんはWeb開発の経験がなく、Androidの開発を3年程してきました。
Dさんによると、
- KotlinはJavaVM上で動くので、スクリプト言語(PHP, JavaScript)よりも早い。
- JavaよりもKotlinの方がコード量が少ない。
とのことです。フレームワークは特に知らないそうです。
Eさんは、Ruby on Rails を推しています。
Eさんは、Java, PHP, Ruby等、幅広い開発経験があります。
Eさんによると、
- Rubyは他の言語よりも可読性が高く、コード量も少ない。
- ライブラリが最適化されているので、決してコンパイル言語よりも遅くない。
とのことです。
質問
ABCDE以外にもメンバーはいますが、その人たちは流れに身を任せるようで、特に主張はしていません。
正直、ABCDのメンバーは、新たな言語を学習するのを嫌がっているだけな気がしますが、それでもこのメンバーで仕事を進めなくてはならないので、言語を何かに決める必要があります。
そもそも「速い」「コード量が少ない」「仕様変更に強い」等の主張が正しいのか?という意見もあります。Java, PHP, JavaScript, Kotlin, Rubyの5つの言語の性能を比較した資料があればよいのですが、中々まとまった資料が見つからず困っています。
私個人としてはLaravelの経験があるということもあり、Bさんと同じような意見を持っています。
チームリーダーはAさんなので、最終的には、Aさんがゴリ押しで決めてしまうかもしれませんが、その場合、今後のチームワークに悪影響がありそうです。
皆さんならどの言語・フレームワークにしますか?また、どのようにABCDEのメンバーを説得しますか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/28 06:50
2018/06/28 11:01