小さいことは良いことだ

| | コメント(2) | トラックバック(2)

今、私は学生向けプログラミングコンテストのアイデアを考えて、と言われている。ThinkQuest、ロボコンや鳥人コンテストみたいに、成功するコンテストってなんだろう?。参加ハードルが低くて、知的好奇心を刺激され、工夫次第で無限の可能性があるもの。

1998年にビデオジャーナリストの神田さんと一緒に取材した「猿岩石」企画で、米国マクロメディア本社を訪問したときに、階段が巨大滑り台になっていたり、サッカーのゴールポストが室内にあったりしたことに驚いた。発想を刺激するインテリアがあちこちに。でも、一番クリエイティブな印象だったのは、壁一面に張り出された折れ線グラフ。プログラムのソースのサイズが、開発努力によってどんどん小さくなっていく図だった。(開発の世界では、同じことをするプログラムならばサイズが小さい方が良いとするのが一般的)。

・1998年 インターネット猿岩石(マクロメディアのレポート含む)
http://www.gabby.net/expo/us-venture98/index.html
saru-j.gif

二人で米国シリコンバレー、アレイを突撃取材した記録。ネットバブル真っ只中の雰囲気。
私の文体も恥ずかしいほどノリノリ。若かった。
(妙な英語版があるのは旅行中、米国のPCショップFry'sで何十ヶ国語を翻訳できるという怪しい翻訳ソフトを見つけて買い込み、それを使ってでっちあげたもの、だったと思う。)

■富豪的プログラミング

搭載メモリの量が多くなって以来、小さくコードを書くことの重要性は薄れてきた。逆に大きくても良いから、開発者が読みやすく、保守しやすいものを大切にする文化もある。典型的なのは、著名な研究者の増井俊之氏が提唱する富豪的プログラミングである。

・富豪的プログラミング
http://pitecan.com/fugo.html

増井俊之氏 (富豪化理論研究家) による解説。


・メモリや実行効率を気にしないでお気楽にプログラムを作る
効率を重視したプログラムは作るのが大変ですし、ちゃんと動かすにはデバッグも大変です。富豪的プログラミングでは一番単純で短いアルゴリズムを使います。

・条件が変わる度にすべての計算や表示を行なう
再表示が必要な場所だけ書き直ししたり、出力のバッファリングをしたりする貧乏性な工夫はバグのもとになるので行なわず、条件が変わる度に計算を再実行したり全体を書き直したりします。

コンポーネントプログラミングだとか、オブジェクト指向と言われる最近の開発ポリシーは、どちらかというと、富豪的アプローチな部分もある。どちらが効率が良いかは一概には言えない。アルゴリズムの研究を読んでいると、どうやらプログラムの効率には3つの考え方がある。

プログラムの3つの効率

1 速度効率
  高速に動作するプログラムほど効率が高い
2 メモリ効率
  使うメモリが少ないほど効率が高い
3 開発効率
  コードの読みやすさや保守しやすさが高いほど効率が高い

小さなプログラムは、上記3つの効率のうち、1と2を満たすことが多い。小さくする価値はある。

■小さなプログラムへの挑戦

自然言語で複雑な説明を書くときと一緒で、コードも短く書く方が一般的には難しく高度である。富豪的な時代になっても、世界中に小さなプログラムへの挑戦者たちがいる。

・256b.htm Competition
http://wildmag.de/compo/
256バイトのHTML(含むJavaScript、CSS、GIF)でどこまで面白いWebページが作れるかのコンテスト。動く、動く。

・web4096
http://www.message.sk/web4096/index.html

4096バイトでのHTML、Flash、Javaアプレットのチャレンジ。

・The5K
http://www.the5k.org/

5キロバイトでのチャレンジ。

・THE 1KB 6502 PROGRAMMING CONTEST
http://oric.ifrance.com/oric/microtan/6502contest.html

1980年の古いPC(メモリ1キロバイト)で動作するプログラムのコンテストが第8回。

・7行プログラミング作品集
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html

7行のJavaScriptでテトリスやぷよぷよができるなんて!。


小さいという意味が異なるがこんなものもある。

・4th BUTE International 24-hour Programming Contest
http://www.challenge24.org/main.php?main=

24時間で与えられたテーマのプログラムを開発する国際コンテスト。時間のスケールが小さい。

・Guimp
http://www.guimp.com/

物理的に世界一(タテヨコ)サイズの小さいWebサイト。ちゃんと表紙、ブログ、ゲームなどのコンテンツがある。入り口でFlash版とHTML版が選べる。

オリジナル
guimp01.JPG

4倍で拡大
guimp02.JPG

フラッシュでパックマンが動く!。

・パックマン
http://www.guimp.com/pacman_flash.html

オリジナル
guimp03.JPG

4倍で拡大
guimp04.JPG


参考URL:

「対になる世界一、日本一」
http://www.hatena.ne.jp/1065668104
「例えば、【世界一高い山】【世界一低い山】というように、コメント欄に両データを「併記」する形でご紹介ください。最高・最低、最長・最短、最多・最少、最大・最小などなど、ジャンルは問いませんから、できるだけたくさん、必ず併記でお願いします。」面白い!

・kisrael.com | gamebutton arcade
http://kisrael.com/features/gb.htmlテーマはずれますがWebフォームのボタン上で動く小さなゲーム。発想がユニーク。

トラックバック(2)

このブログ記事を参照しているブログ一覧: 小さいことは良いことだ

このブログ記事に対するトラックバックURL: http://www.ringolab.com/mt/mt-tb.cgi/1171

» 富豪的プログラミング(硫.)~のトラックバック

応用情報技術研究所の橋本大也氏のblog、”Passion For The Future”に以下の記事があるのを発見した。 ☆ 小さいことは良いことだ ・富豪的プログラミング http://pitecan.com/fugo.html 増井俊之氏 (富豪化理論研究家) による解説。 ・メモリや実行効率を気にしないでお... 続きを読む

» 富豪的プログラミング(硫.)~のトラックバック

応用情報技術研究所の橋本大也氏のblog、”Passion For The Future”に以下の記事があるのを発見した。 ☆ 小さいことは良いことだ ・富豪的プログラミング http://pitecan.com/fugo.html 増井俊之氏 (富豪化理論研究家) による解説。 ・メモリや実行効率を気にしないでお... 続きを読む

コメント(2)

たまにはコメントなぞを。こういうのはいかが?

・TinyWindowsGames
http://www.tinywindowsgames.com/

あ、ごめんなさい。上、閉鎖されてしまっていたようです。すごい小さなゲームばっかり公開していたんですが・・・。

百式では以下のように紹介されておりました。

http://www.100shiki.com/index.php?20010925

このブログ記事について

このページは、daiyaが2004年1月10日 08:06に書いたブログ記事です。

ひとつ前のブログ記事は「顔面技術」です。

次のブログ記事は「日本人の禁忌―忌み言葉、鬼門、縁起かつぎ…人は何を恐れたのか」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1