[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 1192] Re: スケジュールについ て



まあ、大抵は、お互いの誤解なんですが、、、。



Ryuichi Naitoh wrote:

> > というあたりでしょうか。
> > こう云った大きな program(OS) では、topdown と bottomup を同時にやらなければ行け
> > ないので、しんどいのですね。<と分かり切ってることを繰り返してみる。
>
> えっ、トップダウンでやっているところって何かありましたっけ?
> 確かに話はたくさんしていますが、実際にモノを作ろうというところまでいっ
> ているのはまだないと思いますよ。
> # いや、アプリケーションレベルでいうと落合さんの作られているフリーキャ
> # ビネットがありましたか。
>
> ボトムアップ的というと、中心核から順々に作るという作業は細々ながら動い
> ていますから、たしかに何かしらの作業はしていますけど。
>

実際にやっているという話ではなく、design の中での、topdown-bottomup です。

> うーむ、というか先のメイルで私が書いたのは、結局のところ、「手を動かす
> 人がいない」(からいつまでたってもモノができない)ということなんですけど。
> レイヤ分けということでは、一応周辺核のレベルまでは機能別に分離していま
> す。
> 問題は、その周辺核を作るという作業が実質進んでいないということで、これ
> はオブジェクト指向を使えば簡単にできる、というものではないです。
> 結局、オブジェクト指向は技術にすぎないので、プロジェクトでの遅れをとり
> もどすために、オブジェクト指向を使うというのは無理でしょう。
>
>         結局、ここでも「銀の銃弾(silver bullet)はない」んです。
>
> いや、オブジェクト指向で OS を書こというアイデアはいいんです。
> ただ、実際にオブジェクト指向言語の元で OS を実装というのは簡単ですが、
> どの位の作業量になるか考えています?

まず第一に、OOP にするかどうかで、Manager の割方とか、全部、違ってきます。何故かという
と、それが、OOPだからとしか、、、、。(笑)
で、みんなが、OOPにしようとか突然(というか最近)言い出したら、Manager 作る人は、
「一寸待った。それじゃあ、実装をどうしようか?」ということになると思ったのです。

# 単に人手かもしれませんが。(暴)

第二に、Object Oriented には、最低二つの level があると思うんですね。一つは「OSをO
O化する。」これは、ここで話していることです。もう一つは、「OSの上に、OOPな言語を
被せる。」これはたぶん、Night さんが話していることだと思います。

で、OS自体をOOにするには、また、いろいろと考えなきゃいけないことがあるでしょうし、
現在の B-free は明らかに、OOとしては作られていないわけです。

実際には、(もしOOにすると言うのなら)
 1.class 間の関係で、OSの内部を理解(再認識)する。
 2.class 間の関係から、class に必要な interface を定義する。
   重複があれば、継承や所有による単純化を考える。
 3.interface と class から、module を考える。
   module は、class の為に何を提供したらいいのかを考える。
   class が module のよりどころになる可能性あり。
 4.module の提供する物が決まれば、自然と、内部でとれる
   選択肢が限られてくる。

こんな感じです。

ただ、thread と class の関係は、Java を見れば分かるように単純ではないので、module の割
り振りはしんどいかもしれません。


> さらに、オブジェクト指向の場合、ライブラリ化が重要になります。このオブ
> ジェクト指向のライブラリについては、使う方も作る方もそれなりの労力がか
> かります。使い物になるオブジェクトライブラリを作るには、2、3年かかるで
> しょう。ソースの量も、数万ステップを越えるものになります。

この件については、OSがOO化された場合、大分低減されると思います。

> 実際、C++ により OS を書き換えるというのは、UNIX でも試みられたことが
> あります(system V の後継)。しかし、最終的には C++ への書き換えは失敗し
> てしまいました。このときは、SUN と AT&T の技術者が共同で作業したはずで
> す。AT&T といえば、C++ の総本山で、C++ に詳しい技術者もいたはずです。
> しかしながら、そういうところですら OS を C++ で記述することに失敗した
> わけです。

うーむ。内部構造から、洗い直したのでしょうか。それとも、、、、。
ちょっと、どういう目的の書き換えだか分からないので、comment を控えます。

> また、API (実際にはライブラリになると思いますが)、にオブジェクト指向を
> 使うことも懐疑的です。アプリケーションを書く時に使いものになるオブジェ
> クト指向のライブラリを作るのは、非常に大変な作業になります。

BTRON2 の API は、関数の多重定義などを使い、対象を実身・仮身として抽象化し、かなり、O
Oな気がします。

# BTRON2 は実装が困難を極めて、棚上げになったという話も、、、。

> オブジェクト指向のライブラリは、個々の関数がクラスという関係でつながり
> があります。個々の関数のことを考えればいいライブラリに比べ、クラス階層
> という別の見方でも考えなければいけないオブジェクト指向ライブラリを構築
> するのは、作り直しを何回も行う必要があるでしょう。MCF などを見ると、何
> 回作り直されたか。。。。

作り直しが、App に影響しないと言うのが、OOPの見せ場ですが、、、。まあ、初期段階では
作り直しは必要ですね。;_;

> # 再利用できる、というのはオブジェクト指向のウリなのに。
> # 肝心のライブラリが変わったんじゃ再利用もあったもんじゃない。
>
> ところで、3B は CodeWarrier で開発できるそうですけども、CodeWarrier っ
> て C++ コンパイラが動きましたっけ?(よく知らない)。
>
> p----------------------------------------------------------------------q
> | FROM R.Night                                                         |
> | E-mail:                                                              |
> |         rnaitoh@st.rim.or.jp                                         |
> | Key fingerprint = 89 EB 77 95 40 C0 3C CC  37 A1 A7 FA 1C 66 FF D0   |
> b----------------------------------------------------------------------d

 -Aki.

追伸:
 実際の OOP の Programming の課程は、「C++ プライマー」の "Template Class の設計" の
章が、とても分かり易い導入になっていると思います。僕は、OOP と、C++ の多くを、この本か
ら学びました。結構真剣に読むと、時間が掛かる厚い本です。そのあと僕は言語に対する興味
(その当時、Programming Language にすごくはまっていた)から、「注釈 C++」に行ってしま
ったけど、、、。<こっちは、OOP を学ぶ本じゃない。