mofflog

---人生の3%ぐらい役立つブログ---

プログラミング言語別で人気のWebフレームワークの用途・特徴

f:id:moffle8:20190517114353p:plain

こんにちはもっふるでs

 

個人・企業問わずプログラミングをする際にフレームワークを利用することは多くあると思います。

 

フレームワークとはライブラリという汎用性の高い再利用可能なプログラムの集合体で、これを利用することによって作成したいシステムを効率的に開発することが可能になります。

 

ある程度そのプログラミング言語の知識があればフレームワークを利用することによってより生産的になるなどメリットも多いです。

 

そこまで理解していなくてもなんとなくで動かせてしまうので、初心者でも自分の作りたいもの開発がしやすいと思います。

 

その反面詳細を理解していないとデバッグなどが難かったり、詳細なカスタマイズがができないというデメリットもあります。

 

プログラミング言語にはさまざまなライブラリ・フレームワークが存在し、たとえばPHPではLaravelなどが有名ですよね。

 

フレームワークには種類によって機能や用途が異なるので今回は人気でよく使われているフレームワークをプログラミング言語別で紹介していきます。

 

言語別フレームワーク一覧

JavaScript

Vue.js

Vueは主にWebアプリケーションのUI開発に用いられるフレームワークで、ユーザーインターフェースのみならずシングルページアプリケーションも構築できる。既に人気だったAngularを洗練しより使いやすくなっているのが特徴で、ほかのJavaScriptフレームワークと比べても頭ひとつ高い人気を誇っています。

Vue.js

 

React.js

ReactはFaceBook主導で開発されているJavaScriptフレームワーク(ライブラリ)でシングルアプリケーションやモバイルアプリケーションで主に使われます。仮想DOMにより処理が早く、モバイル開発ではReact Nativeというフレームワークも用意されているのでiOS・android関係のないクロスプラットフォームな開発が可能になります。

React – A JavaScript library for building user interfaces

 

Angular.js

AngularはGoogle主導のJavaScriptフレームワークで主に単一のページのアプリ(シングルページアプリケーション)においてよく用いられます。MVWやコンポーネント機能など開発も生産的に行う機能がそろっていて、複雑な処理のあるページをコンパクトにまとめたいフロントエンド開発などに向いています。

AngularJS — Superheroic JavaScript MVW Framework

 

PHP

 Laravel

LaravelはMVCを採用したウェブアプリケーション向けのフレームワークで、ルーティング・ORマッパーなど生産的な機能が豊富であり、コマンドも充実しているのでバックエンド系のフレームワークの中ではかなり人気の高い部類に入っていて実際にPHPのフレームワークの中でも一番人気があります。

Laravel - ウェブ職人のためのPHPフレームワーク

 

CodeIgniter

CodeIgniterはPHPのフレームワークで、軽量と速度を重視して設計されています。MVC構造でRailsのような手軽さとPHPの機動性を兼ね備えていて、豊富なライブラリ・機能もあるので実際開発する上でもかなり生産的に行っていくことができます。

CodeIgniter Web Framework

 

Symfony

SymphonyはPHPで作られた大規模なWebアプリケーションにおいての開発と保守の効率化を目的に設計されたフレームワークで、実際に大企業での導入実績がありYahoo!なども積極的に採用しています。MVC構造でセキュリティや安全性が高いのが特徴なので個人よりも法人が使う傾向にある。

Symfony, High Performance PHP Framework for Web Development

 

Java

Spring

Javaのフレームワークで、WebアプリケーションだけでなくJavaで動作する一般的なアプリケーションも作成可能です。MVCモジュールやCoreモジュールなどさまざまなモジュールがあり、機能面においても便利な機能がそろっています。

Spring

 

Play Framework

JavaとScalaによって書かれたWebアプリケーション向けのフレームワーク。MVC構造を採用していて、他にもホットリロードエラーのブラウザ表示など開発の生産性が高めてくれる機能が豊富です。CPUやメモリなどのリソースも最小限になっていてWeb構築において優しい設計になっています。

Play Framework - Build Modern & Scalable Web Apps with Java and Scala

 

JavaServer Faces

