様々なサーバサイドフレームワークが活用されている
サーバサイドの開発には色々なプログラミング言語が使用されています。
- Python
- PHP
- Ruby
といったサーバサイドで使用されるプログラミング言語には、いくつものフレームワークがあります。
フレームワークは、ソフトウェアフレームワークやアプリケーションフレームワークなどとも呼ばれ、開発の際に使用する便利な機能を再利用しやすくしたものです。フレームワークを活用することで、開発をよりスムーズに行えます。
ここでは、多数あるフレームワークを、サーバサイドで使用できる言語別に紹介します。
プログラミング言語からみるサーバサイドフレームワーク
Python
Python は、サーバサイド言語としても使用されています。DjangoとFlaskが開発フレームワークとして比較的知られている印象です。
Django
Djangoは、Web開発に必要な機能を揃えたフレームワークです。
Python は、データ分析、機械学習やAIの分野で幅広く使われるプログラミング言語であるため、それらの機能を備えたWebサイトやアプリを構築する際には、候補になると思います。
Django Girlsというチュートリアルが知られており、初学者には特に参考になります。
Flask
Flaskは、Djangoと並んで良く知られたPythonのWeb開発フレームワークです。
Flaskは、機能が比較的シンプルで、取り組みやすいという特徴があります。
特に、プログラミング学習の一環で、Pythonを使って簡単なWebサービスを試したいという時には、Flaskがフレームワークとして選択肢になると思います。
PHP
PHPは、サーバサイドで長く使用されてきました。そのため、PHPのWeb開発フレームワークは多数あります。
ここでは、特に広く知られているLaravelとCakePHPを紹介します。
Laravel
Laravelは、色々な機能を備えており、複雑なWebサービスを開発する際にも使用されています。
PHP以外のプログラミング言語を含めても、2021年時点で主要なWeb開発フレームワークの一つと言えると思います。
主要なフレームワークであるため、情報や学習リソースは比較的見つけやすいですが、様々な機能を持つフレームワークであるため、習得するべき要素が多いとも言えます。
Laravelは、2021年2月時点で、GitHubのStar数が約64,000と非常に人気です。
CakePHP
CakePHPは、後述するRuby on Railsの影響を受けたフレームワークとされています。
Laravelと比較されることが多いフレームワークです。Laravelよりも開発に取り組みやすい印象です。Laravelを試してみて、機能が多すぎるとなった場合にはCakePHPが候補になると思います。
Node.js / JavaScript
Node.jsは、JavaScriptの実行環境です。Node.jsを使用することで、JavaScripを用いてサーバサイドの開発に取り組めます。
Node.jsのフレームワークは多数登場しています。ここでは、Express.jsとKoa.jsを紹介します。
Express.js
Express.jsは、Node.jsで使えるサーバサイドのフレームワークです。
2021年2月時点では、Node.jsのフレームワークとしてまず名前が挙がるフレームワークです。
Node.jsのフレームワークでは、情報や学習コンテンツを見つけやすく、初学者が試しやすいと言えます。
Koa.js
Koa.jsは、Express.jsの開発者によって、次世代のフレームワークとしてリリースされたNode.js用のフレームワークです。
Koa.jsは軽量フレームワークであり、2021年2月時点で、GitHubのStar数が約31,000と、Express.js(Star数が約52,000)には及ばないものの、人気のフレームワークです。
今後、Express.jsのように更に広く使用されるようになるかもしれません。
Ruby
RubyでのWeb開発と言えば、Ruby on Railsが定番かと思います。しかしRails以外にもRubyの開発フレームワークはあります。
Ruby on Rails
Ruby on Railsは、とても良く知られたWeb開発フレームワークです。
などを目指したフレームワークであり、開発に取り組みやすいフレームワークとされています。
初学者が学べるコースも多く、
- Progate
- ドットインストール
などが広く知られています。
Sinatra
Sinatraは、Rubyで使用できる軽量のWeb開発フレームワークです。
日本語に翻訳されたチュートリアルがあります。
Rubyを使ってきたが、気分転換にRails以外のフレームワークを使ってみたいという場合には、Sinatraを試してみるのも良いかもしれません。
Go
Googleが公開したGo言語は、サーバサイドでの利用が徐々に広がってきている印象です。
Gin
Ginは、Go言語で使用できるWeb開発フレームワークです。
2021年2月時点で、GitHubのStar数が約46,000と、広く知られているフレームワークです。
軽量で処理速度が速いとされています。今後、Go言語がサーバサイドでさらに活躍するようになった場合は、Web開発フレームワークの代表格になる日が来るかもしれません。
Beego
Beegoは、Go言語で使用できるフルスタックのWeb開発フレームワークです。
公式ドキュメントが充実していて、
を参考にできます。
Go言語のフレームワークとしては、Ginが知られているかもしれませんが、今後Beegoの利用も広がる可能性があります。
Java / Scala
JavaやScalaもサーバサイドで使用されています。多くのフレームワークがありますが、ここではSpring BootとPlay Frameworkを紹介します。
Spring Boot
Spring Bootは、JavaでのWeb開発に使用できるフレームワークです。
Spring Bootを活用することで、Javaを用いて比較的簡単にWeb開発に取り組めるとされています。
始め方が公開されています。
Play Framework
Play Frameworkは、JavaやScalaで使用できるWeb開発フレームワークです。
スクリプト言語のフレームワークであるRuby On Rails、DjangoやCakePHPなどに影響を受けているとされています。
公式サイトには、始め方、チュートリアルなどが整備されています。
Elixir
Erlangというプログラミング言語の仮想マシンで動作するElixirは、サーバサイドで使用されることがあります。
Phoenix
Phoenixは、Elixirで使用できるWeb開発フレームワークです。
Rubyに似た特徴を持ちつつも、関数型言語であるユニークなElixirでWeb開発に取り組みたい場合には、Phoenixは有力な候補となります。
プログラミング学習×サーバサイドフレームワーク
ここまで見てきたように、サーバサイドで使用できるフレームワークは多数あります。
- HTML、CSS、JavaScripと学んで来て、次はサーバサイドを学ぼうと思っていた
- 自分が学んでいるGo言語で何かフレームワークを試してみたい
- Pythonで使えるWeb開発フレームワークは無いか
など、サーバサイドの学習に興味がある人は、それぞれの言語で紹介したフレームワークが候補になると思います。
プログラミング学習×サーバサイドフレームワーク、気になった人は、一度試してみるのも良いのではないでしょうか。
コメント