2008年04月16日

プログラミング言語比較の巻(2)

私の独断と偏見で、「業務SE・PG向けのコア技術として習得すべき言語5選」を選出しました。

ちなみに私が使える言語は、C, C++, Java, PHP, Perl, Ruby, Python, BShell, COBOL, VB, VC++, HTML, JavaScriptです。


「業務SE・PG向けのコア技術として習得すべき言語5選」
1.C言語
2.Java
3.PHP
4.Ruby
5.HTML

1.業務アプリでC言語を使用することは、最早少ないかもしれないので、実際に仕事で使用することはないかもしれないのですが、コンピュータ・ネットワーク・プログラミングの基礎をおさえるという意味では、やはり習得しておきたい言語です。他の言語と比較して、低レベルのインタフェースを持っているため、バイナリデータや生ソケットを自由に扱えるというのは、技術への理解を深めるためには最適なものです。また、C言語を習得しておくと制御系への転身のチャンスもできるという副産物もあります。

2.Javaについては、多くを語る必要は無いように思えます。言語の特徴というより、シェアが最大の理由です。

3.PHPの「Webアプリ作成のための言語である」という特徴はやはり無視できないものです。言語開発のベクトルが明確なだけ、他の言語と比較して標準装備されている関数などが、Webアプリ開発に関して充実しています。「何にでも使えるように作ったものは、何に使う時にも微妙に不便になってしまうの法則」に縛られていないということですね。また、1次情報・2次情報ともに充実しているということも大きいです。

4.コンパイルを必要としない手軽なコマンドを作成できるスクリプト言語を1つ習得しておくべきでしょう。候補としては、Perl, Python, Rubyがあるのですが、私はRubyを挙げます。Perlについては、増改築を繰り返した老舗旅館、もしくは進化の袋小路(多くの省略記号は、本当にメンテナンスを含めた生産性を上げているのか?)というイメージがあるので、除外。残るPythonとRubyを比較すると、Rubyの方が後発である分、言語仕様が良くできている(例外処理やブロック)こと、さらにRubyが国産であることからRubyを選択しました。私的には、「Ruby on Rails」の存在よりも言語仕様の方に魅力を感じました。

5.HTMLについても、多くを語る必要はありませんね。知らなければお話にならないです。

挙げませんでしたが、C++も余裕があれば習得しておきたいところです。C言語を包含しているオブジェクト指向言語という点です。ともすれば、速度性能面が問題になりがちなオブジェクト指向で、場合によりC言語を使用して速度を出すことができるという柔軟性は魅力です(私の場合、ソフトウエアのコアエンジンを担当する場合が多かったので。昔、プロジェクトの方針でC++で作成していたエンジンを、速度UPのために大部分をC言語に書き換えたこともありました)。

あと、Windowsローカル言語(VB, VC++, C#など)は挙げませんでした。プラットフォームに依存する言語をコア技術とするのは知識や仕事の幅を狭めてしまうと考えているからです。また、挙げた4つの言語を習得していれば、後でWindowsローカル言語を覚えるのは、さほど難しくないと思っています。
posted by 台北猫々 at 20:25| Comment(0) | TrackBack(0) | コラムみたいな