2013年度TIOBE発表プログラミング言語ランキングとweb系にオススメする言語

By@mtoksuyOn
2013年度TIOBE発表プログラミング言語ランキングとweb系にオススメする言語

2013年度プログラミングランキングがTIOBEから8月に発表されました。少し記事にするのが遅くなってしまいましたが、ちょっとランキングがどうなってるのか気になったので記事にしてみます。その他に人気のあるwebサービスがなんの言語で開発されているのかをちょびっとだけ集めてみましたので、今後勉強したい言語を選ぶ為の材料としていただけると嬉しいです。

2013年度プログラミングランキング表

2012年とそんなに変わりはないのですが、10位以内の言語を合計すると物凄いシェア率になっているんだなと改めて実感してしまいました。言語名をクリックすると10年間のシェア遷移のグラフが見る事が出来ます。

2013年 2012年 言語名 シェア率
1 2 Java 15.978%
2 1 C 15.974%
3 4 C++ 9.371%
4 3 Objective-C 8.082%
5 6 PHP 6.694%
6 5 C# 6.117%
7 7 (Visual) Basic 3.873%
8 8 Python 3.603%
9 11 JavaScript 2.093%
10 10 Ruby 2.067%
11 9 Perl 2.041%
12 15 Transact-SQL 1.393%
13 14 Visual Basic .NET 1.320%
14 12 Object Pascal 0.918%
15 20 MATLAB 0.841%
16 13 Lisp 0.752%
17 19 PL/SQL 0.751%
18 16 Pascal 0.620%
19 23 Assembly 0.616%
20 22 SAS 0.580%

こちらは10位以内の言語シェアグラフ

引用元:TIOBE Software: The Coding Standards Company

ボクが応援しているPHPさんも中々がんばっている様子です。

有名どころのwebサービスで使用されている言語

FaceBook

開発言語:PHP、C++

PHP を選んだ理由は、シンプルな言語で学びやすいからだ。書くのも簡単だし、読むのもデバッグも簡単。一方で、ダークサイドもある、ランタイムコストだ。 CPUとメモリの消費が大きいし、ほかの言語と統合するのも難しい。また大規模なプロジェクトでは、モジュール構造をうまくサポートしているとはいえない。

それ以外にも、長い経験から発見したPHPの課題がある。新しく書いたコードが古いコードを遅くするということだ。例えば、PHPで書いたABCという機能にDEFという新機能を付け加えると、たとえABCからDEFを呼び出していなかったとしてもABCの動作が以前より遅くなるのだ。初期化コストなどが増加するためだ。PHPにはこうしたスケーラビリティの課題がある。

そこでわれわれは、PHPの初期化を緩和するためのの拡張であるLazy loadingや、Cache priming、最近ではPHPをC++にコンパイルするといったアプローチを採用している。

引用元:Facebookが大規模スケーラビリティへの挑戦で学んだこと(前編)~800億枚の写真データとPHPのスケーラビリティ問題 - Publickey

Twitter

開発言語:Scala

ある Anonymous Coward 曰く、

Twitter は Ruby on Rails で構築されたそのインフラを徐々に Scala に置き換えているそうだ (Technology Review の記事, 本家 /. 記事) 。

Twitter ではフロントエンド、バックエンド共に Ruby on Rails が使われていたが、最近では大量のメッセージを処理できず「Fail Whale」出現の原因となったりしていた。このため Twitter の開発チームは代替言語として Scala を採用、少しずつバックエンドやインフラを Scala に置き換えているそうだ。スイス連邦工科大学ローザンヌ校の Martin Odersky 氏によって開発された比較的新しいプログラミング言語である Scala は並列プロセスの処理に長けている点が Twitter に向いており、また言語としてのフレキシビリティも開発にとっては魅力とのこと。短所としては、機能も多く、シンタックスも見慣れた感じでは無いため習得が簡単ではないことと、新しい言語であるため実績がまだ少ないことだという。それでもTwitterでは多くのテストケースを成功させており、Scala の方がメリットが多いと考えているようだ。

開発チームはフロントエンドは Ruby on Rails のまま、年内には API リクエストの一連の処理を Scala で行えるようにしたいとしている。

引用元:Twitter、Ruby on RailsからScalaへ | スラッシュドット・ジャパン IT

mixi

開発言語:Perl

 ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerl、PHP、Python)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では、パッケージ製品を採用している部分もある)。このmixiのケースは、MySQLを採用するWebシステムとして、間違いなく世界有数の規模といえる。

引用元:mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法 - TechTargetジャパン システム開発

GitHub

開発言語:Ruby

Rubyを採用しているWebサービスの一例:

Twilog ( http://twilog.org/ )
GitHub ( https://github.com/ )
Favstar.fm ( http://favstar.fm/ )
Twitter ( http://www.twitter.com/ ) (昔の話。今はJava。)

引用元:Webサービス構築に使われているプログラミング言語まとめ - NAVER まとめ

やはりwebサービスはPHPが主流ですが、

最近はRubyがwebサービスでもキテる感がありますね。(2011年あたりから)

webサービスを開発するにあたってオススメしたい言語

webサービスを開発する時に使用するオススメの言語はRubyのRuby on Railsが良いのではないでしょうか。フレームワークは好きではないのですが、このフレームワークに限っては開発スピードがアップしますのでオススメです。

webサービスを構築するのに適している言語一覧表

言語名 難易度 カッコ良さ度
PHP ★☆☆☆ ★☆☆☆
Ruby ★★☆☆ ★★★★
Python ★★☆☆ ★★★☆
Perl ★★☆☆ ★★☆☆

※ ボクの勝手な偏見です。

200種類以上あると言われているプログラム言語ですがwebサービスを構築するのにはやはりRubyのフレームワークであるRuby on Railsが一番カンタンでカッコいいと思います。

プログラム全般を勉強出来るTATSUO IKURAさんのブログがオススメです。

Ruby on RailsはWebアプリケーション作成のためのフレームワークの一つであり、プログラミング言語としてRubyを使用するフレームワークの代表的なものです。ここではRailsを使ったアプリケーション作成の方法について順に解説を行ないます。

事前に「Railsインストール」を参照して頂きRailsのインストールを行なって下さい。またプログラミング言語のRubyに関しては「Ruby入門」をご参照下さい。

関連サイト:SQLite入門, Apache入門

引用元:Ruby on Rails入門

まとめ

Ruby on Rails以外にはボクがメインで使っているPHPもオススメです。バージョンも5.5になり古いバージョンを使う習慣があったPHPですが、最近ではPHPをアップデートして開発する会社も多くなって来たと感じています。プログラム言語はあくまで手段ですので、個人、プロジェクトチームに合った言語を使用してwebサービスを開発していけたらいいですね。

webサービス