Date:  Wed, 22 Feb 2006 13:20:04 +0900
Subject:  【オブジェクト倶楽部: 2006-07号】
X-Mail-Count: 00134

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
       ┃                         ■┃
      ●┃● ● オ ブ ジ ェ ク ト 倶 楽 部   ■ ┃
       ┃                       ■  ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
                          No.128 2006/02/22

■ I N D E X
┃
┣【書評】『復活!TK-80』
┣【プログラミング】Rubyで進むオブジェクトの道 〜脱初心者をめざして〜[12]
┗【アンケート】気になるシステム業界 ホントのところ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━1 s t ■━
■
┗【書評】『復活!TK-80』

● 書名: 復活!TK-80
● 著者名:榊 正憲
● 発行: アスキー
http://www.amazon.co.jp/o/ASIN/4756134017/xpjp-22

いつもであれば「プロジェクトマネジメント」ですが、今週は書籍とこれに絡
む私の思い出を紹介させて頂きます。ただ、この書籍は、プロジェクトマネジ
メントとは全くといっていいほど縁がない書籍ですが、興味を持たれる方は少
なくないと思います。

その前にちょっと。先日、お客様からの帰り道に時間があったので、久々に秋
葉原に寄ってきました。最近はJR東日本が運営する「交通博物館」へは子供を
連れて行く機会があるのですが、「ラジオ会館」や「ラジオデパート」など秋
葉原の中心部?には数年ぶりの散策となりました。実は私、生まれも育ちも秋
葉原のすぐ近く(電車で5分のところ)で、小学生の頃にはラジオ工作の部品やラ
ジコンなどを求めて秋葉原を毎週のように通っていました。この頃の秋葉原と
今の秋葉原の変わりように驚きと少々危惧を感じてしまいましたが・・・。

この頃あたりだと思いますが「マイコン」というものが秋葉原界隈に出回り始
めた頃でした。もう20年以上前のことですね。私がよく目にしたのがシャープ
社の「MZ-80」でした。その他、東芝や日立、NEC、富士通製のマイコンがぽつ
ぽつと出てきたような記憶があります。ただ、ダントツに印象に残ってるのが
アップル社製の「APPLE供廚任垢。

この頃の「マイコン」時代をご経験された方にとって懐かしさを甦らせてくれ
たのが、今回ご紹介する本です。丁度、帰り際に秋葉原駅近くの大型書店に立
ち寄ったときに目にしました。アスキー出版から榊正憲さんが書かれた「復活!
TK-80」という本です。この「TK-80」とは、NECが開発・販売したZ80のプログ
ラミングやアーキテクチャを習得するためのトレーニングキットです。本をご
覧になればわかると思いますが、このキットにはフルキーボードやディスプレ
イはなく、16進数キーボードと8セグメントLEDのみです。

コンピュータってどのように動くのかを知りたくて本を買い込み読んでもいま
いちピンと来なかった時に、このトレーニングキットの存在を知り、欲しくて
秋葉原に行ったのですが高価で買えなかったことが思い出されました。わたし
は仕方なく、自作を試みたのですが、経済的、技術的な理由から挫折しました。

今現在、この「TK-80」が現存するのは少ないと思います。そこで、すばらしい
ことに、この本には「TK-80」のシミュレータが付いていて、このシミュレータ
上で「TK-80」の動作体験が出来ます。ちなみに「マイコン」とはこの当時、
「マイ・コンピュータ」の略で、「マイクロ・コンピュータ」の略ではありま
せん。個人レベルで手軽に使えるコンピュータを言っています。

この後、「パソコン」と言うものになり、NEC社製の「PC-80シリーズ」「PC-88
シリーズ」などが開発・販売され「マイコン」は死語になって行きました。こ
れと同時に「TK-80」も過去のものになってしまいました。「Windows世代」の
方々は、JAVA言語やVB言語に代表される高級言語から入られているので、コン
ピュータの動きを理解されていない方が多いように思います。この「TK-80」の
シミュレータを使って、コンピュータの動きを基礎として習得されてもいいか
なと思います。(事務局長)
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-10&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-10&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=A001-10&choice=2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2 n d ■━
■
┗【プログラミング】Rubyで進むオブジェクトの道 〜脱初心者をめざして〜[12]

●おしらせ
もうすぐ(2/24頃)、Ruby on Railsの翻訳本がでますね。
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06640-1

さらに『オープンソースマガジン』の2006年03月号では、Ruby,Rails関連の記
事が載っています。
http://www.unixuser.jp/magazine/2006/200603.html

これを機会に、Rubyに触れてみてはいかがでしょうか?

●はじめに
今日は、言語やライブラリのデザインについて触れていきます。言語やライブ
ラリをプログラミングレベルでデザインする際には、プログラムを簡潔かつわ
かりやすく記述できるようにするのが基本です。
次のプログラムを例に考えてみましょう。

