2018年01月17日に初出の投稿

Last modified: 2018-01-17

毎年のように、流行のプログラミング言語とかフレームワークの話題が出るわけだが、もちろん専門の開発者は言われなくてもトレンドくらい分かってるので、これは特に初心者への記事なのだろう。でも、初心者であればなおさら、最初に覚えておいた方がいい言語や、汎用性を考えたら学んでおく方が有利な言語というものは限られている。なぜなら、既存の資産を活用するという観点に立てば、「既存の資産」の総計が1年ていどで大きく変わるわけがないからだ。しかるに Perl や C や JavaScript の資産は膨大にあって、Rust や Haskell や Swift がどれほどもてはやされようとも全く追いつけない。今年で Perl や C が宇宙から消え去っても、これからの標準的な業績やノウハウの蓄積によって後続のプログラミング言語のノウハウや学習資料や経験が C や Perl に追いつくのは、やはり何十年も先の話だろう。仮にもっと早い時期に追いつけたとしても、それは既存の他のプログラミング言語のノウハウをヒントにしているからであり、C や Perl がノウハウを積み上げていた時期に比べて、競合する(そして使い勝手やデザインパターンが似ている)言語とかプロジェクトがたくさんあるからなのである。(ちなみに、ここでアキレスと亀の話をしたいわけではなく、後続の言語に関する知見が先行する言語の知見の総体に「追いつきようがない(原理的に追いつけない)」と言いたいわけではない。ノウハウが蓄積してくると、もちろんあとは些末なテクニックを知ってるかどうかの差にすぎなくなってくるからだ。)

ということで、初心者が学びやすい言語は、恐らく学習コストから考えて JavaScript で間違いがない(僕がふだんから JavaScript ベースの UI に文句を書き続けていることを知っている人には奇異かもしれないが、僕はもともと JavaScript を今世紀に入ったあたりから使っている)。なにせ、テキストエディタとブラウザさえインスト―ルされていれば開発を始められるのだ。他の多くの言語は、そもそもウェブサーバや処理系をインストールして設定しなくてはならず、それを覚えなくてはコードを動かせない。もちろん、XAMPP のようなツールもあれば、アプライアンスにセットアップされた状態で提供される仮想化 OS を使えば苦も無く処理系は用意できるかもしれないが、そういうものに頼っているとトラブルが生じたときに場当たり的な対処しかできず、そこでノウハウを積み上げても体系的ではないため、他の状況に置かれると(特にコンピュータサイエンスの専門教育を受けておらず、通信や計算理論の素養がまるでないコーダは)応用が利かない。最初から懸念することが殆どない JavaScript を使っておくのが無難だろう。ただし、くれぐれも注意したいのは、最初はどういう言語でもデータ型の区別だとか、処理やルーチンの制御方法を学ぶことに集中した方がいいのであり、JavaScript を使うからといって、最初からブラウザに何か派手なものを表示して動かそうとしないことである。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Google+ Twitter Facebook