«前の日記(2004-01-31) 最新 次の日記(2004-02-02)» 編集

Matzにっき


2004-02-01 [長年日記]

_ [教会]松江

断食安息日。ずっとカジュアルな格好を好んでいた息子は、 今週から教会にスーツを着ていくことを決心した。 馬子にも衣装とはこのことだ。みんな感心していた。

コンピュータ業界で悩んでいる人の相談に乗る。 というか、ただ単に話を聞いてあげただけだけど。 ユーザ部門と外注との間の板挟みだそうだ。 身につまされる話だ。 いろいろ話をしたが、どの程度お役に立てたどうかはわからない。

_ [OSS]オープンソース普及には利用者の高い志が必要

話題のOSSAJの報道。

言ってることは分かるんだけど、次のステップが聞きたいんだよねえ。 「ベンダーも含めたOSS利用者が利用情報を共有する」とは具体的になにかとか、 「利用者の高い志」とは具体的になんのことかとか、 「若干の仕掛け」とはどんなものを考えているかとか。

まだあまり具体化してなくて、メンバの脳内でイメージが熟成中なのかしら。 それならそれでそう言ってほしい。

_ [Ruby]endのユーザビリティ

本気ですか?

begin-end系の言語は{-}系の言語に比べて、まつもとさんの言葉を借りれば「言語のユーザビリティが低い」と思うのですよ。

  1. まず、生産性。明らかに括弧の方が生産性は高いですね?文字数も短いし、 end を使う方式で短いイテレータを一行にまとめようと思うと';'を補わなきゃいけないのも生産性に負のバイアスを与えてると思います。
  2. 次に理解のしやすさも括弧の方がわかりやすいです。とくに非英語文化圏の人間にとっては「英単語和訳」という作業がない分括弧は理解が簡単。

あと、 ruby の場合だと end に対応する単語が一意に定まらないので、パッと見ただけで対応が分かりづらいと思います。インデントしてあれば分かりますけど、それは括弧でも同じなんだから差っ引いて考えるべきですよね。

私の作った言語のユーザビリティを私の言葉を引用して論じるとはいい度胸だ。(笑)

言語のユーザビリティというのは全体のバランスから決まるわけで、 もっと広い視点に立たなくてはいけない。 近視眼的な視点から考えると 「end」という3文字よりも「}」という1文字の方が入力の手間が少ないと感じたかもしれないが、 実際には

  • ホームポジションに近い3ストロークと遠い2ストローク(シフト+「]」)の差は致命的ではない。
  • さらに「{」が不要であることを考えるとトータルのストロークは少ないではないか(スペース+シフト+「[」とシフト+「]」で5ストローク)。
  • 削除についても行削除ならストロークは同じ。

と明確に不利であるとはいえない。むしろ逆に有利であるかもしれない。

理解しやすさについては、

  • ブロックの終わりが明示されないことに比べれば「end」と「}」の差はわずか。
  • 1行にパックしようとすると識別子と埋没しがちなのは事実だが、むしろ読みにくい構成に反対する圧力となっていると考えることもできる(どうしても1行にまとめたければRubyならブロックには「{ }」が使えるし)
  • セミコロン云々については事実誤認。

であり、有意な差はほとんどないと考える。 予約語に色をつけるなどツールの支援でより便利になるのは明らかだし。

わからなかったのは、mputさんの

個人的には ruby-mode.el が end に対応する予約語をハイライトしてくれるようになったらもっと end 使うかも。

という発言だ。きちんとインデントしていれば、対応する予約語はほぼ明らかだと思うのだが。

さて、ここまでで「endは決してユーザビリティが低くない(「}」に負けない)」ことを示すことができたと思うのだが、 実はRubyのend採用にはさらに別の効果がある。

結果的に他の多くの言語が「end」を避けているので、 Rubyのプログラムを見た時にひと目で「これはRubyのプログラムである」と認識できるのだ。 この効果は意識のスイッチに役立つので、少なくとも私にとっては非常にありがたい。 私はCとRubyを交互に使うのだが、おかげで今どの言語を使っているかで混乱することはない。

これはユーザビリティが相当高いといえるのではないだろうか。

本日のツッコミ(全4件) [ツッコミを入れる]
_ carver (2004-02-02 03:29)

ストローク数ならば"end"はDVORAK配列なら中段のみで済むので(そのうちホームポジションのキーは2つ)、シフトキーを意識する括弧よりも私は好きです。

_ Skirnir (2004-02-02 16:18)

Rubyをほとんど使ったことがない者の戯れ事として聞いて頂ければ幸いなのですが、以前Rubyで書かれたスクリプトをviで開いた時、%でbeginとendの対応が検証できなくて読むのが難しかったということはありました。もっとも、これは言語の性質というよりはエディタの機能の問題だと思っていますが。

_ AC (2004-02-03 03:13)

仕事でこっそり(?)rubyを使ったこともあるJava使いですが、使う頻度が高ければ言語の構文がどうであれ慣れてしまいます。<br>クラス定義とかメソッド定義なんて、名前とか返値は意識しても開始構文とか閉じ構文なんて無意識で書いてしまうか、それなりに賢いエディタならdef hogehoge(value)[Enter]したらendぐらい保管してくれるでしょうし。<br>Rubyの場合は変数に型が無いが故にインスタンスがどう流れていくかを気にする方が、Java慣れしてしまった私からすると大変な気がしますが。<br><br>言語云々より寧ろいわゆるWindowsメモ帳likeなキーストロークで何か作業する方がしんどいと思う今日この頃です<これが本題(笑

_ ゆきち (2004-02-04 09:56)

ゆきちといいます。いまさらのレスで申し訳ありません。<br>「ベンダーも含めたOSS利用者が利用情報を共有する」についてなのですが、個人的に、スラッシュドットとフレッシュミートを足して割る二したような(要するにGnomeのFootnoteみたいな)、開発者による自分のプロダクトの発表の場を設けられたら、と思っています。こうすることで、今、実際に日本でいったいどういうようなプロダクトがあり、どういう開発者がいるのか、というのをアピールできたら、と思っています。企業の人たちがこうした情報サイトを見るかどうかはわかりませんが、少なくとも、情報のポインタとして機能すれば、と思っています。以前から日本のオープンソースは、企業が海外から輸入してきたオープンソースと在野の開発者たちの間に溝ができている、と思っていましたが、こうしたサイトを通して、在野の開発者と、企業が結びつくことが必要だと考えています。そういいつつ、自分に暇がなく、こうしたサイトの運営ができないのですけどね。

お名前:
E-mail:
コメント:
[]

«前の日記(2004-01-31) 最新 次の日記(2004-02-02)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.