Home日記コラム書評HintsLinks自己紹介
 

フィンローダのあっぱれご意見番 第152回「間をあける」

← 前のをみる | 「フィンローダのあっぱれご意見番」一覧 | 次のをみる →

Ameba Blog という、いろいろな意味で面白いブログサービスがあるのだが、 最初の1~2ヶ月でブワーッと盛りあがって、 ランキングもトップ10に入るような活発な内容で、 しかもそれが急に「もう止めます」みたいに終わってしまうので、 どうも気になった。 ブログの寿命が平均3週間だとか、諸説はあるみたいだが、 開いたけど書くものがないという場合は分かるけど、 毎日のように更新して新しいコンテンツを追加していたブログが唐突に閉鎖してしまうのが、どうも分からない。

 

※ とりあえず、HTML valid にしてくれとまでは言わないから、 A タグを閉じる程度のレベルにはして欲しい。

掲示板にしてもそうだが、集中して書いているうちはいいが、 途中でどうも続けられなくなって、 そこでペースダウンするというのではなく、もう疲れたよ、みたいな状況になってしまうのかもしれない。 燃え尽きてしまうのだろうか? だったら、最初からだらだらと書けば続けられそうなものだが、 実際に自分でも書いてみると、 そう適当に書けないものなのである。 ある時期は、ものすごく書きたいという意欲があったりするのが、 ある日いきなりガクっとモチベーションが下がって、何もしたくない、 みたいな気分になってしまうことがあるのだ。

  

ブログにはなぜかカレンダーが表示されていることが多い。 このカレンダーが全部埋まってくると、 一日あけることにどうも抵抗感が生まれるようで、 ゴミでもいいから毎日書いてしまう、というような状況になったりする。 この状態でうっかり一日空いてしまうと、後はどうでもいいやという感じで、 ずるずると投稿が閑散化してしまう。

 

※ 幸い、2005年になってから毎日カレンダーを埋めることに成功しているブログが1つある。

ある程度最初から休み休みしながら、 テキトーに続ける、というのが長続きするコツかもしれないのだが、 逆に、ブログが長続きしたらどうだというのだ、という話もある。 短期集中で面白いことを書いて、それで散ってしまう、というのも一つのやり方なのだ。 そういう考え方をすれば、2か月で終わり、 というようなやり方も、今風のスタイルの一つなのかもしれない。

§

ふ「前回、ゲシュタルト心理学の話を書いた訳ですが、アレを知っていると、スタイルの話が割と合理的に解決できることがあります。

U「例えばどんなのですか?

ふ「空白の使い方です。 ありがちな例として、List 1 のような、空白を極端に避けるとか、使いたがる人とかいますが。

---- List 1 (空白の使い方が極端な例) ----

    if(p==null)
        return; // 極端に空白がない

    if ( q == null )
        return; // とにかく空白を入れる

U「どっちがいいのでしょう?

ふ「これはどっちも面白くないですよ。 なぜなら、ブロックを一まとめとして認識する、という法則が活かされていません。

U「普通はどう書くのでしょうか?

ふ「List 2 みたいな感じでしょうか。普通というのは語弊があるかもしれませんが。

---- List 2 (空白を普通に使った例) ----

    if (p == null)
        return;

U「List 3 のような書き方を見たことがありますが?

---- List 3 (括弧の内側の空白) ----

    if ( p==null )
        return;

ふ「List 3 はどういうルールで空白を置いたのでしょうか?

U「括弧の中にある式を、意味的に一つの塊と見立てたのではないでしょうか?

ふ「あるいは、括弧の両側に空白を置く、というつもりかもしれません。 とりあえず、括弧の内側の空白はなくてもいいんじゃないですか。

U「それはなぜ?

ふ「括弧の中が一つの塊である、という主張にもなりますし、 括弧というのは、意味的にその内側と連結した文字列として解釈される危険が殆どない。 極論をいいますと、見慣れているので大丈夫ではないかと。 それに、一般に英文を書くときに、括弧の内側には基本的に空白は置かないのです。

U「これって英文でしたか?

ふ「いや、英文でないといえばそうなんですが、アルファベットの集団を一つの記号として扱うあたりなんかは、英文とみなしてもいいかなと。 例えば変数名とか、定数のマクロですね。

U「この例でいえば、null ですか?

ふ「そう、“p==null”と書いてしまうと、これが一つの塊になってしまうのですが、 “p == null”のように空白を置くと、 null という文字列が一つの塊として認識されるので、 瞬時に理解するのに役立つのです。

U「日本語的な発想とはちょっと異なりますね。

ふ「日本語の場合、句読点の区切りであるとか、 “漢字+かな”のまとまりが一つの塊として認識されるとか、 そういうロジックがありますが、単語を空白で区切るという概念がないですからね。 ただ、括弧の解釈の仕方は共通かもしれません。

U「括弧の中を一まとめとして考える、ということですね。

