見出し画像

micro:bit上級者編(22)〜プログラミング言語を考える

先日紹介した書籍の内容の一部を要約してみます。

筆者がプログラミング言語に興味を持ったのは高校生時代から学生時代にかけての40年以上前のことです。社会人として仕事で電子回路の方に舵を切ったので言語についてはチラチラ横目で眺める程度の関わり方でした。

今や第一線から身を引きつつあり、IT関連の後に続く人たちを指導する立場になってみて、改めて知識を整理したいと思っていたところタイミングよくこの本が出たので勉強しなおしているところです。

筆者が懸命に言語を追っていた時期はちょうどPrologとか第五世代コンピュータプロジェクトが国策で始まったり、海の向こうではC++やSmallTalkとかのオブジェクト指向言語が出始めた時期でした。今はどんな話題がホットなのかに興味があるところです。

===

上記書籍では数多ある言語を分類しているのでこれの紹介から始めます。

1 コンパイルするか否か

この本では処理系の違い、つまりコンパイルしてから動くかインタープリタで動くかで分類さてていますが、ユーザーとしてはそんなことより、開発環境の違いが大きいと思います。このシリーズの最初の方でも書きましたが、開発に専用ソフトを手元のコンピュータにインストールする必要があるのか、クラウドで完結するか、が大きいでしょう。前者は高価なパッケージを購入するのが一般的でしたが今や後者はほとんどが無償で提供されています。しかも使用するコンピュータや作業場所を選ばないのが画期的なところです。

2 型があるか否か

"C"のような言語を便利だと思うか厄介だと思うかが分かれ目だと思います。筆者のような(回路系の)人間は、文法がややこしく制約が厳しいよりもメモリに置かれるバイナリデータがイメージできるかどうかが分かれ目です。

型チェックを厳しくするのは実行する前にバグがわかるのがメリットだと思いますが、組み込み制御をしたい場合はそんなことより実際に回路にダウンロードして動かない時のデバッグを容易にすべきだと思います。

3 手続き型か関数型か

この線引きは筆者にはよくわかりません。実際CPUが実行している様子をイメージできる手続き型?にシンパシーを感じますが、その昔のBASICとかFORTRANには戻りたくないなとは思います。いいところどりしてくれれば問題はないです。

4 ウェブ・フロントエンド系か否か

言語処理系が何を土台に動くか、は実は大事な観点です。従来言語はOS、つまりWindows、macOS、Linux、の上で動いてきたわけですが、ウェブ上で動くソフトで仕事の大半がこなせるようになってくると、従来のOSの意味は薄れてくるからです。現実、Chromeベースのコンピュータが売られ始めてますね。未だ商業的に成功しているとは言えないと思いますが、近い将来、ChromeのようなWebベースで動くコンピュータが幅を利かせることになるでしょう。

===

書いているうちに色々話題が広がることがわかりました。

今回はここまで

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