通称JSFと呼ばれWebアプリケーションを開発する際に用いられるJavaベースのフレームワークでJavaEEにも正式に採用されているので現在もスタンダードに使われています。似たような立ち位置にApacheのStrutsがあり、こちらも有名で広く普及していますセキュリティ面などにやや難があります。

JavaServer Pages Technology

 

Scala

Lift

ScalaでRuby on Rails同等のメリットを生み出すため開発されたフレームワークですが、ひとつの特徴としてMVCのコントローラーを持たない構造となっています。ビューを重視していて、それを基点としたアプローチ開発を行っていきます。

Lift :: Home

 

Finatora

TwitterがリリースしているScalaのフレームワークで、RubyのフレームワークであるSinatraから影響受けています。軽量なのが特徴で、実際にTwitterがアプリケーションを開発する際にも用いられるのそうなので実績的な信頼感も高いです。

GitHub - twitter/finatra: Fast, testable, Scala services built on TwitterServer and Finagle

 

Python

Django

Pythonを用いた高機能なWebアプリケーション向けのフレームワークで、複雑なデータベースを持つWebサイトでも簡単に作れるように設計されているので生産性やスピード感の高い開発が可能としています。Python自体の需要も高いので当然このフレームワークも多くの場所で活用されています。

さぁ始めましょう | Django ドキュメント | Django

 

Flask

FlaskはPython用のウェブアプリケーション向けフレームワークで、徹底的な軽量化が行われているので無駄の無いシンプルな構造です。それでいながら拡張性も持ち合わせているので柔軟で自由度の高い開発に向いています。

Welcome | Flask (A Python Microframework)

 

Ruby

Ruby on Rails

Rubyで書かれたWebアプリケーションフレームワークで、高速でWebアプリを作成できるとことからフレームワークの中でもかなり人気です。初心者でもわかりやすくコードも書きやすいのが特徴で、初心者だけでなくクックパッドや食べログなど大手企業にも採用された実績があります。

Rails をはじめよう - Rails ガイド

 

Sinatora

同じRubyのWebアプリケーションフレームワークですが、Railsとは異なりMVC構造を採用していません。軽量かつ柔軟性のあるプログラミングできるように設計されているので、Railsよりも自由度が高いのが特徴です。シンプルなビューに向いていて主にBBCなどがこちらを採用しています。

Sinatra

 

Go

Gin

Goで書かれたフレームワークの中でも歴史が長く、Goでウェブアプリケーションを展開する上で必要な機能がそろっています。Go言語を使っているだけあって生産性やパフォーマンスに優れ今後注目のフレームワークのひとつです。

GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

 

Beego

数あるGo言語のフレームワークの中でもかなり人気のフレームワークで、フルスタックかつドキュメントもしっかりしていて、チャットアプリなども簡単に作成できます。実行はネイティブコードなので処理も早くメモリの消費も最小限で済みます。

Homepage - beego: simple & powerful Go app framework

 

Rust

Rocket

 Rustで書かれたWebアプリケーション向けフレームワークでRustを使った制御や、同じMozillaがリリースしているWebAssenmblyを出力したりすることができます。以前はironというフレームワークがメジャーでしたがこちらは残念ながら現在開発が中止されています。

Rocket - Simple, Fast, Type-Safe Web Framework for Rust

 

Elixer

Phoenix

PhienixはElixerで書かれたモダンなフレームワーク。高生産性・高信頼性が特徴で、実際にElixer自体の持つメリットも活用することもできるので便利かつ高機能なものとなっています。Ruby on Railsに似ているという声もあり、実際に操作性自体も難しくならないように設計されています。

Phoenix

 

まとめ

実際にプログラムを作成することにおいて効率性・生産性の面からフレームワークが活用されることが多いです。

 

プログラミング言語の数もたくさんの種類がありますが同様にフレームワークの種類もおくあります。

 

それぞれに特徴があり、フレームワークから選ぶのもよいですが、まずはじめは自分がメインで使っていくプログラミング言語を決めてから必要なフレームワークを活用していくとよいでしょう。

 

プログラミングについてはこちらから

www.mofflog.com