The 42 Of Spaghetti

メモを交えて所有物を淡々と記録するログ

プログラミングにおける公用言語はjavascriptで良いのではないでしょうか

プログラミングにおける公用語(言語)を決めるとしたら何になるんだろう - Sprint Lifeのエントリを読んで。この手の話題はギーク界隈ではループする"たのしいはなし"ですね。

公用語としてのプログラム言語の定義

「とりあえずこれは学んでおけ」 という位置付けの言語

ということなので、初心者の習得容易性を考慮するとbrainfuckとか機械語、アセンブラでなければ何でもよいのでしょうが、飽きにくい、変な癖がつきにくい、その後の応用が効きやすい(概念として覚えやすい)、公用語として「そこそこ普遍性があるっぽい」ということも加味して考えると、ECMAScriptではなく色々方言はあるけれど「ブラウザ上で動かすぜ」的な意味でのjavascriptかなという気がします。

javascriptを推す理由

言語として云々というより、ウェブが「ブラウザ上で動かす何か」として結構な資産を持っているので、フロントとしてのHTML/CSSは抑えておきたい。またそれに絡めたフロントエンドの言語としても、バックエンドとの橋渡しとしても、バックエンドそのものとしても動かすことのできるjavascriptは汎用性もそこそこあるかなーというのがひとつの理由ですね。この文長え。

もうひとつは、習得容易性と飽きにくさ。これは、ブラウザとメモ帳あればとりあえず動くから、素のコンピュータでとにかくすぐ動くっていう強みがありますね。すぐはじめられるってのは意外と大きいと思うのですよ。

どの言語も最近は入門ハードル低くなってるけど、やっぱコンパイルするまでの環境整えるだけで面倒と思う人はいるだろうし、IDE(統合開発環境)はまだインストールする手順が結構めんどいし、それ自体を覚える手間がかなりあるっていう状況だと思います。言語そのものにフォーカスするのに、「とにかくすぐ書いて動かせる」ってのは、飽き対策(正確に言うと「周辺事項でつまづくイライラ感をなくす」)として非常に有効です。

また、HTML・CCSと組み合わせて書いていけばすぐに動かせるし、画像なども簡単に扱えるので、ダイナミックな動きを比較的実装しやすいのですよね。これは「自分で作ってる感じ」が大きくて、やっぱりこれも初学者には非常に効果的。文字列で「hello, world!」じゃねえよっていう。やる夫のAAくらい出したいよっていうドライブ感が求められているような気がします。勘違いか。

あと、実行環境がブラウザなので、おかしなコードでもブラウザが落っこちるくらいで、へんなコード書いてもあんまりシステムへの影響を(基本的には)気にしなくて良いってのも理由かな。少なくともrm -rf * 的な被害はない。

習得容易性に関してはどうだろう。javascriptがそもそもオブジェクト指向言語としてどうなのよ、という議論はちょいちょい見かけた(いまでもあるの?)けど、ベーシックなこと学ぶ文には十分でしょ、と思う。無名関数が云々の話はあとでいーじゃないですか*1

言語を学ぶことに対しては、僕はそもそも悪名高いphpでも構わないと思うのですよね。言語をかける人たちはあのルーズなぐだぐだ言語仕様を「まったくもって価値がない」というし、やっぱり使っていて割とイライラするからPHPer*2ですら関数のエイリアスを作ったりライブラリを使って言語の癖をなんとかしようと工夫している人は多いけど、習熟に関してはそのグダグダさを議論する前の段階であって、「とにかく慣れてから考える」ってのも必要かなとは思います*3

公用語としてのjavascript

公用語としてだと、そもそも方言であって仕様がいまいち不明瞭なjavascriptがそれってどうなのよ、という気もします。pythonとかruby、やっぱ基本に立ち返って?Cとか思ったんですが、ここらへんは「動かすのが大変」っていう部分でひっかかるので、じゃあやっぱjavascriptを入門かつ公用語とすればよいのじゃないだろうか、とおもった次第です。入門と公用語を分けないで考えると楽かなあと。あと、宗教(言語)戦争になりにくい言語な気がしますよjavascriptは。

なのでこの公用語はあんまり表現豊かではないんだけど、入門を兼ねた言語としてはいーんじゃないの、という感じでした。

*1:いや、そんな後にはできないか

*2:PHPを実際に使う人

*3:まあ、PHPならはじめからRubyなりperlなりを習得したほうが良いんじゃないか、という気もしますと言ってみるPHPerの僕ですた

広告を非表示にする