今、地震の影響により、節電ブームになっています。


それで、何かしら小さなことでもよいので節電効果のあるものは

ないかと考えました。


皆さんが普段よく使いそうなもの...ブログとか見る人であれば、


なおさら必要な「ブラウザ」がいいのではと思い、一番消費量の少ない


ブラウザを簡単に調べてみました。



【ブラウザの消費電力】
worksteadilyのブログ-ブラウザ電力消費


順位 ブラウザ
1 IE9
2 Firefox 4
3 Chrome 10
4 Safari 5
5 Opera 11


消費電力の少ない順は、上記表の通りです。


なんと、


 IE9


が一番消費電力ひらめき電球がすくないではありませんか!!


今年の夏の節電に向けて、IEが嫌いな方も節電対策の一環として、


IE9を使うようにしてみてはいかがでしょうか。


現状のブラウザのシェアって、どういう状況なのでしょうか?


昔からIE6なんて、WEB開発者にとっては邪魔者扱いパンチ!です。


でも、使ってる人が多いので仕方ないのです...


本当に多いのでしょうかはてなマーク


2011年のブラウザのシェア状況を調べてみました。



【各ブラウザのシェア】


worksteadilyのブログ-ブラウザ市場1

worksteadilyのブログ-ブラウザ市場2


【ブラウザ別 順位】

順位 ブラウザ シェア 推移 備考
1 IE 54.27% 下落傾向
2 Firefox 21.71%
3 Chrome 12.52% 成長傾向
4 Safari 7.28%
5 Opera 2.03%
6 Opera Mini 1.27%

【バージョン別ブラウザ 順位】

順位 バージョン別ブラウザ シェア 推移 備考
1 IE8 31.28% 17ヶ月連続1位
2 IE6 10.36% 下落傾向。3位から2位へ浮上
3 Firefox 4.0 10.08% 6位から3位へ浮上
4 Chrome 11.0 9.73%
5 Firefox 3.6 9.14% 2位から5位へ下落
6 IE7 7.04% 下落傾向。5位から6位へ下落
7 Safari 5 4.74%
8 IE 9.0 4.19%
9 Opera 11.x 1.61%


IEはWINDOWSに標準インストールされているだけあり、強いですね。


しかし、IEに負けずにFirefox、Chromeの追い上げに期待したいです。


IE6については、IE6撲滅運動が始まっていますので、今後はシェアが


減っていくことになるでしょう。


【IE 6のシェア 】
worksteadilyのブログ-IE6市場

シェア
世界 12.0%
中国 34.5%
韓国 24.8%
インド 12.3%
サウジアラビア 10.7%
日本 10.3%


しかし、上記IE6のシェアを見る限り、撲滅までの道のりは長そうですね。


気長に撲滅される日を待ちましょう平和なうさぎ

さあ!


新しい言語をやってみようかな!!


って、このときに学んでみたい言語がすでに決まっているのが一番いいですねシラー


ただ、



「学ぶ気持ちはすごくあるが、何を勉強するのが一番よいのかわからない」



という状態のときは、何をするかを選ぶのにパワーを使ってしまって、


結局何もしなかったということもあるかと思います。


少しやってみると手軽に学んでいくことができる言語もあれば、


習得するのに時間がかかるため、勉強したが何かを


習得できているという気になれないこともあるかと思いますえっ


そんなときのために、言語の種類と一部の言語の学習レベルを、


簡単にまとめてみました。



まずは、言語の種類からですが、言語はたくさんあります。


どれぐらいあるかは、下記の言語年表を見てください。



【言語年表】


worksteadilyのブログ-言語年表

※枝分かれは、既存の言語の種々の特徴を踏まえて、独自の機能を
 導入していることを表しています。

