[ top ] [ prev ] [ up ] [ next ]
ruby.pi is Pi source.(ShiftJIS)

Moriq and Ruby

はじめに

さて, Ruby とは何ですか ? と周りから聞かれることも全くないもりきゅうの生活は,労働と趣味とで成り立っており,労働とは高松花市場,趣味とはプログラミングであります。

ここでは,趣味の時間に捻り出したプログラムを公開する。できれば,プログラミングの手法や考え方についても記述したい。

最近のプログラミングといえば, Ruby スクリプトを書くこと,さもなくば, Ruby Extension Module を C で書くこと,となっている。もちろん,私個人の話ではある。私的に流行っている。そんな感じ。

言語遍歴

私のプログラミング言語遍歴を現時点から振り返ってみると,
  1. Ruby
  2. Java
  3. Perl
  4. Filly/Toffy
  5. Pascal
  6. Ray/mml
  7. C
  8. N88BASIC
  9. BASIC on EPSON HC-40

となる。情報科学に関する教育は大学でちょこっと 2,3 の講義を受けただけなので ( 私は教育学部に所属していた ) ,ほぼ独学といえる。困ったもんだ。この一覧で Pascal がちょうど大学 1 年に当たる。

ところで,一覧中で C と書いては見たが,私はあまり使った記憶がない。それまで BASIC をばりばり使っていたためであろう。あの構造化プログラミングにはなじめなかった。 C を思い出したように使い始めたのは Ruby を知ってからである。

なお, HC-40 BASIC 上で生み出した数々の名作ゲームは失われてしまった。主な原因は HC-40 のバッテリー部が壊れてしまったことである。

ネット

インターネットを利用できるようになってから,先端技術の情報が得られやすくなった。これまでは本が出版されるのを待たねばならず,しかも本はその出来事から 1,2 年遅れているし,洋書の翻訳本であれば,その遅れはなおさらだ。

確かに,インターネットの情報の質は ( 石の含有率がかなり高い ) 玉石混淆だから,ピントのずれた情報を掴むことはよくある。このずれに気づかないと回り道をする羽目になる。勉強にはなるけど。

UNIX

Ruby を語る前に UNIX について語ろう。私は一昔前の富士通のノート型パソコン FMV-5120 NA2/W いわゆる BIBLO ( マシン名は thany) に FreeBSD-2.2.5 をインストールし,これを Ruby 用にしている。スペックは CPU 120MHz, RAM 48MB である。私が UNIX に触れたのは大学 3 年も終わるころ, FreeBSD-2.2.1 を NEC PC-9821 Cx2 いわゆる CanBe にインストールしたのがはじめである。それから 2 年も経っていない,いわば,へなちょこユーザの称号 'novice' を贈ってほしいと言いたいくらいの経験である。大学には SUN-SPARC-Solaris が 1 台置いてあり,これを触っては見たが,どうやって電源を切るのかも分からないありさまであった。今では shutdown くらいはできるようになった。うん,偉い偉い。

thany は X Window System を導入できるくらいのスペックはある。実際,液晶はドット落ちが 2,3 個見つかるだけで,きれいなものだ。そのおかげで Ruby/Xlib を開発することができる。

vi

私はテキストエディタとして elvis つまり日本語の使える vi を使う。 mule (Emacs) も使ってみたがよく分からなかった。 vi はそれなりに分かりやすい。

気になるテキストエディタとしては RE がある。 Windows で復刻版 ( というかクローン ) が使えるのだが,元祖 UNIX の RE はどこにあるのだろう。気になって仕方がないが,この名前のおかげで検索は困難だ。

Ruby

どんな言語にも得手不得手があり,それぞれがニッチを占めている。スクリプト言語の特長をここではあえて述べない。私の知識は浅いから。

Ruby に触れたことの大きな収穫は UNIX 使いへの道を踏み出せたことだ。確かに UNIX は最初の第一歩を踏み出すときのハードルが高い。私の場合は Ruby が後押ししてくれたおかげで試練に耐えることができた。また, Ruby は質の高いソフトウェア技術のカタログのようなものなので,真のソフトウェア技術者への道を指し示してくれる。そう私には思えてならない。この啓示が的外れなものではありませんように。

Ruby はお気楽極楽な言語だ。 Perl 使いがにやにや笑いを浮かべるなら, Ruby 使いはにっこり微笑む ( ほほえむ ) だろう。この差は大きい。なぜかって ? Ruby 使いの方が明らかに品が良いではないか。

Ruby を使っていて思うことは,つまづきが少ないこと,つまづいても立ち直りが早いことだ。つらつらスクリプトを書いたのち,実行して間違いが見つかると, Ruby は位置と原因を教えてくれる。たいてい,直しかたはすぐ分かる。分からないときでも,直前に知りたい情報を出力するための p foo を書き込んで,再実行すればよい。要するに,開発効率が非常に高いのである。

Ruby との出会い

私が Ruby を知ったのは NIFTY の FGALTS でであった。大学 3 年当時 ( 1997 年 ) , Perl が究極のスクリプト言語だと思い込み, Perl 道に鍛錬を重ねていたのだったが, Ruby を知ったとき私には Ruby = Perl + Java という構図が浮かんだ。ということは Ruby > Perl .. で,あっさり乗り換えた。 ^^;

FFILLY でお世話になったともゆきさんから仕事をいただいた縁で,私は Perl, Java を勉強し,それなりに使うようになっていたのだ。その当時 ( 私にとって ) 双璧だった言語を足したように思えた Ruby は,今後,ネットワークプログラミングの覇者になるに違いない。この予想は当たる筈だ。当たってくれなくては困る。

作品

では FGALTS 時代に作った Ruby スクリプトを紹介しよう。なんにせよ,私は新しいプログラミング言語を使うとき,はじめにゲームを作ってみる。

adv

adv はテキストアドベンチャーツクールである。テキストアドベンチャーとは,読み手が数々の選択をしながら読み進めていき,たいていは主人公が死んでしまって Game Over ,正しい選択をしていくと最後には Happy End にたどり着く,というものだ。そういうジャンルの本もあって,ダイス ( サイコロ ) を使って条件判定をするものもある。例えば,私は「火吹山の魔法使い」という本を読んだ ( というよりも遊んだというほうが適切かな ) ことがある。しかし,いまだにクリアしたことがない。もちろん,ページをめくれば結果は載っているのだが,この手のゲームは過程を楽しむのであるから,そんなことをしても意味がない。

adv は簡素なもので,本文と選択肢から成る。 1 ページが 1 ファイルに対応しており,その書式は次のようになる。
[ 本文 空行まで何行でも .. ]

[ 選択肢 1 の文 ] [ 選択肢 1 のファイル名 ]
[ 選択肢 2 の文 ] [ 選択肢 2 のファイル名 ]
..
1 ページ目は adv.txt に書く。「選択肢 # のファイル名」は拡張子 .txt を外した名前である。

今では懐かしい記法が見られる。メソッドの引数は必ず括弧で囲んであるし, attr の引数は String だし,シングルクォートしても良いところをダブルクォートしている。

当時は Ruby version 1.0 を使っていた。しかし,この骨董品は Ruby-1.4.2 でもちゃんと動く。
author: Kazuhiro Yoshida
[ top ] [ prev ] [ up ] [ next ]