見出し画像

micro:bit中級者編(2)〜JavaScriptについて

中級者編が始まりましたが、ざっくり初級、中級、上級の棲み分けは次のように考えています。

初級編:ブロックプログラミングでできることだけ

中級編:JavaScriptでできることまで含む(一部機能拡張を考える)

上級編:センサーや制御等の拡張やクラウドサービスとの連携を考える

こんな感じです。中級編を進めるに当たって、まずJavaScriptとはどんな言語なのか、突っ込んで学習するに値するものなのか、等々から説明しようと思います。

===

実を言いますと筆者はJavaScriptを仕事で使ったことはありません。趣味の範囲で必要に応じて既存のソースを改変したり新規なら数行書いたりした程度です。

なので、言語の詳しい解説などは専門書に譲るとして、ここの投稿内容は筆者個人の認識レベルであることをまずお断りしておきます。

===

・まず、JavaScriptは元々スクリプト言語(インタープリタが逐次処理する)ですが、micro:bitではMakeCode環境下でコンパイルされたバイナリをダウンロードして動作しています

・ここで"JavaScript"と呼んでいるものは正確には"TypeScript"のサブセットで、ファイル入出力、evalなどの動的機能(インタープリタではないから)、非同期処理(async, await)、一部の文法(for-in、with等)がありません

・元来"JavaScript"は、ウェブの見栄えをリッチにするため、ウェブアプリケーションを開発するために開発されたものです。micro:bitなどの組み込み用途で使われるようになった(した)のは、言語に親しんでいるユーザが多いので使ってもらいやすいから、と言う事情によるものだと想像されます。

・エンジニアの間で人気の言語ランキングを取るとPythonと1、2位と争う常連です。ウェブアプリケーションの開発者が多いと言うことなんでしょうが、これだけ広まってしまうとこれが廃れて他の言語に全てを置き換えないといけない、とかは考えにくいですね。学んでおいて(慣れておいて)損はないと思います。

・micro:bitはPythonやC++でも開発できますが、JavaScriptと同じようにブロックと切り替えて動かせるようになるのはまだもう少し時間がかかりそうです。つまりmicro:bitを使う限りにおいて、ブロックの次に学ぶのはJavaScript、Pythonを学ぶのはその次、C++は必要に応じて、が現実的と言うことです。

===

今回はここまで

サポートを頂けると望外の喜び。コンテンツ制作の励みになります。よろしくお願いします。