言語 設計年 設計者(組織) 特徴
Fortran 1956 IBM 科学技術計算
COBOL 1959 CODASYL 事務計算
ALGOL 1960 Naur他 アルゴリズム記述、BNF
SNOBOL 1962 ベル研他 パターン処理を主とする記号処理言語
BASIC 1964 Dartmouth大 始めての対話型言語
APL 1962 K.E.Iverson 豊富な演算子による算法や論理の記述
PL/I 1965 IBM 真の汎用言語を目指した
LISP 1965 J.Macarthy リスト処理言語、関数型、人工知能基礎言語
SIMULA 1967 Dahl他 シミュレーション言語、オブジェクト指向の祖
PASCAL 1967 N.Wirth ALGOL型教育用言語
Prolog 1972 A.Colmerauer 論理型言語
1972 カーニハン他 システム記述言語、UNIXの記述
Smaltalk 1972 A.Goldberg 最初の実用的オブジェクト指向言語
Basic(PC用) 197? - PC用の言語として開発
Ada 1980 国防総省 組み込み機器用のソフト
Modula-2 1980 N.Wirth Pascalの後継
C++ 1983 B.Stroustrup Cの上位互換オブジェクト指向言語
Objective C 1983 Brand Cox NextStepの記述言語。今はMacOS-Xの標準言語
Perl 1987 Larry Wall スクリプト言語の代表
Eiffel 1985 Bertrand Meyer 純粋なオブジェクト指向言語
Java 1991 Sun Micro 最初は情報家電用言語、今や...
PHP 1995 Rasmus Lerdorfl Perlをホームページ記述に特化したものと言えるか
VisualBasic 1995 マイクロソフト GUIを初心者でも簡便にプログラミングできる事を目指した
squeak 1997 Alan Kay等 Smalltalkの後継、時空を渡り歩く自己増殖型プログラミング環境
ML 1970年代 Robin Milner 関数型言語
C# 2000 マイクロソフト Javaに対抗する言語
ruby 2004 まつもとひろゆき氏 スクリプト言語



これで全部ではありませんが、上記言語年表を見るだけでも


結構な数があります。

この中から、何が勉強しやすいのか また、


目的に該当する言語はどれなのか


選びやすいように、一部の言語を抜粋してまとめてみました。


言語 学習レベル 実行方式 開発対象 適用分野
PHP 初心者~ インタプリタ型 CGI、モジュール Web開発
Python 初心者~ インタプリタ型 アプリケーション、CGI、モジュール アプリケーション開発、Web開発
Perl 初心者~ インタプリタ型 アプリケーション、CGI、モジュール Web開発
Ruby 初心者~ インタプリタ型 アプリケーション、CGI、モジュール Web開発
JavaScript 初心者~ インタプリタ型 ブラウザ・アプリケーション、WSH Web開発、管理ツール
C 初心者~ コンパイル型 ネイティブ・アプリケーション(実行可能ファイル) アプリケーション開発、ドライバ・OS開発
Visual Basic 初心者~中級 中間言語 .NETアプリケーション アプリケーション、Web開発
C++ 中級~上級 コンパイル型 ネイティブ・アプリケーション(実行可能ファイル) アプリケーション開発、ドライバ・OS開発
JAVA 中級~ 中間言語 Javaアプリケーション アプリケーション開発、Web開発、アプレット
C# 中級~ 中間言語 .NETアプリケーション、XNAアプリケーション アプリケーション、Web開発、XNA(ゲーム)

需要のある言語を学びたいという考えもあるでしょう。


そこで以前紹介した「プログラミング言語ランキング」です。


【人気プログラミング言語ランキング(一年前とのランキング比較)】

