今日はかずひこくんが講師。安心して見てられる。 本人の印象は「ふぇみにん日記」を参照のこと。
昨日も書いたけど、今回は本当の初心者という人はいなくて、 「Rubyのことは知らないけどプログラミングは結構分かる」人の集まりなので、 教えやすい。が、ギークというほどではないので、あんまり難しい話をしてもなあ。 我々も教えるプロではないし、なかなか難しいところはある。
午前中は座学というか、クラスの一通りの説明を行い、 午後は実習主体。例題の選定が難しい。
夕方まで教え切ったかずひこくんは昨日の私同様非常に疲れていた。 そうなんだよ、くたびれるんだよ。
今度は今週末浜田で「体験コース」が開かれる。 定員(12名)近くまで応募があったようだ。
Logoといえば分からないことがある。
たとえば、
reverse butfirst :a
は
(reverse (butfirst :a))
と解釈され(reverse, butfirstは1引数の関数)
(reverse butfirst :a)
とは解釈されない。一方、
fput first :a butfirst :b
は
(fput (first :a) (butfirst :b))
と解釈される(first, butfirstは1引数、fputは2引数)。ということは、アレか、 構文解釈のときに関数定義から引数の数を引っ張ってきてるってことか?
それはどうなんだろう。関数を再定義しちゃう(もちろんLogoでは許されている)と プログラムの解釈が変わっちゃうってことだよね。たしか、Rebolもそんな感じだったと思うけど。
Logoといえば「初心者に優しい」というのが宣伝文句だったような気がするけど、 実際には「優しい」のはインタラクティブな環境(とタートルグラフィックス)であって、 言語仕様はちっとも優しくないのね。
言語にとっつきやすいかどうかは、「簡単にいろいろ試すことができるか」で決まり、 言語仕様では決まらない。どんな(良くない)言語でも、慣れ親しむことができれば(忠実な)ユーザが獲得できる。
なんだか言語仕様にこだわり続ける私のような人間にはがっかりするような結論だが、 どうやら世の中はそういうものらしい。とはいえ、逆に考えればそういう条件を満たしていれば、 「良い(言語仕様の)言語」であっても構わないわけだから、 言語屋にも希望はあるのだろうか。
いや、待てよ。
世の中にはいろいろ悪口を言われながらも使われ続けている言語はたくさんある。 というか、広まっている言語は必ずといって悪口を言われている。 逆にさほど嫌われてはいない言語はあまり広まっていない言語に目立つ。
ということは、実は「好ききらいがはっきりするような言語の方が広まる」という仮説は成り立たないだろうか。 広まることを第一に考えると、総花的に八方美人な言語よりも少々「悪い言語」の方が見込みがあると。 それは言語オタクにとっては嬉しくない世界観だな。
「どんな言語でも広まれば悪口を言われるものだ」という考え方もある。 むしろ、こっちであって欲しいと願う、心から。
LogoってZ-80でも動いてましたよね.その頃のリソースだったら,これくらいの使いにくさは仕方がないですよね.我田引水で申し訳ないですが,今のリソースで子供向け言語を設計し直したらViscuitになるんじゃないでしょうか.
引数の数を引っ張ってくるのは、構文解釈のときじゃなくて実行時じゃないでしょうか。
Dolittleだとどうなっているのかな。前に聞いたときは「Logoだと子供は言われたとおり入力して遊ぶだけで、プログラムを自分で作るまで行かない。その点Dolittleは…」というような話でした。
慣れというものがあるので,まずそれを元に悪口が発生。慣れは慣れでしかなく,仕組みとしてよくできているかどうかとは別の話だけど,混同する人は多いですね。
広まれば,それを使う人に,ものわかりがいい人も悪い人も含まれてくるので,当然に悪口も目立つようになりますね。
あとは,多少出来が悪いほうが批判の余地があって,その分将来的な発展が見込めるってことでしょうか。人間,だらだらしたいしいい加減なもんですから,ポリティックなものより突っ込みどころがあるほうが良くも悪くも好まれるし,注目浴びればどこからか「それを改善しよう」という人も生まれてくるもんですからねぇ。
失礼ながら・・・スクリプト言語は「とっつきにくい」のではないでしょうか? 何故なら実行するまでtypoすら教えてくれないのですから・・・コンパイルで文法チェックをしてくれる言語の方がとっつきやすいのではないでしょうか?
その考えは理解できます。
が、実際は速いインタラクションのほうが好まれるようです。
おそらくは初心者はでバッグが大変なほど複雑なプログラムを作らないので、コンパイルによるチェックの嬉しさを享受することがそれほど多くないせいではないかと思います。