taro-h’s diary

たろログ

ブログです。近況報告とか振り返りとかとか

僕が最初に学んだ言語がJavaScriptでよかったなと思う理由について

よくある「初心者が学ぶのに一番いい言語は?」みたいな話題になったとき、僕としてはJavaScriptを推している。

これは、僕が初めて学んだ言語がJavaScriptで、かつ、あとから考えてJavaScriptでよかったなと感じているからである。

僕がJavaScriptを推すのは、「挫折ポイントが徹底して少ないから」である。

具体的には、次の2つである。

  • 環境構築が (ほぼ) 不要である
  • グラフィカルな表示がされる

環境構築がほぼ不要である

メモ帳でファイルを作成して、ブラウザで開けば動く。これは最強である。

往々にして、初心者は環境構築で挫折する。

  • エディタをインストールしてセットアップしたり
  • コンパイラをインストールしたり
  • Windowsの環境設定からPathを通したり

実際、僕もJavaとかCを触ってみようとしたときに、すごく大変な思いをした。
特に3つめ、Windows環境変数を変更して、Pathを通す設定が鬼門だった。

メモ帳で sample.html という名前のファイルを作り、そこに <script> タグでコードを書いて、保存したファイルをクリックしてブラウザで開けば動くJavaScriptで本当に良かったなと感じている。

グラフィカルな表示がされる

初めて実行した「Hello, World」は、alertメソッドで行った。

これは簡単なもので、alert('Hello, World');と書くと

f:id:mutsu00062:20200914050042p:plain

みたいなウィンドウが現れる。

ここの文字を「ち○こ」に書き換えるところから、僕のプログラミングは始まった。

JavaScriptの「ウィンドウでグラフィカルに表示してくれる」というのはすごく面白かった。ただただサンプルの文字を書き換えるだけでめちゃくちゃに楽しかった。

ロジックの説明には十分なため、他の言語の入門書ではCLIで「Hello, World」するものが多かった。

今はそんなことはないけれど、当時、CLI出力された「Hello, World」文字を書き換えてもあれほどの楽しさは味わえなかっただろうと思う。

HTMLファイルとして友人に共有できた

これは推す理由ではなくて、完全に個人的に良かったなと思っていることなんだけれど、HTMLとして配布すれば友人にワンクリックで開いてもらえるのもすごくよかったなと感じている。

当時はLINEでコミュニケーションをしていた。LINEはWindows版のクライアントでHTMLを添付するとHTMLとして認識され、クリックするとブラウザで開いてくれた。

そのうちファイルを分割したり、画像を読み込んだりする必要が出てきてLINE上では完結しなくなったけれど、それも簡単な無料ホスティングサーバを借りて、URLを共有することで解決できた*1

というわけで

というわけで、僕は初心者におすすめの言語と言われたらJavaScriptを推している。

具体的には、お世話になった マンガで分かる JavaScriptプログラミング講座を推している。

これは、上述したとおり挫折ポイントが少なかったからである。

プログラミングを始めたきっかけは、「なんか今後役に立ちそう」という漠然かつ軽いものだったので、もし初動で挫折していたら、今頃は全然違う道を歩んでいたかもしれないと本気で思っている。

とはいえ

とはいえ、他人に勧めることを考えると、一番重要なのはその人が何を作りたいかであり、作りたいものに合わせた言語を勧めるのが一番である。

また、僕がつらつらと書いたのは当時 (5年近く前) の話で、今はブラウザでコードが書けたりするのでそこまで環境構築の手間にこだわる必要はないし、言語標準でグラフィカルな表示がなくとも、ライブラリやAPISDKを利用することで、CLIからメッセージを送ったり、カメラで画像認識をしたりといった標準出力以上のことができる。

というわけで、「初心者が学ぶのに一番いい言語は?」という話題になったときには、心の中で「(JavaScript)」とつぶやきながら、積極的に話題には参加しなくなった昨今である*2

*1:ウェブクロウというサービスを利用していた。FTPクライアントを利用せねばならず大変だったのを覚えている

*2:あくまで自分にとってよかったというだけ。「自分にとってよかった」がいつの間にか、「〇〇は〜するのが望ましい」というのになっているというのはやりがちな事象なので、範囲を自分に留めておくよう、意識をしたいなというのがある。