順位
2011年5月
順位
2010年5月
順位の変動 プログラミング言語 支持率
2011年5月
1 2 Java 18.160%
2 1 C 16.170%
3 3 C++ 9.146%
4 6 ↑↑ C# 7.539%
5 4 PHP 6.508%
6 10 ↑↑↑↑ Objective-C 5.010%
7 7 Python 4.583%
8 5 ↓↓↓ (Visual) Basic 4.496%
9 8 Perl 2.231%
10 11 Ruby 1.421%
11 12 JavaScript 1.394%
12 20 ↑↑↑↑↑↑↑↑ Lua 1.102%
13 9 ↓↓↓↓ Delphi 1.073%
14 14 アセンブリ言語 1.042%
15 16 Lisp 0.953%
16 23 ↑↑↑↑↑↑↑ Ada 0.747%
17 15 ↓↓ Pascal 0.709%
18 21 ↑↑↑ Transact-SQL 0.697%
19 19 Scheme 0.580%
20 25 ↑↑↑↑↑ RPG (OS/400) 0.503%



さあ、これである程度材料はそろいました。


あたなが学ぶときには、



 ●習得のしやすさですか?


 ●目的に適用できる分野に該当するものですか?


 ●習得しやすさや目的は関係なく、需要で選びますか?


 ●それとも、あたな自身の興味のある言語を、特徴を見て選びますか?



最後の選択はあなた次第ですキャッ☆


 



フレームワークを選ぶ際、複数のフレームワークが該当していた場合に、

どれを選択したらよいのか悩ましいところです。


では、どうやって決めればよいのでしょうか...それは判断要素の一つとして、

パフォーマンスがあります。


パフォーマンスは数値としてはっきりでるため、迷いにくい判断基準になります。

では、各フレームワークのパフォーマンスがどれぐらいなのでしょうかはてなマーク

各フレームワークを、


 ・リクエスト発行数「1000」

 ・同時リクエスト発行数「100」


で実行した際のリクエストの処理時間を、各5回計測した結果が

下記になります。


フレームワーク 1秒間のリクエスト処理数 フレームワーク無しに対する割合
Zend Framework 16.7 2.8 %
Symfony 10.7 1.8 %
CakePHP 12.8 2.2 %
CodeIgniter 33.2 5.7 %

 ※フレームワーク無し : 1秒間のリクエスト処理数は 586.1秒

 ※リクエスト処理数が大きいもの程、パフォーマンスがよいフレームワーク

  になります。


上記条件に、Cookie値の受け渡し、ベーシック認証、プロキシ認証を追加し、

再度パフォーマンスを計測した結果は下記になります。



フレームワーク 1秒間のリクエスト処理数 フレームワーク無しに対する割合
Zend Framework 65.1 9.5 %
Symfony 45.9 6.7 %
CakePHP 63.9 9.3 %
CodeIgniter 133.7 19.5 %

 ※フレームワーク無し : 1秒間のリクエスト処理数は 684.3秒

 ※リクエスト処理数が大きいもの程、パフォーマンスがよいフレームワーク

  になります。



では、各フレームワークの関数コールをトレースしたステップ数は

どうなっているのでしょうか?


パフォーマンスと関係があるのかを見てみましょう。


フレームワーク ステップ数
Zend Framework 446
Symfony 934
CakePHP 854
CodeIgniter 310

 ※Xdebugでステップ数を計測



見事にパフォーマンスとステップ数と関係がありました。


