Help us understand the problem. What is going on with this article?

言語ごとのwebフレームワークまとめ及び比較

はじめに

最近webフレームワークの勉強を始めたのですが、種類と量の多さに驚いたのでザッとまとめてみました。
詳しさよりもざっくり把握できることを重視しました!

対象フレームワークの列挙

記事が長くなりそうなので調べたフレームワークたちを言語ごとに列挙しておきます。

  • Python...Django,Flask,Bottle,Tornado,web2Py
  • JavaScript...Angular,React,Vue
  • Ruby...Ruby on Rails,Sinatra,Padrino,cuba microframework,Remaze,HANAMI
  • PHP...Laravel,Symfony,CodeIgniter,ZendFramework,Phalcon,Slim,Yii,FuelPHP,Flight

Python

  • Django

高速な動作、フルスタックフレームワーク、セキュリティ的に安全な設計、メンテナンスの容易さ、自由に選べるプラットフォーム、学習コストの低さ
採用企業例...Pinterest,NASA,Bitbucket

  • Flask

小規模向け、必要最小限の機能で軽量、学習コスト低い、英語のドキュメントは多い、日本語のドキュメントは少ない。
採用企業例...大規模開発に向かないためか、有名サービスは見つかりませんでした

  • Bottle

小規模向け、シンプル、軽量、高速
採用企業例...大規模開発に向かないためか、有名サービスは見つかりませんでした

  • Tornado

非同期通信ライブラリ。ロングポーリングやWebSocket、各ユーザーへの長時間接続が必要なアプリケーションに適する。
採用企業例...有名なサービス例は見つかりませんでした

  • web2Py

データベースを使用するアプリをアジャイルで開発するために使われる。データベースを扱うのでセキュリティ面に重点を置いている。クロスプラットフォーム。
採用企業例...有名なサービス例は見つかりませんでした

  • その他

CherryPy,Pyramid,TurboGears,Pylons,Sanic,Dashなどがあるが、まとめ切れない。
Python Webフレームワークとは?特徴や種類、学習方法などを解説

JavaScript

採用企業例については【Vue.js, React, Angular】事例から見るSPAフレームワークを参考にしました。

  • Angular

フルスタックフレームワーク、フロントエンドwebアプリフレームワーク。来年にはサポートが終了する?
各機能が独立した画面として存在し、フォームを使ってデータの送受信を行うようなアプリに向いているといわれている。
採用企業例...Microsoft,BMW,Forbesなど

  • React

レンダリングが高速、大規模サービスにも向く、学習コスト低い
採用企業例...Netflix,slack,Uber,Airbnb,Paypalなど

  • Vue

気軽に使える、学習コスト低い。
既存のサイトに組み込んだり、小中規模のwebアプリ構築に向く。
採用企業例...Alibaba,Expedia,Nintendo,Lineなど

Ruby

Rubyフレームワークのまとめ【2020年版】を参考にしました。

  • Ruby on Rails

DRY,CoCといった原則により、効率のよい開発が可能。Rubyフレームワークでは最も人気。
採用企業例...cookpad,グノシーなど

  • Sinatra

シンプル。余計な機能がない。
採用企業例...Apple,Github,LinkdInなど

  • Padrino

Sinatraをベースに開発。テストの自動生成などの機能を追加した形。
採用企業例は分かりませんでした。

  • cuba microframework

小規模向け、最小機能、シンプルな構造。
採用企業例は分かりませんでした。

  • Ramaze

シンプル、自由度が高い。
同じく自由度が高いSinatraとは違いRamazeはRubyのスタイルをできるだけ踏襲している。
採用企業例は分かりませんでした。

  • HANAMI

長期的なメンテナンスを見据えたフレームワーク、マジックが少なくRubyに近い。
採用企業例は分かりませんでした。

PHP(加筆10/14)

また、フレームワーク毎の採用企業例は調べ切れませんでした。PHPで作られたサービスはたくさんあります。facebookやWikipedia,slackなど。PHPで作られたWebサービスの事例10選!他言語との比較も解説

  • Laravel

多機能、学習コスト低い、自由度高い。柔軟であるがゆえ大人数で大規模サービスを開発する場合保守が大変になるかも。

  • Symfony

Ruby On Railsの影響を色濃く受けている。多機能で公式ドキュメントも充実。日本語ドキュメントは少ない。

  • CodeIgniter

軽量、速度重視。一般に必要とされるプログラミングタスクに対する豊富なライブラリが用意、またそれらのライブラリにアクセスするためのシンプルなインターフェースと論理的な構造が用意されている。

  • ZendFramework

シンプルで、拡張性があり柔軟。起動・実行等に必要な設定ファイルがない。

  • Phalcon

とにかく速い。日本語ドキュメントも存在するが、あまりサポートされていない。

  • Slim

オープンソースマイクロフレームワーク、軽量で学習コスト低い、シンプルなアプリやAPI開発向き。

  • Yii

高効率、豊富な機能、充実したドキュメント。軽量であり、洗練されたキャッシュ機構を持っているため、負荷の高いアプリケーション、例えばポータルサイト、フォーラム、コンテンツマネジメントシステム(CMS)、イーコマースシステム等のアプリケーションに特に向く。

  • FuelPHP

軽量でシンプルなフレームワーク。「規約よりも設定」というコンセプト。柔軟で自由度の高いコーディングをすることが可能で、学習コストが低い。小・中規模システムの開発に向く。

  • Flight

高速、シンプルで拡張可能なフレームワーク。

比較

Tornado、web2Pyなどは強みと用途がはっきりしている。一方、どれが最適か選びにくいフレームワークもある。特に有名なフレームワークについて、向いている規模や軽量さなど表を用いて比較検討したい。

フルスタックフレームワーク

フルスタックフレームワークとは、簡単に言うとそれ一つでアプリを作成できるフレームワークのことです。バックエンドもフロントエンドも実装できます。
例えば「バックエンドはRailsでフロントはVueで」といった実装をすることも可能。

規模 速度 シンプルさ 学習コスト
Django 小〜大 高速 多機能
Ruby on Rails 小〜大 多機能
Sinatra 小〜大 高速 シンプル
Laravel 小、中 多機能

(webアプリ開発にはフレームワーク以前に仕組み等の前提知識を学ぶ必要がある。その点では、全くの初学者からすればどれをとっても学習コストは高いかもしれない。)

DjangoもLaravelも言語さえある程度分かっていればそこまで学習コストは高くない印象。
Sinatraもシンプルなため学習コストは比較的低い。
Railsに関してはrRails独自のルール等もあり、学習コストは高い。しかし日本語ドキュメントやチュートリアルが充実していることもあり、学習コストはそこまで高くないとした。
Laravelは自由度が高い分大規模開発にはそこまで向かないと考えた。

フロントエンドフレームワーク

代表的なものはReact、Vueかと思われる。
この二つの比較については完全に独断と偏見だけどReact vs Vue してみたが見やすくわかりやすい。

まとめ

webフレームワークだけで想像以上に多数存在していた。これらとバックエンドサービスとの組み合わせはさらに多く、自身のサービスに何が適するのか、よく考える必要がありそう。

間違ってるよ、とかあれば気軽に教えてください🙇‍♂️

isoyam
競技プログラミング初心者の京大生。 ランキング上位が東大生ばかりなのが悔しくて始めました。 同志の助けになれば、、
https://twitter.com/charlyb78927507
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away