新しいものを表示
orange さんがブースト

表象と切り離したプログラミングの本質、ってのがあったとしても、人間が書くプログラミングでは表象もめちゃ重要だよなー。

Rubyの「驚き最小の法則」とか、Rustが強調するergonomics とかは、どっちも表象レベルで人間にとっての扱いやすさを目的にしてる

スレッドを表示

ビジュアルプログラミング環境は、この論理的制約にプログラミングの基礎の部分、例えば分岐やら繰り返しやらと言うものを対応させて学ばせる事が出来る環境と言えるかも><
(繰り返しになるけど、だからといって必ずそれで教えろとは言ってない><)

(全然説明しきれてないけど、とりあえずショートカットすると><;)
ビジュアルプログラミング環境は、この論理的制約を持ち込みやすいという特徴があるかも>< ていうかGUIというものがそうかも><(GUIは論理的制約を活用するデザインであるとも言えるかも><)

ランプが横に10個並んでいて、スイッチが例えば3x3で9個並んでいたら、ランプとスイッチの対応に気づける人はほぼ居ないかも>< それは論理的制約が無い状況と言えるかも><

ランプが横に10個並んでいて、ランプそれぞれの手前にひとつづつシーソースイッチがあったとして、一番左のスイッチは、一番左のランプに対応するであろう みたいなのも論理的制約かも><
その上で、各シーソースイッチのうち、奥側に倒されているものに近いランプが点灯し、手前に倒されているものは消灯していたら、奥が点灯であり手前が消灯であると多くの人が推定するかも><
全てのランプが消灯し、全てのスイッチが奥になっていたら、点灯は手前であると解釈する人の方が多いかも><
(シーソースイッチを知らない文化圏の人であっても、1:1でスイッチがある事の法則性に気づけば、「それをどうにかすれば変化する」と、対応に気づける程度の多くの文化圏であればたぶん気づけるかも?><)

例えば、さっきの電池ボックスの話で、単3電池だったとして、電池ボックスが電池の形状をしていて、さらには電池の形状のラベルが貼ってあり、かつ、それに気づく事が出来た人の多くは、電池を正しい向きで取り付ける事が出来るかも><
これは文化的制約とは別の論理的制約と言う(用語がある)もの><

元の話的に一番重要な、論理的な制約の話全然書いて無い><;

この物理的制約はGUIでも応用されてたりもするし、ビジュアルプログラミング環境でも応用されてたりするかも><

平たい板であれば引くことが出来ない「ように見える」は文化的制約であり学習であると言えるけど、それだけじゃなく「引くことが出来ない」そのものが物理的制約になっている事が重要かも><
物理的制約は、究極には操作する者が理解せず短期的な意味でそうする意図を持たなくても、結果的に大きな目標を達成できるという使い方もされている><
例えば建物の避難設備がその代表例かも><

orange さんがブースト

それ直感じゃなくて「以前見たもの / 使ったものと同じ動き方をする」ということでしかない.直感的が慣用的の言い換えでしかない,というのはそういう意味.

命令数が少ないCPU上では複雑なソフトウェアは実行できないみたいな意味不明な話になっちゃう><(命令数が少なければ多くの場合より複雑になるだろうけど、その複雑とその前の複雑は違うものを指してる><)

その文脈上の複雑云々の本質と、プログラミングの初学の人に教える基礎(から各言語の作った人が勝手に作った部分をなるべく排除した)という文脈での複雑性って別物かも><
それ、「デジタル回路は複雑である」くらいに雑な意味での複雑になっちゃうかも><
(全然向いてない)初学者向けビジュアルなプログラミング環境で大規模なソフトウェアを作ろうとしても複雑になるのは当たり前みたいな・・・そういう事じゃなく><

orange さんがブースト

ソフトウェアの複雑性は本質的な性質であって偶有的なものではない: プログラマの思索 - app.m-cocolog.jp/t/typecast/50

> ソフトウェアの複雑性は本質的な性質であって偶有的なものではない。
> したがって、複雑性を取り去ったソフトウェアの実体の記述は、しばしばその本質も取り去ることになる。

スレッドを表示

もちろん、デザインとしては、どっち向きでつっこんでもおkにする方が優しいかも><(その上で、文化的な制約により「どっちの向きなのこれ?><;」って混乱を避けるためだけに、一方を指示するラベルを貼るのもありかも)

単3乾電池の電池ボックスも多くの場合物理的制約による直感的・・・かつその失敗によるエラーを起こさせたり、それを減らすために図示によって、正しい向きでセットさせるデザインであることが多いかも><
電池の+極の突起を使って、逆には填まらないようにしたり、ちょっと微妙なのでも逆につっこんだ場合に電極に触れないようにしたり><
電池ボックスそのものがビジュアルに逆方向の取り付けを防止する形状が分かりにくい時には、取り付け部の底に、向きがわかるように図があったりする><
これは、電池をそこに取り付ける必要があるとだけわかっていれば、それ以上の知識がなくとも物理的制約により正しく取り付けられる可能性があると言える><
これはある程度直感的なデザインと言えるかも><

『直感的』の多くが文化的な制約であることも多いけど、それだけじゃなく、例えば物理的制約も『直感的』とされることも多いかも>< 例えば掴めるとっては、引くことも押すこともできてしまう>< 一方で、平たい板であれば少なくとも引くことはできない><
引くことができない物に引けるかのようなデザインをするのは『直感的』では無いと言えるかも><

orange さんがブースト

「直観的」なる無意味なキーワード。人間には「直観的」にそれをする能力が備わっているとおもうてか。

「直観的」というのは「慣用的」の言い換えにすぎない。

誰のためのデザイン? 増補・改訂版の第3章がだいたいその話だけど、長すぎてどこを引用すればいいのかわからない><;

ノーマンの本持ってくる?><;

オレンジのさっきの文脈上のそれは、その言語の作者が勝手に決めた部分以外みたいな意味><
(もちろんScratchとかにもそれらのデザイナが勝手に決めただけの部分もあるけど、ビジュアルだとより切り離しやすい><(この部分を説明しようとすると、ノーマンの本から長文引用しないといけなくなる><;))

古いものを表示
:realtek:

思考の /dev/null