#前提
この記事は以下の項目全てに当てはまる方に推奨する言語として、
JavaScriptを推奨してほしくない理由を述べます。
- プログラミング初心者
- 特段目的はないがいずれかのプログラムをちゃんと勉強したい人
- 独学
#JavaScriptが初心者に向かない理由
JavaScriptはWebエンジン上で動作するスクリプト言語です。
C/C++/Javaなどのコンパイル言語ではないため、
初心者には環境構築も容易で、特段HTMLやCSSも簡易なものであれば、
難しいといったことはないから初心者にオススメできる。
確かに数年前はそうでした。
今もそう捉えようと思えばそう捉えられないことはないです。
じゃあなぜ推奨しないか。
初心者がきちんとJavaScriptを勉強しようとするには、
JavaScriptに関する情報量が多すぎるからです。
以下にその事例をあげます。
##jQueryの甘い蜜
一度JavaScriptをきちんと勉強しようとすれば、
十中八九初心者は、技術記事やアドバイスなどで
この単語を見かけると思います。
jQueryはJavaScriptのライブラリで、
主にDOM(Document Object Model)を操作する処理や、
Ajax(非同期なクライアントとサーバとの間の通信)処理を容易に、
ブラウザエンジンごとの仕様を気にかけることなく行うことができます。
jQueryを否定するわけではありませんが、
昨今のWebエンジンはブラウザエンジンごとの仕様が以前より
改善されてきているため、jQueryを用いる場面もかなり減ってきています。
ですがこれらの事実は勉強したからわかる話であって、
JavaScript初学者は、
技術記事でよくみかけるであろう煽り文句とともに、
jQueryの直感的な操作のみに焦点を当ててしまい、
それが便利でとても魅力的なものに見えてしまう。
クライアントサーバモデルやAjaxという
言葉にも触れられる機会は少ないでしょう。
##数々のライブラリやフレームワークの乱立
jQueryの甘い蜜を、
なんとか啓蒙記事を見るなどして乗り越えたら、
次に直面するのがこの問題。
Node.js? Vue.js? React.js? AngularJS? ES5? ES6?
はてなの連続です。
どれが一体JavaScriptと呼ばれるものなのでしょうか。
言語仕様という言葉もわからない初心者にとって
この問題はとても罪深いです。
ES5/ES6にしても、
どれがES5に基づく技術記事で、どれがES6に基づく技術記事なのか。
なかなか初心者には判断が難しい。
最近、私もReact.jsのバージョンによる仕様が変わったことで、
推奨される記述方法がガラッと変わってしまい驚きました。
初心者にとってはもうはちゃめちゃです。
自分なら多分オーバーヒートしますね。
##プログラミング初心者に教えるにあたって
ECMAScriptというJavaScriptの標準規格に、
独学でたどり着いた人が中にはいるかもしれません。
ですがJavaScriptの言語仕様にたどり着くことさえ、
初心者にとっては難しいと容易に想像できます。
また、初心者になんらかのプログラミング言語を勧める場合、
自分が経験した言語で、ある程度の道しるべを示すべきだと思います。
最後に、こういう記事を書いていて、
世に出すのであれば正確な情報、
わかりやすい情報を提供することが重要だと思いました。