プログラミング言語の人気ランキングについて実は感じていたこと

折角コメントも頂いたので、プログラミング言語の人気ランキング 2009年1月のエントリでは省略してしまったけれど、実は微妙に感じていたことについて、書いてみようと思います。但し、ここで書くことは、Java を弁護する意図や、別の言語を貶めるような意図はありません。それから、TIOBE の集計は Google、MSN、Yahoo!YouTube といったポピュラーな検索エンジンを用いて、算出していると書かれていますが、実際の算出方法は僕はわかっていません。


先のエントリで、書くのを省略した理由は、それほど重要ではないと考えているからで、実際今でも重要でないと考えています。


TIOBE の結果を見る限り、Java が人気を落としているのは事実だと思います。
プログラミング言語の人気の動向には Web の存在が強く影響していると思っています。
TIOBE の折れ線グラフを見て思うことは、、、


Windows アプリケーションが90年代に隆盛を極めていました。
ところが90年代末あたりから陰りが見えてきます。
21世紀に入るとみるみると Web というプラットフォームが主役の座を奪ってしまいました。
Java もその革命のような交代劇を手伝っていたと思うし、また Java が人気を得ていったのも Web からの恩恵を受けていたと思います。
当時、Windows アプリケーション開発者の中には Windows での開発にうんざりしている人が多く出始めていました。
(例えばページアクセス違反で突然異常終了したり、でもそれをデバッグするのは非常に難しかったり。ワトソン博士なんてあったけど、最近聞きも口にもしなくなりました。それから DLL HELL に泣かされることも多かったり。)
そこへ Write Once Run Anyware や ガーベジコレクション によるメモリ管理で開発が簡単になるといった触れ込みで Java が出てきて徐々に人気を得てきていました。
初期の頃、Web アプリケーションは Perl で書かれた CGI で、とても小規模なアプリケーションでしかありませんでしたが、Servlet/JSP が登場して Web アプリケーション・フレームワークという言葉が浸透し始め、(良いものかどうかは別にして)EJB が登場するとエンタープライズ分野でも Java で作れるということで Java の人気はそのとき最高潮に達しました。
同じ頃、MicrosoftASP .NET を送り出してきましたが、離れたがっている人の全員を引き止めるには至りませんでした。
またそれと同じ頃か、やや遅れる形で、Web アプリケーションを開発する為の選択肢が Java だけじゃないことに皆が気付き始め、PHPPython などの言語にも人気が出てきます。
選択肢が増えれば相対的に Java の人気は当然下がってきます。でもそれは Java だけが下がるのではなく、他の選択肢も同じ様に下がるはずです。
折れ線グラフで2001年からの推移を見ると、C/C++ といった人気上位の言語も Java と似た形で落ちています。
但しその間、単純に落ち続けるだけではなく、上がっている年もあり、上下しながら徐々に下降しています。
今回 Java は落ちてはいますが、P の言語も全部落ちていて、それ対して C/C++ が上がっています。


年々新しい言語は増えているし、人気も多様化するでしょうから、そういう意味ではこれからもちょっとずつ人気を落としていくのだろうとは思います。
2004年から2005年にかけて Java は C に抜かれていますし、順位の入れ替わりもあることでしょう。
それから、書籍やブログなどの論評が、結果的に言語の人気を貶めることになってしまうこともあるのではないかと思います。
過去にこのようなことから、一部で論争のような騒ぎになったことがあったように思います。※
影響力のある人の発言から伝って、それをそのまま受け取ってしまい、あの言語はもう終わりだなどと考える人も中にはいるでしょう。
話が伝っていく中で表現や意図が変わってしまっていることもあるかも知れません。


まあ、一つの言語が永久に一番として使われ続けることなんてあり得ないでしょう。
やがては、TOP 10 も全て入れ替わるときがくるでしょうから。
そのとき僕が何の言語を使っているかは解りません。もしかしてしぶとく Java を使い続けているかもしれませんし(逆にそれが旨みを味わえる可能性もあるでしょう)、その時の一番人気のある言語を使っている可能性もあるし、既に隠居している可能性もあるでしょう。


僕はそんなに賢い頭を持ってはいないので、今回書いたことには当然間違いや、思い込みもあるでしょう。
けれど、これが昨日書いていて、今も思っていることです。


※一部で騒々しい様子だった気がします
http://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/0596006624
http://www.amazon.co.jp/%E3%83%8F%E3%83%83%E3%82%AB%E3%83%BC%E3%81%A8%E7%94%BB%E5%AE%B6-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E6%99%82%E4%BB%A3%E3%81%AE%E5%89%B5%E9%80%A0%E8%80%85%E3%81%9F%E3%81%A1-%E3%83%9D%E3%83%BC%E3%83%AB-%E3%82%B0%E3%83%AC%E3%82%A2%E3%83%A0/dp/4274065979
Amazon CAPTCHA
http://www.amazon.co.jp/Java%E3%81%8B%E3%82%89Ruby%E3%81%B8-%E2%80%95%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%AE%9F%E8%B7%B5%E7%A7%BB%E8%A1%8C%E3%82%AC%E3%82%A4%E3%83%89-Bruce-Tate/dp/4873113202/ref=pd_bxgy_b_img_a
それからこんなのもあった
http://journal.mycom.co.jp/articles/2008/12/03/javasfather/


【DLL HELL の件について追加】(2009/01/26 01:40)
似たような問題が Java にもあって、それは Jar HELL と言われているようです。
Jar HELL のような問題を解決しようとするものとして Apache MAVEN や、Apache IVY などがあります。