個人的に Python にしてほしいって思ったのですが、TypeScript が採用されました。

まず第一に Microsoft は TypeScript を推したいだろうし、 また第二に、わざわざブラウザに Python の処理系実装しないですよね。 内心こんな気持ちですが。

f:id:domodomodomo:20200110033437j:plain

Excel では、二次元のデータを主に扱っていました。 当たり前と言えば、当たり前ですが笑 いまは知らないのですが少なくとも 4, 5 年前の VBA は二次元配列を扱うのが辛かったです。 そのため、シートのセルを二次元配列に見立てて使ったりもしていました。

JavaScript でコードを書いていると、 "普通の" 人に見やすいようにデータを加工する必要があります。 その分、データをこねくり回さないといけません。 JavaScript は、結構カジュアルにかける印象があります。 「木構造」の JSON の操作は適しているような気がします。

反面 Python は、結構お堅い印象があります。 JSON をこねくり回すような作業を Python でやろうとすると、 大きな違いはないかもしれませんが JavaScript に比べると結構辛いかなと思ったり、思わなかったりします。

過去にその JSON を捏ねくり回す作業は Ruby が担っていたのかなと思います。 だからああいった自由な文法が、比較的好意的に評価されていたのかなと思います。

すでに決まり切ったことは Rails でやって、 データをユーザに合わせて操作するのは文法が自由な Ruby が行うという具合で役割分担をしていたのかなと思います。

いまは、データを詳細に操作する作業は JavaScript が担い、 反面、データベースからざっくりデータを取り出す作業は Go の様な超お堅い言語が担当するという風になっている気がします。 SQL なので「二次元配列」です。役割分担がすごいきっちりしているなという印象です。

JavaScript の役割が増えた分、従来の jQuery を使う様な「手続き型」の書き方では、 辛くなりフレームワークが登場する様になりました。 React にしても Vue にしても、一言でいえば DOM に対する「オブジェクト指向」を実装しています。 DOM をパーツに分けて、各パーツがそれぞれメソッドを持っています。

ウェブ制作では jQuery は使われ続けるのだろうと思います。 API がとても綺麗にまとまっている気がします。 あとは Twitter で見ていると、ウェブ制作系の方はフレームワークはいらんやろ、みたいな空気を感じたので。

話を Excel に戻すと、扱うデータは「二次元配列」が主なのでお堅い Python にしてほしかったな.. と笑 JavaScript に比べれば Python はお堅い気がします。 例えば tuple, range と言った組込型, def といった予約語は数学から輸入されています。

そう言ったお固さと動的言語で書けるカジュアルさのバランスが、 機械学習系の人たちに受け入れてももらえた、 数ある要因のうちのそんなに大きくはないひとつなのかなと思ったりもします。

お堅いのになんで動的型付なのか謎でした。 自分は VBA を書くときでさえ Option Explicit を指定して絶対に型をつけていました。 コードを書くことが当時は、あるいは今も不慣れだからかもしれませんが。

動的型付けである理由は、恐らくは、このあたりにあるのかなと思ったりもします。 「シェルスクリプト」よりもカジュアルに書ける「スクリプト言語」がほしかったからなのかなと思ったりもしています。

私は CWI で Amoeba 分散オペレーティングシステムのグループで働いていました。 Amoebaシステムコールインタフェースには Bourne シェルからアクセスしにくかったので、 C プログラムや Bourne シェルスクリプトを書くよりも良いシステム管理の方法が必要でした。 Amoeba のエラー処理の経験から、プログラミング言語の機能としての例外の重要さを強く意識するようになりました。 ABC のような構文と Amoeba のようなシステムコールを合わせ持ったスクリプト言語が必要だろうと思いつきました。
そもそも Python は何故創られたのですか? - Python よくある質問