2012-04-09

各種プログラミング言語を学習する意義のまとめ

各種プログラミング言語を学習する意義を簡単にまとめたい。


■ JavaScirpt
  1. サーバーサイドやアプリも開発できたりする面が注目を集めたりもするが、本質はWebブラウザというクライアントサイドの開発を事実上独占しているというのが肝。
  2. テキストエディタとブラウザを用意すれば開発をはじめることができることからプログラミング初心者向けな言語でもある。

■ PHP
  1. Web専用のスクリプト言語。入門書やインタネット上の情報なども多く、とっつきやすい。
  2. Facebookをはじめとして、名だたる企業がPHPから乗り換えていないという事実。

■ 各種スクリプト言語(Ruby, Python, ...etc)
  1. 国際派でGooglerなPython、日本発でコミュニティに定評のあるRuby、など。神学論争が繰り広げられているが大差はないので好きなものを選ぶと吉。
  2. サーバーサイドに限らず、データ処理などのツールとしても便利なのでRubyやPythonはいずれかひとつを覚えておくといい。

■ Objective-C
  1. iPhone, iPhone, iPhone! プログラミングでお金稼ぎをしたいならiOS!
  2. ジョブズ以後のAppleは心配ではあるものの、米国政府以上に現金を保有しているうえ、強固なプラットフォームを有するApple帝国が簡単には沈むとは思えないし、そもそもObjective-CはCと互換性があるので少なくともその勉強にはなる。

■ Java/Scala
  1. 実行速度がスクリプト言語に比べて早い。それでいてクロスプラットフォームであるため、WindowsやUNIX系の間のソースコードを移植することが可能。
  2. 大規模データの分散処理に使用されるHadoopなどの有望な技術に触れることができる。ライブラリなどの資産が多く、言語自体が下位互換をサポートしている。Androidをネイティブで開発できるのもその恩恵のひとつと言える。

■ C/C++
  1. ガベージコレクションがないため、メモリの確保の勉強になる。
  2. 上で取り上げたようなプログラミング言語自体がCで書かれているので、その言語の関数などについて知りたくなったときにコードを読んで理解することができるようになる。
  3. スクリプト言語に比べ爆速であるため、負荷が大きく速度の求められるサービスのコアの部分をC系で実装することがある(Facebookなど)。
  4. 各種LinuxベースのOSなどを勉強する際にも必須。

@ymkjp