プログラミング言語について(2)

人工知能技術 機械学習技術 トピックモデル オントロジー技術 デジタルトランスフォーメーション  自然言語処理技術   知識情報処理 

前回の話に続き、プログラミング言語について述べてみたい。

プログラミング言語は無数にある。例えば前回紹介した図書「世界が変わるプログラム入門」ではマシン語、アセンブリ、BASIC、C、C++、JAVAが、「7つの言語、7つの世界」ではRuby、Io、Prolog、Scala、Erlang、Clojure、Haskellが、ネット上での調査では、前記以外の言語としてPython、Javascript、SQL、C#、VBA、PHP等が上げられている。

フロントエンドと呼ばれるウェブに関係するソフトウェアを組むのであれば、ブラウザが受けつけてくれる言語であるJavaScriptやCSS、HTMLは必須だ。altJSはあるが最終的にはJavaScriptにコンパイルされてブラウザに読み込まれる為、まずはJavaScriptの知識がなければ言語を使いこなす事ができない。Googleエンジニアの必須の言語であるのもそれを裏付ける。

ブラウザに関係のないバックエンド側では選択肢が大きく広がる。選択する観点としては、生産性(プログラミングのしやすさ)や、デバッグのやり易さ、ライブラリの豊富さや、集団で開発をするケースとしては自分の周りにその言語を使える人がどのくらいの割合でいるか等がある。

このうち使い易さに関しては、近年のメジャーな言語は他の言語で見出された利点を取り込むケースが多く、例えば前述の関数型アプローチもほとんどの言語で大なり小なり組み込まれている。ライブラリの豊富さに関しては、近年のPython人気にもみられるものであるが、言語自体に後方互換性がないと古いライブラリはすぐ使えなくなるという課題は残っている。言語を使える人がどれくらいいるかに関しては、ベンチャー等の先進的な場と、大手ITファームとでは大きく異なる。例えば大手のシステム開発会社にアウトソースしようとする場合は、JavaとかC++等のレガシー環境の方が選択肢が多く、新しい言語を使用しようとすると選択肢が狭まれてくる感覚がある。

バックエンドで利用する言語に関する戦略としては、一つの言語を集中して使いこなし、その上で他の言語との差分を認識しながら使いこなす事が、ベストの選択だと思う。一つのプログラミング言語を使いこなせるようになる為の最善の道は、教科書を読んで文法を覚えるのではなく、実際の課題を解くために他人が書いたコードを写して実際に動かしてみる「写経」を行う事だと思う。仏教の写経と同様に数をこなすことで悟りに近づくことができるのだ。

次回は具体的な言語の一例として、現在に蘇ったLISP言語であるClojureについて述べてみたい。

コメント

  1. […] 次回も引き続きプログラミング言語について述べてみたい。 […]

  2. […] プログラミング言語について(2) バックエンド言語とフロントエンド言語 […]

タイトルとURLをコピーしました