IDEとフレームワークの違い


今までVisual Studio IDE(統合開発環境)で開発していたためか、フレームワーク自体を意識せず開発していたが、ここ1年WEBプログラミングし始めフレームワークを意識するようになったので、同じようにWEBへシフトする機会のある方の参考になればと思います。

IDE(統合開発環境)とは?

ソフトウェア開発に必要なソフトウェアを一つに組み合わせ、同じ操作画面から統一的な操作法で利用できるようにしたソフトウェアパッケージ。
一般的にはコードエディタやコンパイラ、リンカ、デバッガ、テストツール、バージョン管理ソフトなどで構成される。

フレームワークとは?

開発を行う際に、頻繁に必要とされる基礎的な機能をまとめて提供してくれるもの。
機能が部品化されており、それらを組み合わせることで容易に開発ができる。
アプリケーションのひな型

IDEとフレームワークの違い

この時点で既に異なる物だとお気づきかもしれませんが、IDEは開発環境を提供し、フレームワークは作る工程を楽にしてくれる関係になります。
それならばフレームワークはライブラリじゃないの?と思う人もいるかもしれません。

ライブラリ:機能を部品化したもので単独では動かない
フレームワーク:基礎などが整ったもので、ユーザーが好きに組み合わせて完成させるブロック的イメージ

フレームワークってどんなのがあるの?

1.Laravel
 特徴:コードが読み書きしやすく学習が容易
    強力なルーティングフィルター・柔軟なオートローダー
 欠点:ベンチマークが遅い
    自由度が高すぎて、設計が苦手な人には向かない
 http://laravel.jp/

2.cakePHP
 特徴:簡単シンプルで開発コストやコード量を減らすことができる
    日本語ドキュメントも比較的多く、学習コストが低い
 欠点:バージョンによって命名規則や設定が異なるため、安易にバージョンアップできない。
 http://cakephp.org/

3.symfony
 特徴:パーツ単位のものが組み合わさってフルスタックな形を実現しているため再利用性が高い
 欠点:設計の自由度が高すぎて、設計が苦手な人には向かない
    設定によるが基本キャッシュして動かすため、キャッシュ問題にはまりやすい
 http://symfony.com/

まとめ

IDEにしろフレームワークにしろ開発を補助し品質をある程度保てるところにある。
特に一から十まで知らなくとも開発できるようになるのは良いが、ここは賛否両論に分かれるとこかもしれません。
フレームワークは結構トレンドがあり人気度が上下し、種類も多くどれを使うか悩んでしまう印象をうけました。
トレンドに合わせてフレームワークを取得していくのは学習コストがかかりすぎるので、流行り廃りに流されず作りたい物の内容に合わせて、適したフレームワークを探すのが一番だと思います。