pineapple blog

Blog of Ichi Kanaya / 金谷一朗のブログ

Search

Twitter feed

Flickr Feed

Loading Flickr...

    More - Flickr

    Find me on...

    Tag Results

    2 posts tagged BeOS

    BeBox: Rivals of early Macintosh 7 / マッキントッシュのライバルたち 7: BeBox

    The BeBox was a short-lived dual processor personal computer, offered by Be Inc. in 1995. It had dual PowerPC 603 at 66MHz.

    The BeBox had a unique I/O board named GeekPort, which had 2-ch 8-bit bidirectional digital port, 4-ch 12-bit A/D converter, 4-ch 8-bit D/A converter, +5V, +12V, -12V, and GND pins.

    BeOS, which was an OS originally designed for BeBox and later ported to PowerMac and then Intel boxes, was also quite unique software based on Object Oriented technology like NeXTSTEP. BeOS’s runtime was based on the early version of C++, on the other hand the NeXTSTEP was based on Objective-C.

    Note: Be was established by Jean-Louis Gassée, and BeOS was a candidate for replacement of classic Mac OS in Apple Computer. The switch to BeOS was called Plan Be in Apple.

    The number of shipped BeBox was under only 2,000 world wide, and I was a man who was lucky enough to own one.

    BeBoxは短命に終わったデュアルプロセッサ搭載パソコンで,初期型は66MHzの PowerPC 603 を2個搭載していた.デビューは1995年.

    BeBoxはGeekPortと言うユニークなI/Oを備えていた.内容は2chの8ビット双方向デジタルポート,4chの12ビットA/Dコンバータ,4chの8ビットD/Aコンバータ,+5V, +12V, -12V とGNDの電源ラインだ.

    BeBoxはまたBeOSという独特なOSと一緒に出荷された.BeOSは後にPowerMacそしてインテルボックス(PC/AT互換機)へと移植される.BeOSもなかなか先進的で,ランタイムはオブジェクト指向方法論ベースのものだった.NeXTSTEPはObjective-Cベースだったが,BeOSは(初期の)C++ベースだった.

    ちなみに,Be社を作ったのはジャン・ルイ・ガゼーで,BeOSはアップルが次期OSを探していたときの候補(プランBeと呼ばれた)でもあった.

    出荷されたBeBoxは全世界で2,000台以下とされる.僕はそのうちの1台を使っていた.

    ジョブズってやつは(ソフトウェア編)

    Objective-Cの [object message: parameter] はC++で言うところの object->message(parameter) では無い.例えるなら object->generic_message_handler(“message”, parameter) に近い.

    もしC++でgeneric_message_handlerを書こうとすると,BeOSのライブラリ拡張機能の最終手段のようなことになる.つまり,こんな感じだ.

    using namespace std;
    void *obj::generic_message_handler(const string *msg, ...)
    {
    va_list parameters;
    va_start(msg, parameters);
    std::map<string, member_function_type>::iterator p
    = member_function_table.find(*msg);
    if (p != member_function_table.end()) {
    void *ret = p->member_function(parameters);
    va_end(parameters);
    return ret;
    }
    else {
    va_end(parameters);
    throw i_cannot_respond_to(msg);
    return 0;
    }
    }

    見ての通り,Objective-Cはコンパイラ言語というよりはインタプリタ言語に近い.

    まったく,最初のNeXTcubeでObjective-Cを走らせたジョブズは狂気の持ち主としか言いようがない.20年後に,狂気は驚喜と凶器に変わるわけだが.

    Loading posts...