パフォーマンスでは、


 CodeIgniter(コードイグナイタ


が圧勝ですきらきら


もし、フレームワークの選択条件に複数該当して迷っている場合は、

一番パフォーマンスのよい「CodeIgniter(コードイグナイタ)」が

お勧めです。




PHPフレームワークは何がよいのだろうか?


簡単に現状を調べてみました。


PHPのフレームワークは、3つ主流となっているものがあります。



■3大フレームワーク


 ▼CakePHP (PHP4、5対応/ライセンス:MITライセンス)


  ・アクティブ、フレンドリーなコミュニティ
  ・フレキシブルなライセンス
  ・PHPのバージョン4と5に対応
  ・データベースとのやり取りのための、CRUDが統合済み
  ・アプリケーションのscaffolding(足場組み)
  ・コード生成
  ・MVC アーキテクチャ
  ・クリーンでカスタマイズ可能なURLsとroutesを
   用いるリクエストディスパッチャー
  ・バリデーションを内蔵
  ・高速で柔軟性のあるテンプレートシステム(PHP構文、各種ヘルパー)
  ・AJAX、JavaScript、HTMLフォーム、などなど各種のViewヘルパー
  ・Eメール、クッキー、セキュリティ、セッション、
   リクエストハンドリングなどのコンポーネント
  ・柔軟なACL
  ・データのサニタイズ
  ・柔軟なキャッシュ
  ・ローカライゼーション
  ・どんなwebサイトdirectoryからでも動作。
   Apacheの設定は最小限のみ



 ▼Zend Framework (PHP5対応/ライセンス:PHPライセンス)


  ・単体テスト作成・実行
  ・メッセージキュー
  ・MVCパターン
  ・ルーティング機能
  ・PHP5対応
  ・コード生成
  ・キャッシュ
  ・AJAX(Dojo,JQuery)
  ・国際化
  ・全文検索
  ・PDF生成
  ・DBアクセスの抽象化
  ・プログレスバー表示
  ・JSON-RPC
  ・JQeuryサポート
  ・SOAPサーバ/クライアント
  ・オートディスカバリ
  ・WSDLアクセス/ジェネレーション
  ・コマンドラインインターフェース(Preview)
  ・プロジェクト資産管理(Preview)
  ・ファイル受信機能の強化
  ・AMF0とAMF3のサポート(Adobe AIR,Flashサポート)
  ・Tiwtterサポート
  ・Lucene 2.3インデックスフォーマット
  ・Captchaフォームエレメント
  ・Zend_Wildfireコンポーネント(Firebugログライター)
  ・Media Viewヘルパ(Flash,Quicktime,Objectとページ)



 ▼symfony (PHP5対応/ライセンス:MITライセンス)


  ・シンプルなテンプレートとヘルパー
  ・キャッシュ・コントロール
  ・種々の環境(OS、データベース)に対応
  ・管理ツール(アプリケーションファイル群の管理――変更、更新など)
  ・scaffolding機能(データベースの基本操作に
   必要なモジュールを自動生成する)
  ・スマートURL(設定ファイルによりURLの形式を決めることができる)
  ・多言語(I18N)対応
  ・オブジェクトモデルとMVC分離
  ・Ajaxサポート
  ・プラグインによる機能追加が可能



上記3大フレームワーク以外に、ここのところ急激にシェアを
のばしてきているのが、以前にも紹介したCodeIgniter(コードイグナイタ)です。



codeigniter (PHP4、5対応/ライセンス:Apache/BSDスタイル)


 ・少ないメモリ(ディスク)で動くフレームワークを望む方。
 ・特別な(非凡な)パフォーマンスを望む方。
 ・PHP4または5の標準構成のWEBホスティングとの幅広い互換性を望む方。
 ・コンフィグ設定を限りなく触ることなく動くフレームワークを望む方。
 ・コマンドラインによる操作を必要としないフレームワークを望む方。
  (※例:PEARチャンネルを使うインストールなどが無い)
 ・コーディング規約を硬く守ることを強要しないフレームワークを望む方。
 ・PEARのような大規模で一枚岩的なライブラリに興味を持っていない方。
 ・テンプレート言語の学習を強要されるのが嫌な方。
  (お望みならばテンプレートパーサーを使うことは可能ですが。)
 ・複雑なものが嫌いで、シンプルなソリューションを望む方。
 ・明確で完全なドキュメント(仕様書)を望む方。



結局、上記のどのフレームワークがよいかは、下記を参考に

選ぶとよいでしょう。

(あくまで参考です。)


■フレームワークを選ぶ際のポイント


 ・必要な機能がフレームワークに含まれているか
 ・動作の安定性(導入実績)

 ・ドキュメントなど、WEB上での情報の多さ

 ・パフォーマンス
 ・開発効率

  (コーディングの容易性、コードジェネレート機能、教育の容易さ等)
 ・メンテナンス性