いろいろなプログラム言語がある中で、
いったいどの言語を勉強したら良いのでしょうか?
これは、みんなが最初にぶつかる問題のような気がします。



<多数決の観点から見てみる>

目的や趣味の問題が存分に関わってくるかと思うので、多数決をしてみます。
「え!?多数決?」

いえ、googleで引いて数を比べるだけです。
(言語名+プログラムで引きました)


php ⇒ 4,720,000 件
java ⇒ 1,490,000 件
C++ ⇒ 1,410,000 件
perl ⇒ 1,320,000 件

予想では、C++が一番少ないと思ったのですが、意外と多いですね。
でも、ダントツはphpです。
おそらく仕事や将来性を考えれば、php、javaを学ぶのが良いのでしょうね。


でも、それぞれ良いところと悪いところがあるので、それぞれの特徴に応じて取捨選択できると一番いいかと思います。

そこでここでは私の知っている言語について特徴(私見)を書いてみようと思います。



<特性の観点から見てみる>

【javaの特徴】
<良いところ>
 ・実は結構速い
 ・フレームワークが充実していて、やりたいことのほとんどは1から作ることがほとんどない
 ・どの環境でもプログラムをほぼ変更することなく動作する
 ・ポインタを隠蔽しているので、ポインタに関する危険性が小さい
 ・メモリ管理の必要が無い
<悪いところ>
 ・フレームワークが多すぎてどれを使うのが良いか迷う
 ・フレームワークはそれぞれ使用方法が違うので、それぞれ1から勉強しないといけない
 ・C++のようにTemplateがないので、同じようなコードをいくつも書かないといけない
 ・コンパイルに時間がかかる



【C++の特徴】
<良いところ>
 ・自由度が高い (ポインタが使える、自由なキャストが可能だったりするので)
 ・ポインタを使用できるので、うまく利用するとスピードが速くなる
 ・STLやTemplateを使用して、書かなければいけないコード量が減らせる
<悪いところ>
 ・メモリリークが発生しやすい
 ・STLの文字列クラス(string)を使用すると余計な処理をするので遅い
 ・STLの発生するコンパイルエラーが分かりにくい
 ・コンパイルに時間がかかる
 ・文字列処理が苦手。正規表現が標準でない


【perlの特徴】
<良いところ>

 ・コンパイルの必要がないのでデバッグが速くできる
 ・分かりやすい
 ・メモリ管理の必要がない
 ・ライブラリをダウンロードするWEBがあり、そこにいけばなんとかなる
<悪いところ>
 ・クラス・継承という概念が無い(ver 5.6)
 ・資料が少ない



<習得難易度の観点から見てみる>

どのくらい学習しやすいか?また学習できたことを前提に、どのくらい開発効率が良いか?を見てみましょう。
(独断と偏見です(^^;))
言語 速習性 難易度 開発効率 再利用性 理想の開発体制
java
eclipse使用時は中の高
大人数
c++
(templateを使えるので)
小人数
perl

(コンパイル不要なので)

低い 中人数




とりあえずフリーで何か学びたければ、perl。

将来SEなどを目指すなら、PHP、Java。

もっと高みを目指すなら、C++といったところですかね。

さて、あなたはどれが気に入りそうですか?