ソースコードの見栄えの未来

if文がbegin - endな訳は? - その他(プログラミング・開発) 解決済み| 【OKWAVE】

noname#17016 if 条件 > 0 then
 begin
  条件あり
 end
else
 begin
  それ以外。
 end;

Delphiでは、こうなるのですがなぜ{}を使わないのでしょうか?
{}はコメントになるけど、//でも/* */ でもいいじゃないですか。
それに比べて、begin - end って面倒じゃないですか?

if文がbegin - endな訳は? - その他(プログラミング・開発) 解決済み| 【OKWAVE】

それこそ「なんで」と聞かれると「そうだから」としか答えられない質問ですが、面白い雑文の種には成りそうでもあって、いぢりがいのあるテーマです。

  • それほどまでに C のスタイル = プログラムの標準的なスタイル と見なされているのか!? begin - end の方が由緒正しいのに...
  • シンタックスの歴史を巡りながら言語系統樹をとうとうと語ってみる
  • プログラムの構造を 視覚的に魅せる方法について

などなど。

最後のテーマでは、自然言語的である方が読みやすいと感じる場合 VS 記号的であるほうが見やすいと考える場合、かしら。図形的に カッコ系のほうが 人間の脳が対をパターン認識しやすい、というのを何処かで読んだ気がしますが、これは宗教戦争かな。対のネスト数が増えればあんまり意味無いですし。

構造化プログラミング以降では、プログラムの構造をどのように視覚的に表現するかにウェイトがあって、ブロックの開始/終了の書き方や インデントは重要なキーとなります。
個人的には プログラム構造の視覚化では Python のインデントのみに頼る方法が好きです。

ですが、propellaさんの TileScript を見ちゃうと、そもそも文字の羅列だけで構造の見やすい表現を追求するのは、時代遅れになる日がくるかも、と思ってしまいました。


http://languagegame.org/tmp/jstile/tilescript.html#About-ja

TileScript は、このような一見普通のウェブページで、あちこちに変なボタンのがついている所だけが違います。試しにこの文の左にあるチェックボックスをクリックすると、ソースコードを見る事が出来ます。

(中略)

本題のタイルスクリプトとはこのような物です。

このように javascript の文がハコに入っているだけです。クリックすると実行します。何故ハコに入っているかと言うと、マウスでドラッグして変更が出来るようにです。下に色々ハコを置いておきますので、Hello world の所に持っていってメッセージを変更してみて下さい。

http://languagegame.org/tmp/jstile/tilescript.html#About-ja

これはとても衝撃を受けるツールです。私の脳天直撃でした。いろいろなところが刺激的なのですが、猫的には「Wiki のようなソースコード」に一番ゾクゾクきちゃいました。具体的には、

  • 閲覧しやすい見栄えと 書きやすい書法のスイッチする
  • ハイパーリンクを利用できる
  • ドキュメントとコードがごった煮(どちらのウェイトも均等!主とか従とかいう関係じゃない!!)
  • その場で部分的コードに実行することができる

で、閲覧しやすい見栄えと記述しやすい見栄えについては、例えば

fib = function(n){
 if (n==0 || n==1){
    return 1;
 }else{
    return fib(n-1) + fib(n-2);
 }
};

とテキストエリアに打ち込んで、左のチェックボックスを外すと、

になります。見やすさについては まだまだですが(失礼ですみません)、この方向性には凄く未来を感じます。

TileScript はその名の通り、タイルぺたぺたで殆どコーディングできちゃうことを目標にしているのですが、猫的にはキメラチックなのがカッコイイと思ってしまってます。

例えばメソッドの中身を新規に書いたりは、普通にキーボードでコーディングできて、プログラムの構造をそのままごっそり移動させたりする場合は、テキストエディタみたいに範囲選択なんてかったるいこと無しで、タイルをドラッグでボン!コード自体がドキュメントになっているので、doxygen のようなツールよりも直感的だし、ハイパーリンクでパシパシ飛べるのでとても便利。

そんな未来のコーディングスタイルも、すっごく有りなんじゃない?・・・そんなどりぃ〜む を思わず頭に描いてしまう。そんなお年頃です。

・・・ていうか、TileScript な環境で blog 書きたーーい!