是非とも覚えておきたいウェブアプリケーションフレームワーク
18/05/13 14:34:53 18/09/06 10:10:32
ウェブアプリケーションのフレームワークについて
今日においては、ウェブアプリケーションを開発するときは、多くの場合、目的に応じて言語やフレームワークを選ぶことが増えています。
とりわけ、昨今では規模の大きいアプリケーションを比較的短い工数で開発することが求められることが非常に多くなっており、いかにして効率よく開発を行うかが求められているからです。
ここでは、主要言語に応じて、是非とも覚えておきたいフレームワーク群について解説していきましょう。
Java
Javaは、実行環境さえあれば環境問わず動作させることができるという特徴から、多くのプロジェクトで利用されていると言われております。これは、ウェブアプリケーションにおいても例外ではなく、その開発を行いやすくするために様々なフレームワークが登場しています。
ここでは、JavaおよびJava VM上で利用可能な言語向けのフレームワークを挙げていきます。
Spring
Spring Frameworkは複数のコンポーネント群から成るフレームワークで、必要に応じて組み合わせることになります。大規模なプロジェクトになると全体の把握が難しくなるものの、比較的規模の小さい開発であれば、拡張性の高さとオブジェクトの基本構造が徹底されているという特徴からカスタマイズがしやすい面もあります。
Play Framework
Play Frameworkは、構築の行いやすく、一通りの機能が揃っているフレームワークであるため、多くの場合はライブラリーの相性を気にせずに開発を行うことができると言われています。また、Ruby on RailsとDjangoの影響を受けていると言われており、両方の特徴を引き継いでいると言われています。
Play Framework 2以降はScalaが使われるようになったことにより、Java/Scalaを使い分けて開発できるという特徴もあります。
Java EE
Java Platform, Enterprise Editionは、Java SEの拡張版として提供されているAPIおよびフレームワーク・ライブラリー群で、大規模のシステム開発で使われています。
Java EE自体は仕様であるため、実装はいくつかの実装があり、リファレンス実装としてはGlassFish server Open Source Editionが、他にもJBoss/WildFlyやWebSphere、Apache Geronimoなどが実装として提供されています。
Ruby
Rubyにおいては、何と言ってもRuby on Railsが有名でしょう。Rubyを覚えるなら、Ruby on Railsは必須と言っていいほど実際の開発に使われることからもそのことが言えます。
Ruby on Rails
Ruby on Railsは、2004年7月にデンマークのデイヴィッド・ハイネマイヤー・ハンソンによりリリースされたウェブ用のフレームワークで、その名の通り、Rubyで実装されたフレームワークです。
その設計思想は後発のウェブフレームワークにも多大なる影響を与えたことでも知られており、PHPのCakePHPやLaravel、PerlのCatalyst、Java VMのPlay Frameworkをはじめとした今日で使われるフレームワークの多くが何かしらRuby on Railsの影響を受けていると言われています。
なお、Ruby on Railsは、日本のITベンチャーが新規事業を開始するときにRubyを導入する傾向があると言われています。
PHP
PHPにおいては、当初はバニラ(フレームワークを使わず、主に標準ライブラリーを中心に使う開発方法)がメインだったものの、2005年にCakePHPが登場して以来、その時代とともに主流となっているフレームワークがCakePHP、CodeIgniter、Laravelと変わっていきました。一方で、主流を離れたフレームワークでもその多くが開発が続けられており、シェア奪回の機会を伺っているようです。
今日においては、Laravelは間違いなく習得した方が良いでしょう。また、ここで挙げているLaravel以外のフレームワークもLaravelと比較すると人気は大きく落ちますが、利用者数も決して少ないわけではないため、必要に応じて習得すると良いでしょう。
Laravel
Laravelは、2011年に登場して以来、2014年ごろから一気に人気が跳ね上がり、今日においてはPHPで書かれたウェブ向けフレームワークで一番人気にまで上り詰めています。
開発は比較的行いやすく、世界的に知名度が大幅にあがっていることもあり、コミュニティーも活発ということもあり、サードパーティーのライブラリーも豊富と言ったように、開発の自由度も高いそうです。
日本においてはCakePHPが人気だったこともあり、国外と比べると普及スピードに遅れが見受けられますが、それでもLaravelの導入例が増えており、間違いなく使いこなしておきたいフレームワークの一つとしてあげられます。
Symfony
Symfonyは、2005年10月に初めてリリースされたフレームワークで、後述のCakePHPと同じくRuby on Railsの思想を引き継いでいると言われています。
PHPのウェブフレームワークとしてはCakePHPに次いで長い歴史を持っており、今日においてはLaravelに大きく引き離されたものの、依然として一定の人気を誇っていると言われています。
習得難易度はCakePHPと比較して高いと言われていること、Laravelの隆盛もあってか、日本においてはSymfonyでの開発案件はそれほど多くないようです。
CodeIgniter
CodeIgniterは、2006年2月に初めてリリースされたフレームワークで、パフォーマンスを重視していることが特徴として挙げられています。また、規約も他のフレームワークと比較してやや緩く、構造もシンプルであることもあり、学習コストは低いと言われています。
世界的な人気においては、2011年から2013年ごろまでにかけてはCakePHPを抜いて最も人気のフレームワークに位置づいていた時期がありましたが、今日においてはLaravelに大きく差をつけられている状態にあります。
CakePHP
CakePHPは、Ruby on Railsの登場後の2005年4月に登場したフレームワークで、先行するRuby on Railsから多くを引き継いでいると言われています。
ウェブフレームワークとしてはRuby on Railsと並んで歴史の長いフレームワークで、その扱いやすさから日本においてはかなり人気を誇っていて、情報も豊富にありました。
一方で世界全体で見ると、2014年ごろから急激に人気が向上したLaravelの人気に押されていることもあり、既存のサービスの改修を除けば、新たなサービスでCakePHPを使う頻度は下がっているようです。
Python
日本においては主に人工知能や機械学習で使われているPythonですが、日本国外においてはウェブアプリケーションやデスクトップアプリケーション、システムツールなど多岐にわたって使われています。
ウェブアプリケーションフレームワークとしては、以下が挙げられます。
Django
Djangoは、2005年7月に登場、Pythonのウェブフレームワークでは歴史があり、なおかつ今日においても主流のフレームワークです。
Djangoは、ウェブアプリとしてよく使われる、ユーザー認証や管理画面などを標準で含まれている他、拡張性も高いなどで、Ruby on Railsと共に他のウェブフレームワークにも影響を与えていると言われています。
Flask
Flaskは2010年に登場したフレームワークで、多くの機能を搭載しているDjangoと比較して、標準で搭載している機能は抑えられている代わりに、軽量で動くという方法性を持っています。
人気度で言えば、Djangoに次ぎ、将来的にはDjangoを凌駕するのではと言われることもしばしばあります。
Swift
Swiftはアップルより開発が行われているプログラミング言語で、元々はiOS/macOSアプリの開発で使われていたObjective-Cの後継にあたる言語として使われていました。
一方で、Objective-Cのオープンソース化により、主にGNU/Linux環境でも有効利用しようという努力もあり、近年ではサーバーサイドアプリの開発も行えるようになっています。
ただし、Swiftでのウェブアプリケーション開発においては、他の言語と比較するとノウハウに乏しく、発展途上であるという点は否定できません。
Vapor
Vaporは、Laravelの影響を受けたフレームワークで、Laravelの要素を一定数引き継いでいると言われています。また、標準パッケージも充実していることで、多くのことを軽い負担で行うことができると言われています。
JavaScript
JavaScriptは、当初はWebページの動的制御に使われていたものの、簡潔に開発可能で大きく拡張されたことから、今日においてはフロントエンドからバックヤードまで非常に広範囲にわたって開発が可能になっている言語です。
JavaScriptのフレームワークでは、フロントエンド用、バックヤード用といったいくつかのタイプに分かれることも特徴の一つになっており、必要に応じて組み合わせることが求められます。
Angular
Angular(AngularJS)は、Googleが中心となって開発が行われているフロントエンドのフレームワークです。Angularではシングルページアプリケーションの開発で立ちはだかる課題に対処していることもあり、従来のウェブでは難しかった単一のウェブページで処理を行うことが比較的容易にできるようになっているのが特徴です。
習得する上での敷居は決して低いとは言えないものの、ぜひとも覚えておきたいフレームワークの一つと言えます。
Express.js
Express.jsは、2010年に登場したバックヤード用のフレームワークであり、Node.js用のフレームワークの事実上の標準と言われているそうです。このExpress.jsに加え、データベースにMongoDB、フロントエンドにAngularを組み合わせてMEAN(MongoDB、Express.js、Angular、Node.js)と呼ばれているそうです。
ウェブページ
Bootstrap
Bootstrapは、CSSとJavaScriptで構成されたウェブページ用のフレームワークで、Twitterより開発が進められていました。
このフレームワークの特徴は、CSSのクラスを使うことにより、比較的容易にPC/タブレット/スマートフォンに対応したレスポンシブデザインを構築することが可能であること、なおかつTwitterのようなデザインで構築が可能というのが特徴になっています。
今日のウェブデザインにおいては、習得必須と言っても良いでしょう。
ウェブアプリ開発で使われる言語は結構多く、フレームワークも絡んでくるとさらに多岐に渡ります。また、本項ではよく使われているであろうフレームワークを挙げましたが、ここでは挙げなかったフレームワークもたくさんあります。
ただ、フレームワークはあくまで、アプリを開発するための骨組みであるため、それに過信するのは望ましくないでしょう。
是非とも、うまくフレームワークを使って、効率よくアプリ開発ができるようにしていきたいですね。
フリーランス案件量が豊富なアルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。
アルマサーチが選ばれる理由
- 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
- 優秀なコンサルタント陣。
- 案件に参画後もしっかりサポート。
豊富な案件量
フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。
優秀なコンサルタント陣
技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。
案件に参画後もしっかりサポート
常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
人気記事