><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
説明難しいけど、当時のBASICのコードは今どきのLLなコードみたいなものでは無いし(超説明難しい><;)、ものすごく図を多用してどういうモデルで物事を考えるのかを教える形態のが多かったかも><数ページでひとつの実用的な題材なソフトウェアのコードが書かれていて、どうしてそういう風にするのか? を解説してる感じ><
モデルがあったとして、それを適切な (意図した、あるいは目的に合致した) 抽象レベルで表現できるというところが特に初学者向けの道具として良し悪しを決める性質だと思っていて、 BASIC はその性質がなさすぎる
むしろ「少ないプリミティブな道具であらゆる概念を表現しようと試みる」というのは難読言語や極端な低レイヤーのアクロバット的なやり方であって、プログラミング初学者が注目すべき範囲かは大いに疑問です
だから、それって小学校低学年の子が独学で学べる事が一般的であるほどの事なの?>< 低学年の子が独学でBASICでプログラミングは、少なくとも漢字まともに読めない子向けの入門書が山ほど存在した程度には一般的な事だったんだよ?><
たとえばλ計算とかを考えてほしいんですが、あれってプログラムというより算術式の拡張なんですよ。 BASIC やその他言語みたいな手続き型プログラミングを一切知らずとも、さんすう・中高数学の自然な拡張として (チューリング完全な) プログラムという概念を生やすことができる。正直言語のチョイスなんてどうでもよくて、現実や情報に規則やモデルを見出して、それを表現したくなって、プログラミングという手段を獲得する、そこまでの思考過程を自分の中に得られるかというところが一番重要
型システムも、不十分とはいえ「文字列と数は違うものなんだよ! 文字列は名前の後ろに$がついてる物に入れようね!!!」という極々極々初歩の「たしかに文字と数は別々の扱われ方されないとまずいね><」って点だけはBASICの子供向けの入門書でも教えてた><
行列を学ぶ前でも当たり前のように多次元配列を使ってプログラミングしてたし、むしろ「行列ってなに? 配列変数の事?」みたいな感じかも><
BASICでゲーム作れても平仮名習得程度はその通りだけど、BASICで独学でプログラミングするのが当たり前だった頃は、抽象化して物事を考えることとか『ほんとは数学だけどそんなこと知らないけど必要なのでいま作ってる身につけるプログラミング特化の数学的概念』を独学するのはなにも珍しい事じゃなかったかも><教えてくれる人なんていなかったし><
文脈を戻すと、「十分な自然言語の能力も持たぬ子供に抽象化や記号的思考を教えるのはあまりに無謀だし、そこを誤魔化しても得るものがあまりなさそう」という話でした
BASIC が理解できて当然の水準のその上に、めくるめく抽象化の世界が待っているわけで。たとえばハーバードアーキテクチャのサブセットみたいな仮想機械の動作を追えるだけでプログラミング教育と称するくらいなら、数学と科学に力入れた方が1024倍マシ
もっと別の言い方をするなら、 BASIC なんて平仮名が書けるレベルの知識であって、それは「日本語で考える」とか「日本語を理解できる」には到底及ばないレベルの基礎の基礎でしかない。平仮名と数字だけが読める小学生がいたとして、契約書や論文を平仮名で書き下されたからといって理解できるわけではないようなもので。
もう打ち上げライブ全然見てない><
ものすごくあちこちの打ち上げライブ見まくったオレンジ的にはJAXAの打ち上げライブってFMラジオ番組かよって感じで酷い上に、英語圏へも映像と音声を一部提供する国際映像の面もあるのに、それでも日本語でお手紙紹介とかするから酷いイメージ><アリアンスペースを見習うべき><アリアンは、ちゃんと情報を伝えることをとても重視してるし、紹介ビデオを流す時でもテレメトリ等を出し続けるとか、そういう工夫をしてるし、フランス語と英語バラバラのチャンネルで流してる><
JAXAの中継のチャット欄、ちょっと荒れてるけど、JAXAは初心者向け、NASAは中級者以上向けって感じかな。
「こうのとり」9号機/H-IIBロケット9号機打上げライブ中継 https://youtu.be/3lBZVNwK6ao
寝ないといけないんだけど寝れないのでこれ見てる。
今さら行番号付きBASICを使えとは言っていない><;入門書がよくないし、対象の言語の選定もPythonやらRubyやらを選択するのは間違いなのではって気がしてる><(子供向けのRubyの入門書を実際には読んでいないのでフェアではない意見かもだけど(なので"気がしてる"><;))
BASIC は石炭みたいなもので、文明をブートストラップするには有用かもしれないけどいつまでも使うべきものではないし、いつまでも使って良いと勘違いさせるようなこともすべきでない
チューリング完全でさえあれば BASIC でどのようなプログラムも書けるというのは真実だし、同時に「BASIC 程度では大抵『良質な』プログラムは書けない」こともまた事実なので、我々は「子供にでもできるショボいおもちゃ」と「相応の基礎が必要だが良質な道具」のどちらかを選ぶ必要がある
その点『のみ』で見ると、1990年代以降に登場したいわゆるLLな言語は、1980年代の行番号つきBASICにすら劣ると言えるかも><なぜならば古い行番号付きBASICは、数学を学ぶ前の子供に独学でプログラミングを習得させる事だけは成功していたから><そこらのLLな言語のソースコード、小学校低学年の子が読みとけるんだろうか?><(簡潔さを重視しすぎて省略しすぎな言語仕様にしたら初学者が読みとけるわけ無いだろって言いたい><)
環境自体が変わってしまったからアレだけど、1990年代初頭くらいまでは『プログラミングは小学校低学年でも独学で習得できるもの』であったし、そこから30年くらい経った今、教える側の先生が「プログラミングなんてやったこと無い」って、『昔は小学生ですら出来たことが出来なくなった』という退化だよね><若いやつは馬鹿って事じゃなく、1990年代半ばから、低年齢向けのプログラミング入門環境が疎かにされて「数学を学ばせてからじゃなきゃプログラミングを教えるなんて無理」という『『誤解』』(断言)までがついに広がってしまったって事かも><
思考の /dev/null