ふ「括弧ではなく、閉じた線で囲む、というような感じで考えると分かりやすいですね。 閉じた線だと大変なので、その一部だけで表現するようにして、 括弧という記法が生まれた、というのはどうでしょうか?

U「そのような説があるのですか?

ふ「いやなに、今思いついただけです。

§

ふ「一つ頭に入れておいて欲しいのは、 塊の数が多くなればなるほど、全体としては解釈が難しくなる、ということです。

U「単純にいえば、長くなれば難しい、ということですね。

ふ「まあそういうことですが、塊にして解釈する場合は、塊の数も問題になるのです。 頭の中にスタックかキューみたいなのがあって、 塊が出現するごとに一時的に記憶できるが、塊が多すぎると、 スタックがあふれてしまう、というようなモデルで考えると分かりやすいでしょう。

U「俗に言われる、7個まで覚えることができる、というアレですね。

ふ「そうです。 ただ、7個というのは個人差があるとか、状況によって多少の幅がある、というのが定説のようですが。 いずれにしても、あまり多すぎないという条件を守っている限りは、塊に分けることを考えた方が、理解しやすい表現にできる可能性があります。例えば、こういう文を考えてみましょう。わざとらしいですが。

 公表権とは公表されていない著作物を公表する権利である。

 この文章を、

 公表権とは、公表されていない著作物を公表する権利である。

このように区切ることで、2つのブロックに分けます。 この方が、意味としては理解しやすくなっていませんか?

U「何となく、見やすくなったような気はしますね。

ふ「では、これはどうですか。

 公表権とは、公表されていない、著作物を、公表する、権利である。

U「かえって分かりにくくなりますね。 確かにそういう気がしますが、なぜなのでしょう?

ふ「もともと、文章というのは、全体が絡み合って意味を持っていますが、 その一部分が他の部分と関連する度合いは、それぞれ異なっています。 関連度の強い、より密接なまとまりを一つの塊にしておくことで、情報を受け取る側は、パッと見たときに、それぞれの塊で意味を考えることができて、よりストレスなく理解できる、という仕組みになっているわけです。

U「つまり、ばらばらにしすぎると、どことどこが強く関連しているのか、パッと見ただけでは分からないので、意味まで考えながら分けないといけない、という所で理解しにくい表現になってしまうのですね。

ふ「ということで、空白を入れられるだけ惜しみなく入れる、というポリシーは、読者の理解という点では逆効果になったりするのです。 もちろん、強く関連している箇所をわざと空白で区切ったりすると、それが誤解の原因となるので、余計分かりにくくなってしまいます。 例えば、こんな区切り方をしては訳が分からなくなります。

 公表権とは公表されて、いない著作物を公表する権利である。

U「間違った区切り方をするよりは、区切ってない方がまだマシなのですね。

ふ「同じことが、プログラムを書くときにも言えるのです。

§

U「ところで、プログラムを書く場合、どの程度の関連性があれば空白を置かない、というような慣習はあるのですか?

ふ「文法的に、どこで空白を置いても構わない、というような規則になっていると、後はセンスの問題ということになるので、一概にこれと言った慣習はないかもしれません。 ただ、コーディング規則のようなものは多数あるので、ある程度の共通点は拾うことができます。 例えば、C言語系だと「->」や「.」という演算子は、両側に空白を置かない、というのは支持する人が多いでしょう。

U「p->name みたいな感じですね。

ふ「意味的に、ポインタが指しているものという所まで含めて一つの何かを意味すると考えるのではないでしょうか。

U「演算子の優先順位も関係ありそうですね。

ふ「優先順位が高いものほど密接な関係だということで、空白を置かないでも違和感がないのでしょう。 単項演算子も、あまり空白は置かない。 i++ とは書いても、i ++ のようには書かないです。 代入演算子程度になると、両側に空白を置く場合が多いですね。

U「配列とかも同じですね。

ふ「そうですね、a[i] = 0; というように書いた場合、文字列の塊としては、a[i]、=、0; の3個のモノとして認識することになります。 これを空白をあけて、a[ i ] = 0; と書くと、どうなるでしょうか?

U「a[、i、]、=、0; の5個になるのでしょうか?

ふ「単純に考えるとそうですね。 a[i] が、a[、i、]、の3つの塊に分離することで、この一連の表現が意味としての繋がりを弱めてしまうことになります。 後は、それが吉と出るか凶と出るかを考えればよいのです。

U「逆に、これは分けるだろ、というのはありますか?

ふ「それがあまり思いつかないんですよね、 というのは、空白を入れない人は実際とことん入れないので。 文法的に許されるなら空白は出てこない。 少し違う話になりますが、1行が長すぎるときに、&&や||のところで改行することがあります。 行を変えるというのは、空白で区切るよりも大きな意味で区切ったことになるので、 改行はできるだけ関連が弱い所で使う必要があるのです。

  

(C MAGAZINE 2005年2月号掲載)
内容は雑誌に掲載されたものと異なることがあります。

修正情報:
2006-03-01 裏ページに転載。

(C) Phinloda 2005-2006, All rights reserved.