Web開発フレームワーク何を選ぶか問題を終わらせる【前半無料】
これは「次はこのフレームワークを学べば稼げる!」というようなnoteではもちろんありません。Twitterでみんながこぞって自分のたまたま使うようになったフレームワークの無根拠な押し売りみたいなことをやっていて、新規に参入する方の参考になる健全な比較に基づいた説明がないのは悲しいなあと思ったので筆を取ります。
フリーランスでコード書いたりWebライターなどやっているベナオと申します。
初めて僕のnoteを読んでいただいている方のために自己紹介をすると、IT系バックエンドエンジニアから独立してフリーランスとしてIT系情報発信やプログラミング学習サービス、Twitterでエンジニア交流スペースをやっていたりする人です。
中でもWebアプリケーションを1ヶ月で作成できるようになるオンラインPython学習というサービスの運営を通じて、Web開発に使われるフレームワーク(以下FW)について調べたり情報発信することが最近増えました。
これからWeb開発を始めようという方には、どのプログラミング言語にそれぞれどのようなFWが用意されているかを最初に押さえて、自分のエンジニア像に合ったスキル選択をすることをオススメしております。
なぜならIT系への就職・転職した際に、開発現場でPHPやPython、Rubyなどのプログラミング言語をそのままの形で使うことはほぼなく、それぞれの言語に用意されたWeb開発を効率的に進めるためのFWとセットで運用することがほとんどだからです。
例えば一般的なところで言えば、PHPであればlaravel、PythonであればFlask・Django、Rubyであればrailsがそれぞれ用意されていますよね。
しかしこれからエンジニアを目指そうという方にとってはどんな人であっても、さあどのFWから手をつけようかという問題には非常に悩まされることと思います。
それは既存のエンジニアが思い思いにTwitterで持論を展開し、自分の使っているFWがいかに素晴らしいかを語り合うばかりで、この種類のWebアプリの開発にはこのFWが適しているだとか、このような機能の実装をするなら逆にこのFWは合わない、というような健全な比較に基づいた話は特にしてくれない傾向にあるからだと思っています。
なので今回は僕のDjangoへの愛はグッとこらえてその主張を控えめにし(ところどころはみ出してしまうかもしれませんが)、それぞれのFWのもつメリット・デメリットを明らかにして実際の案件数などのデータを踏まえながら、これからWeb開発をはじめる方が迷わずに自分に合った選択がしやすいようにまとめたいと思います。
djangoについていきなり詳しく知りたいという方は以下へどうぞ。
1. データで見るWeb開発フレームワークのシェアと推移
今回の記事を書くきっかけにもなったデータが以下になります。
Stack Overflowというプログラミングの質問ができるサイトの公開しているデータです。3大Web開発FWについての月毎の質問数の推移をグラフにしたものです。
説明の必要が特にないほどに明らかですが、2011年の時点で圧倒的な首位を誇っていたRuby-on-Railsが2020年時点ではdjangoとlaravelに大きくシェアを奪われるという結果となっています。
このデータはあくまで質問数を元にしているので実際のFW採用案件数とは異なりますが、各FWの普及度が反映されていることは間違いないでしょう。
2011年時点からrailsのシェアが下降している要因を調べているうちに浮上したのは次の記事です。
Twitterのバックエンドのシステムが、2011年の時点でRuby-on-RailsからJavaVMに移行しています。理由はTwitterの膨大化したアクセスを、railsで構築されたシステムよりもJavaのそれの方が速やかに処理できるということでした。
記事によればrailsでは数百台のサーバーに順にリクエストを投げるようなコードになるところを、Javaなら非同期にリクエストを一斉送信し、帰ってきたレスポンス(データの返信)をまとめ上げるような処理が実現できるとのこと。
大規模システムの開発という役割が終わったRuby-on-Railsの世界的なシェアは、この時点から下降し始めることになります。
2. Web開発フレームワークの日本のIT転職市場におけるシェア
上記で示したStack Overflowのデータは英語圏のものですが、実際の日本のIT転職市場ではどうなっているのでしょうか?
IT系の求人が豊富に掲載されているビジネス系SNS、Wantedlyの案件を見ながら分析してみました。
ここから先は
¥ 300
サポートは料理好きなのでの食材費にさせていただきます。