プログラミング言語の基本は変わらない

ソフトウェアの開発用として様々な開発言語を使ってきたけれど、その基本部分は実はあまり変わらないのではないかと思っている。もちろん、言語によっては得手不得手があるし、ライブラリの支援が有って初めて使える機能も有るけれど、その辺の差異は大した問題ではないと思う。いわゆるデザインパターンをどのように適用していくか、高品質なアウトプットを生み出すためにバグをいかに防ぐか、と言った考え方はどのような言語を使おうと変わることがないはずだ。

むしろ、統合開発環境の支援とかドキュメントや資料類の充実度によって、習得の容易性は変わるし(例えば、iPhone登場前後のObjective-Cの情報量を比べれば一目瞭然)、開発現場の実感としては言語そのものに関する知識もさることながら、巨大なライブラリやフレームワークに関する知識も重要だったりする。(例えば、Javaや.NETなど)

動作プラットフォームに関する制約や流行り廃りもあるので、特定の開発言語の専門家は別として、開発者としては複数の言語を習得しておいた方が良いと思う。周囲を見ていると、一つの言語を充分使いこなせる人は、他の言語でもあまり苦労すること無く使いこなせるようだ。これは、例えば、第一外国語として英語を習得した人が、その学習のコツを活かしたり英語との類推により、第二外国語以降を比較的楽に習得できる状況と似ていると思う。

そんな訳で、下記の指摘には深く同感。開発作業には「ヘビー級」の言語を使い、それを補佐するためのテストツールとして「ライト級」の言語を使うパターンが多い。それぞれの言語の特徴を理解していれば、適材適所で使い分けられると思う。

プログラミング言語は、ヘビー級(C++Java)とライト級(PythonRuby)を1つずつ覚えておくと、その場に応じて使い分けられるので何かと便利。

プログラミング言語人気TOP10の簡易解説

なお、上記で紹介された「プログラミング言語人気TOP10」は一応全て使えるけれど、番外として載っているScalaだけは使ったことが無い。この習得が今年の課題なのかも知れない。

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)