サーバサイド開発に使われるフレームワーク【Express.jsからRuby on Railsまで】

Uncategorized

様々なサーバサイドフレームワークが活用されている

サーバサイドの開発には色々なプログラミング言語が使用されています

  • 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開発フレームワークは無いか

など、サーバサイドの学習に興味がある人は、それぞれの言語で紹介したフレームワークが候補になると思います。

プログラミング学習×サーバサイドフレームワーク、気になった人は、一度試してみるのも良いのではないでしょうか。

コメント

タイトルとURLをコピーしました