●Javaのサンプルプログラム
class Person {
  private String name;
  private int age;
  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return this.name;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public int getAge() {
    return age;
  }
  public static void main(String[] args) {
    System.out.println( new Person() );
  }
}

●Rubyのサンプルプログラム
class Person
  attr_accessor :name, :age
end

puts Person.new

●簡潔に表現できるのは?
JavaとRubyで上記のプログラムを比較したとき、わかりやすいかは好みにより
ますが、タイプ量や、記述の簡潔さはRubyのほうが勝っていることは間違いあ
りません。

クラスにプロパティを定義することは、よく繰り返し行われていることですが、
Java言語では今のところ簡潔に表現できるようにデザインされていません。(Ruby
言語では、attr_accessorメソッドを使えば、属性、セッター、ゲッターを簡単 
に用意してくれます。)

ちょっと実行したり、コンソール出力したい場合も、Javaでは、
public static void main(String[] args)System.out.println
といった長文が必要になります。また、可視性の指定も単調に繰り返し指定し
ていることがわかります。(Javaはこの問題を言語のデザインによってではなく 
て、エディタのコード補完やコードジェネレーションで回避しています。)

Java言語デザインをよくよく考えたら、人間工学的にも非効率ですよね。正直、
筆者はRubyを学ぶまで気がつきませんでした。

●自然言語風にデザイン
また、ライブラリ利用者がライブラリを利用する際に自然言語風に記述できる
ように、ライブラリ作成者がライブラリをデザインすることで、わかりやすさ
を向上させる方法も知られています。

下の例はRSpec[*1]のshould_equalを参考に、かなり簡略して記述したものです。

●ライブラリ提供者側
class Integer
  def should_equal expected
    self == expected
  end
end

●ライブラリ利用者側
x = 1
y = 2
# x + y should equal 3
puts (x + y).should_equal(3)

「 x + y should equal 3 (x + y は/あるべきだ/3で)」の英文と
「(x + y).should_equal(3)」のRubyプログラムは、かなり似ていることに気が
つくと思います。

RSpecは自然言語の記述とプログラミング言語の記述の隔たりを少なくし、(仕
様|テスト)記述者が、自然言語で(仕様|テスト)を読み書きするように、プログ
ラム言語で(仕様|テスト)をすらすら読み書きできるように、ライブラリをデザ
インしています。

●まとめ
言語やライブラリのデザインについて触れました。「簡潔かつわかりやすく」
と言葉にすると、当たり前ようですが、実践するとなると、なかなか難しいも
のです。

Railsには「簡潔かつわかりやすく」のアイデアがいっぱい詰まっています。
Railsを参考に、プログラミングデザインについて学んでみるのも、いいかも
しれませんね。(IENAGA)

●参考
[1]:RSpec
http://rspec.rubyforge.org/
チュートリアルの日本語訳
http://kakutani.com/trans/rspec/TUTORIAL_ja.html
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-11&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-11&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E006-11&choice=2
 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━3 r d ■━
■
┗【アンケート】気になるシステム業界 ホントのところ

今週は「初めてプログラム(マクロも含む)を書いたのはいつ頃ですか?」のホ
ントのところ。本に書いてあるサンプルをそのまま写したり、人のコードをコ
ピーしたり、プログラムとの出会いも人それぞれだと思います。みなさん、初
めてプログラムのコードを書いたのはいつ頃でしたか?

  小学校低学年。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=0
  小学校高学年。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=1
  中学生。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=2
  高校生(高専含む)。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=3
  大学(短大、専門学校含む)。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=4
  社会人になってから。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=5
  浪人時代。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=6
  フリーター時代。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=7
  書いたことありません。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=8
  それは秘密です。
     http://www.ObjectClub.jp/special/kininaru/vote?vol=94&choice=9
  ちょっと語らせて!
     editors@ObjectClub.jp まで詳細を!!

アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「トリノオリンピックをどのように楽しみますか?」の結果は公開
中。ぜひご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol93/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記

こんにちは、編集人です。大学時代に、パソコン室のパソコンに保存されてい
た、見知らぬ人のプログラムをコピって、課題を提出した。それが私が初めて
プログラムを書いた(触れた)ときの記憶です。マイコンにも触れたことはあり
ません。まさか、こんな私がこの業界に就くことになるだなんて、当時誰が予
想できたでしょうね。。

今週の強引な一言
*** 車は急に止まれない(交通標語)***
なぜ止まれないのでしょうか?スピードが速いから?いやむしろ、重量がある
から止まるのも曲がるのも難しいのではないでしょうか。プロジェクトも急に
止まれない。問題があるとわかったら、荷物を捨ててでも早めにブレーキをか
ければ被害を軽くできるかもしれません。
(さとみ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は         ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は   ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋  健児
Copyright (c)2003-2006 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.