> >Large quantities are shared libraries or seperate applications > > (Tracker > >is *not* a server). I just pulled up the handy-dandy BeBook here. > > Let's > >go through, shall we? > > OK, but I have no clue how you came up with your opinions on what > is remote and what is not. I used my psychic abilities. :) > >The Application Kit- 2/13 classes implemented remotely (BApplication > >and BRoster) > > BClipboard may or may not (not really sure). I *think* it's local, but it may not be. > >The Device Kit- 0/2 classes implemented remotely > > My device kit shows 5 classes. :-/ None in servers. Really? I must have an old Be Book... Hrrm. > >The Game Kit- 2/5 classes implemented remotely (BDirectWindow and > >BWindowScreen) > > I *thought* (and I could be wrong) that the sound classes used the > media kit. > If so, they are talking through a server. This is the same argument as saying that my thread-safe list class that uses a sempahore is in the kernel because it uses semaphores. That's rediculous. > >The Interface Kit- 4/45 classes implemented remotely (BView, > > BWindow, > >BPrintJob, and BScrollbar) > > This is somewhat misleading. Most of those classes derive from BView > either directly or through BControl. So most of them *DO* talk to > servers. This is the same argument as saying that my thread-safe list class that uses a sempahore is in the kernel because it uses semaphores. That's rediculous. > >The Kernel Kit- 3/4 function sets implemented remotely (areas, > > ports, > >and semaphores) > > Actually, I think that everything in here talks to the kernel via > system calls. > So not really server or shared library. :-) I'm counting the kernel as a server. But, AFAIK, most of the image calls are local, not in the kernel (exe loading is in the kernel, but symbol resolution and things is local). > >The Mail Kit- 0.5/1.5 classes implemented remotely (the C mail API > >counts here) > > I would think that both would need to talk to the server. Nope. BMailMessage just writes files. (I know way too much about it :P) The C API (and only a fraction of that) talks to the server. Only check_for_mail() and send_pending_mail() talk to the mail_daemon. > >The Network Kit- 2/4 classes/function sets implemented remotely > >(sockets/BNetEndpoint) > >The Storage Kit- 1/18 classes implemented remotely (BQuery) > > I can't agree with you here. Example - BDirectory creates a new file. > I would *HOPE* that functionality is not in the shared library, but > is in the > FS. :-) Which means that it is in the kernel. If you call the kernel > a server for BQuery, > you have to call it a server for most of these classes. Which uses kernel calls. As I said before, this is like saying that int b = 4+5; is in the kernel becauses it uses memory. Only things that * know* they are in the kernel can be considered in the kernel. > >The Support Kit- 0/10 classes implemented remotely > > Some of these, too, have remote functionality. Specifically, anything > that is a Locker. See above. > >Grand Total- 14.5/106.5 classes/function sets implemented remotely > > > >Only slightly more than 10% of the Be API is implemented in a > > server. I > >would hardly call this most everything. > > That is one measure. > Another is this: > in servers, there is 3.6 meg of code. > The kernel is another 700k. > Plus all of the add-ons, etc. > In lib, there is 9.7 meg of code. This includes std C++ lib, tracker > (> 2 meg), etc. > > That puts the two pieces closer to an equal footing. It really all > depends on what > and how you count. In any case, Be seemed to think that servers were > a good thing and > used them quite a bit. Maybe not "almost all", Maybe not 10%. > Probably somewhere > in betwee. ;-) Agreed. My point remains: Be didn't do everything via servers. And they aren't gods. Even if they did, it doesn't mean we should. There is a time and a place for everything, and preferences is not one for servers. -Nathan -- Fortune Cookie Says: If you keep anything long enough, you can throw it away.