Zanmemo

by esehara

RSS

New Memo

いい言語が必ずしも好きな言語であるとは限らない


考えてみれば、前提として「いい言語」が「好きな言語」みたいな風潮があるけれども、決してそういうことでない感じもする。

好きな言語

良い言語


一つの仮説としては、良い言語と思わせる部分としては一貫性があるということに尽きると思う。例えばRubyは基本的にはオブジェクト指向を崩そうとしない部分がある。それは同じようなスクリプト言語であるところのPythonと比較すればわかりやすい。Pythonの場合、どうしても突貫的なオブジェクト指向という側面は避けられない。


場合によっては、一貫性があることと簡潔であるかということはまた別問題のような気がする。本来、一貫性があるということは、ルールができるだけ一意に決まるため、簡潔になる側面がある筈なのだが、どうもそうではない部分も多い気がする。


Random Pickup

必要にならないと、スキルを磨かないという話について

Rails 4 が CoffeeScriptを採用しているため、なんとなーく食わず嫌いしていたCoffeeScriptを書いていたりする。

こういうのを考えると、人間は必要なときにしかスキルを磨かないというのを実感しつつあり、laisoが就活日記の中で書いていた以下の文章が実感として身に染みるのであった。納豆を始めて食べた人も、きっと似たようなものだったと思う。

「死亡リスクが高まるとプログラミングが身に付く」


参加者前提が、大規模になると必然的に「消費者」と「運営者」に分かれてしまうという現象

厳密に考えないと正直難しいかもしれないけれど、例えばコミックマーケットにしろ、あるいはインターネットにしろ、オープンソースにしろ、あと身じかなところだとKickStarterがある。

その当初は単純なる「善意の参加者」を中心とした相互運用的なものであるように感じるのだけれど、だんだんとそれらが大規模化するにしたがって「消費者」と「運用者」に分かれてしまうのは何だろうなーと考えている。

たぶん、この現象を一番明確に現しやすいのはフリーライダーというのが、言葉としては正しい気がするんだが、フリーライダーというと問題の焦点がズレていて、いわば参加者としてのコミットレイアーが違う、といったほうが正しいだろう。


機能が慎ましくあると使いたくなる

たぶん、「機能があればいい」ということではないんだろうけど、一方で、例えばMarkdownがリアルタイムでrenderされるとつい嬉しくなってこんなのとかこんなの修飾として使いたくなる。つまり、つつましく機能があればいい。

例えばリモコンのボタンは慎ましくなく、騒がしい。ボタンは出っ張っているので主張が激しいことを考えると、機能の慎ましさということを考えたほうがいいのかもしれない。慎ましくないというのは、いわゆる自分が何か出来るということを全面に主張することで、そうでないほうが良い。


未来予測について

1999年に発行されたと思わしき本である『ユーザビリティエンジニアリング言論』を読んでいて、面白いなと思ったのは、その中に「将来的にはコンピューターはこういう風になるだろう」と予言した部分だ。そこには、プログラミング言語は「ビジュアル言語」になると言われているけれど、そういう風にはならなかった。

未来予測を振り返るのが好きなのは、自分が重箱の隅をいじりたくなるような、「いじわるな性格」であることを認めつつも、ある部分において、僕達がこうなるだろうという「直感性」の問題と、実際に必要であったもののズレを如実に感じるからだ。「ビジュアル言語になる」という部分にしても、恐らく直感的にはそうなるのが面白いんだろうなと思うのだけれど、しかし、プログラムを組むということと、図形を描くということには、確かなズレがある。

例えば当時の「ヴァーチャルリアリティ」の本を見て、例えばチャットアプリにおける仮想空間であったりとか、あるいはヴァーチャル美術館とか、そういうアイデアが沢山出てきていて、そういう「身体性」が重視されるだろう、と言われていたけれど、現状として支配し続けているのは、どちらかといえば「テキストベース」な、もう少し言うと「身体」とは別の離れたものであることは間違いない。

そのズレはとても面白くて、今でも自分の課題の一部である。

蛇足

ちょっとだけ補足すると、"Oculus Rift"は割と身体性というか「拡張現実」に近いものではないか、とは思えるんだけど、では実際のところどうなのか、みたいなところに関しては自信が無い感じだ。


むき出しのテクノロジーと隠蔽されたテクノロジーについて考えてみる


なんでそういう区分をするのかというと、下の記事を見たからだ。

一ヶ月、Rubyを本気で独学した結果(文系向け) - 30ruby記」を読んでいて、自分のスタンスと似ているところがあるなあと思いつつも、何か違うなあという違和感も同時にあってなかなか面白いなあと思いつつある。それは多分、僕が二年、三年目くらいにプログラミングを仕事にしてきた部分での差異でもあって、その差異が邪魔しているんだろうなと思ったりした。

同意する部分

似ている部分としては、割とプログラミングをやろうとしたきっかけというのが、「あ、これからはプログラミングだな」という、割とそういうざっくりとした思いだったというのがあって、そういう意味では、「これが出来れば、現代社会における一割くらいのモノは理解できるのではないか」みたいな、そういうスタンスだったのは否定は出来ないし、そういうスタンスとして始めた自分としては、全体の違和感というのは、僕にとっては「なるほどな」と思ったりする。

あともう一つとしては、自分は学んだりすると、妙にスレて、斜め上からの視点になったりするけれど、本当はそういう風に構えるのはよくなくて、本当はこれくらい「ああ、凄い……凄いぞ……」と思えるスタンスというのは重要だなあ、と思ったりもする。

違和感の部分

たぶんこの熱量の違いみたいなものは、別にRubyじゃなくてもよく、極端なことを言えば、HSPとか、それこそRPGツクールでもいいと思う部分にある気がしている。これは馬鹿にしているかもしれないけれど、でも僕はRPGツクールは、現状で最も成功したゲームフレームワークだと思っている。そして、RPGツクールで作ったゲームを、少なくともインディーズでお小遣いを稼ぐ程度のものとして出している人たちも知っている。

で、それをテクノロジーと考えるか否かというのは、ぶっちゃけどうでもよい。ただ、「これを使えば、簡単に製品が作れるぜ~」という意味での、「魔法を手にした自分への万能感」と、それを「テクノロジーを学べ、お前ら」という部分での差異というのは、割と違っていて、もちろんある種のTechというのが、気軽にモノを作れる為にあることはあるんだけど、ただ、それを「利用すること」と、「その原理を利用すること」というのは、ぶっちゃげ違う部分にあるよなあ、とかそういうところがモニョる部分かもしれない。


「できない人」と技術について

ある技術において、「できない人」が「できるようになる」ということが目指されているのは間違いないと思う一方で、では現実的に「できない人」のために、何かしようとすると、それを貪欲に吸収するのは「できる人」になるという矛盾がありそう。この考え方自体は非常にナイーヴなものではあるし、「できる人」がよりできるようになるということによって、潜在的に「できなかった人」も底上げされるという側面があることは否定できない。

たぶん、教育的には「できない人」という意味はあまり重要ではなくて、如何にしてモチベーションを上げるのか、ということのほうが問題であることは推測できて、もちろんモチベーションがあればなんとかなるというのは、それはそれで嘘だけれど、しかしそもそもモチベーションが無いところに、学習を持ち込んだりしても意味がない。

とすると、本来ならばそこに「モチベーション」という意味があるわけで、そういう意味で「ゲーミニフィケーション」というのがあるような気がするんだけど(ゲームは「モチベーションを如何にして煽るか」という観点が含まれている)、その辺についてはどういう風に考えられているのか、多少なりとも気になる次第だ。