XPost: alt.os.development   
   From: mailbox@dmitry-kazakov.de   
      
   On Wed, 15 Feb 2006 10:46:49 +0100, Stefan Nobis wrote:   
      
   > "Dmitry A. Kazakov" writes:   
   >   
   >>> Pure OO paradigm is great on paper and is hardly compatible with the real   
   life.   
   >>> "The paper is smooth, but the real site has canyons".   
   >   
   >> So far nobody really tried, AFAIK.   
   >   
   > Hmmm... what about Plan9, NextStep (MacOS X)?   
      
   I wouldn't count them for fully OO, or even object-based. The very kernel,   
   all internal interfaces must be OO.   
      
   >> 1. There are technical and theoretical problems with OO languages.   
   >   
   > There are big problems with C++, Java, C#. But there are Eiffel,   
   > Erlang, Smalltalk, Common Lisp, Oz/Mozart and others. Most of the   
   > problems are solved for decades, but the industry does ignore those   
   > results, mostly (IMHO).   
      
   [ You could add Ada 95. AFAIK, there are some OSes written in Ada, some are   
   in development. ]   
      
   No they don't solve these problems either. There are various attempts, but   
   IMO there is no language with a feasible types system. You can go to   
   comp.object as throw in "is integer a class?", "if type is a class?", "Are   
   values objects?" and enjoy following quarrel. (:-))   
      
   > Everybody seems to think, the industry as a   
   > whole and individual managers are nearly always make decisions based   
   > on facts and rational reasoning -- but that's bullshit.   
      
   As long as people are buying shit, there is always somebody ready to   
   defecate... (:-))   
      
   >> 3. Yet another problem is fragility of dispatching mechanism. Small   
   >> changes in interfaces require full recompilation, which in terms of   
   >> OS would mean a monolithic Windows-like system to reboot on any   
   >> change.   
   >   
   > That maybe true, if all you know is something like C++. Just take a   
   > look at Smalltalk or Common Lisp -- both available for more than two   
   > decades and the knowledge they are based on is much older.   
      
   I'm very skeptical about dynamically typed languages in general and for OS   
   construction/interfacing in particular. But static vs. dynamic is a   
   to-death-beaten issue...   
      
   >> 4. Further, it is clear that the OS have to be distributed and   
   >> heterogenous. Here again there are lot of problems. [Clearly Java or C#   
   >> isn't the answer.]   
   >   
   > For this you should take a look on Oz/Mozart and Erlang (just to get   
   > an idea what's all possible and doable for quite some time).   
      
   The language with the most elaborated concurrency support is Ada 95. But   
   even there, as well as in coming Ada 2005, concurrency mechanisms aren't   
   fully type-integrated. For example, neither tasks nor protected object are   
   extensible. Rendezvous with multiple tasks are impossible. Protected   
   actions on multiple objects are as well. If effect, you cannot dispatch on   
   an entry point.   
      
   It is a difficult matter. Everything looks simple, as long message is the   
   only mechanism the language posses. But at some point, somebody asks - can   
   I have a protocol type and derive from it? [ This is what any OS would like   
   to have very much. ] And this opens a can of worms...   
      
   --   
   Regards,   
   Dmitry A. Kazakov   
   http://www.dmitry-kazakov.de   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|