Обсуждение вопросов программирования и сопровождения операционных систем *NIX

November 3, 2009

Norstad-3. Rhapsody/Yellow Box

Filed under: Uncategorized — admin @ 10:54 pm

              1997 Apple Worldwide Developers Conference (WWDC)

                              NUMUG Trip Report
                            A Rhapsodic Adventure
                                John Norstad
                                May 23, 1997

Yellow Box

The yellow box is a major component of Apple’s new operating system. It is
based on OpenStep technology from NeXT.

OpenStep is a second generation object-oriented system. It’s advanced,
mature, and very rich. It has three components:

   * The Foundation Kit, a collection of object classes which provide basic
     collection classes, a semiautomatic garbage-collection memory
     management system, abstracted interfaces for underlying operating
     system services like threads, and other low-level services for
     programmers.
   * The Application Kit, a collection of object classes which programs use
     to present their user interfaces and which users use to manipulate and
     control those interfaces.
   * A display PostScript graphics engine.

As an example of OpenStep’s richness, I’ll compare the Mac OS "styled
TextEdit" package to OpenStep’s text object. Styled TextEdit is used on the
Mac to display and manipulate wrapped paragraphs of text. It can handle
fonts and styles, but is limited to a maximum of 32K of text. In conjunction
with WorldScript, it can be coerced into doing non-US English and non-Roman
languages. It was originally designed for simple small text entry fields in
dialogs, but has been extended by Apple and abused by programmers for more
complicated uses for years. It is a nightmarish labyrinth of complexity for
programmers, with hacks layered on hacks layered on hacks. NeXT’s text
object is much richer and much, much easier to work with. It supports tabs,
rulers, kerning, the Unicode character set, and has no restrictions on size.

One of the most impressive demos at the conference involved an extension of
the text object (a subclass) which does HTML. This new HTML-aware class will
be part of the yellow box version of OpenStep. The object was used to build
a fully functional web browser in Interface Builder in only a few minutes,
without having to write a single line of code! The browser had a text field
where you could type URLs, forward and backward arrows for navigation, and
the usual large scrolling field to display the web page.

Steve Jobs has a favorite story about OpenStep which he repeated in his
fireside chat. I’ll paraphrase it here. Software development is about
managing complexity. We build our software in layers that become
increasingly complex as layers are added. Experience shows that we can only
build about four layers high before the complexity becomes overwhelming and
our programs collapse of their own weight. As analyzed in the well-known
book "The Mythical Man-Month", adding more programmers to such a complex
project actually hurts more than it helps. The human mind just doesn’t seem
capable of building higher than about four layers of complexity. Jobs likes
to compare this to constructing a building. With other systems, enough
foundation is provided by the system so that it is like starting your
building at the fourth floor. By adding your own four floors (layers of
complexity), you can build up to an eight story building. Because OpenStep,
the Objective-C programming language, and the NeXT development tools are so
rich, with OpenStep you start at the 23rd floor, and can thus build a 27
story skyscraper!

This Jobs story is typically extreme, but there’s a serious element of
truth here. OpenStep is indeed superior to the competition, and it does
significantly improve productivity and the "height" of the software we can
produce. Every programmer I’ve met who has used OpenStep has confirmed that
they are much more productive using OpenStep than with any other
environment. Many of them have used other current popular industry object
frameworks like Apple’s MacApp, Metrowerk’s PowerPlant, and Microsoft’s MFC.
The unanimous opinion is that OpenStep is much better than any of them.
I look forward to finding out for myself!

In addition to its OpenStep foundation, the yellow box includes the
following advanced technologies from NeXT:

   * Multi-user system with security. Rhapsody can be used as a single-user
     system much like today’s Mac OS, or you can have multiple UNIX
     usernames and passwords with UNIX file security. Yes, Virginia, you’ll
     be able to telnet to your Rhapsody box!
   * Display Postscript. True "what you see is what you get". This is very
     important in the publishing and graphics industries.
   * PDO = Portable Distributed Objects. A state-of-the-art system for
     distributed computing. Objects running in separate processes on
     separate computers can send each other messages almost as effortlessly
     as they do when they are in the same program. One of the NeXT engineers
     who designed and implemented PDO presented at the conference sessions.
     I’m quite impressed by PDO.
   * EOF = Enterprise Object Framework. EOF provides an object interface to
     all of the major commercial database products. It’s important in the
     enterprise market.
   * WebObjects. This is a system for rapid development of web pages, CGI
     gateways, and web server plug-ins.

The yellow box will also incorporate several major technologies from Apple:

   * The QuickTime media layer (QTML): QuickTime, QuickDraw/3D, and
     QuickTime/VR.
   * QuickDraw GX typography.
   * ColorSync.
   * Scripting. Apple hasn’t decided exactly what the scripting language
     will look like (AppleScript or otherwise), but it has promised Apple
     events and a ubiquitous scripting system integrated into the OpenStep
     classes.
   * V-TWIN search engine.

Applications running in the yellow box enjoy the full benefits of all the
services provided by the Mach kernel, including preemptive multitasking and
protected memory. We’ll talk about this more later when we go into more
detail about the core OS.


Vladimir Butenko
Stalker Software, Inc.

Links

1 Comment »

  1.               1997 Apple Worldwide Developers Conference (WWDC)

                                  NUMUG Trip Report
                                A Rhapsodic Adventure
                                    John Norstad
                                    May 23, 1997

    Yellow Box

    The yellow box is a major component of Apple’s new operating system. It is
    based on OpenStep technology from NeXT.

    OpenStep is a second generation object-oriented system. It’s advanced,
    mature, and very rich. It has three components:

       * The Foundation Kit, a collection of object classes which provide basic
         collection classes, a semiautomatic garbage-collection memory
         management system, abstracted interfaces for underlying operating
         system services like threads, and other low-level services for
         programmers.
       * The Application Kit, a collection of object classes which programs use
         to present their user interfaces and which users use to manipulate and
         control those interfaces.
       * A display PostScript graphics engine.

    As an example of OpenStep’s richness, I’ll compare the Mac OS "styled
    TextEdit" package to OpenStep’s text object. Styled TextEdit is used on the
    Mac to display and manipulate wrapped paragraphs of text. It can handle
    fonts and styles, but is limited to a maximum of 32K of text. In conjunction
    with WorldScript, it can be coerced into doing non-US English and non-Roman
    languages. It was originally designed for simple small text entry fields in
    dialogs, but has been extended by Apple and abused by programmers for more
    complicated uses for years. It is a nightmarish labyrinth of complexity for
    programmers, with hacks layered on hacks layered on hacks. NeXT’s text
    object is much richer and much, much easier to work with. It supports tabs,
    rulers, kerning, the Unicode character set, and has no restrictions on size.

    One of the most impressive demos at the conference involved an extension of
    the text object (a subclass) which does HTML. This new HTML-aware class will
    be part of the yellow box version of OpenStep. The object was used to build
    a fully functional web browser in Interface Builder in only a few minutes,
    without having to write a single line of code! The browser had a text field
    where you could type URLs, forward and backward arrows for navigation, and
    the usual large scrolling field to display the web page.

    Steve Jobs has a favorite story about OpenStep which he repeated in his
    fireside chat. I’ll paraphrase it here. Software development is about
    managing complexity. We build our software in layers that become
    increasingly complex as layers are added. Experience shows that we can only
    build about four layers high before the complexity becomes overwhelming and
    our programs collapse of their own weight. As analyzed in the well-known
    book "The Mythical Man-Month", adding more programmers to such a complex
    project actually hurts more than it helps. The human mind just doesn’t seem
    capable of building higher than about four layers of complexity. Jobs likes
    to compare this to constructing a building. With other systems, enough
    foundation is provided by the system so that it is like starting your
    building at the fourth floor. By adding your own four floors (layers of
    complexity), you can build up to an eight story building. Because OpenStep,
    the Objective-C programming language, and the NeXT development tools are so
    rich, with OpenStep you start at the 23rd floor, and can thus build a 27
    story skyscraper!

    This Jobs story is typically extreme, but there’s a serious element of
    truth here. OpenStep is indeed superior to the competition, and it does
    significantly improve productivity and the "height" of the software we can
    produce. Every programmer I’ve met who has used OpenStep has confirmed that
    they are much more productive using OpenStep than with any other
    environment. Many of them have used other current popular industry object
    frameworks like Apple’s MacApp, Metrowerk’s PowerPlant, and Microsoft’s MFC.
    The unanimous opinion is that OpenStep is much better than any of them.
    I look forward to finding out for myself!

    In addition to its OpenStep foundation, the yellow box includes the
    following advanced technologies from NeXT:

       * Multi-user system with security. Rhapsody can be used as a single-user
         system much like today’s Mac OS, or you can have multiple UNIX
         usernames and passwords with UNIX file security. Yes, Virginia, you’ll
         be able to telnet to your Rhapsody box!
       * Display Postscript. True "what you see is what you get". This is very
         important in the publishing and graphics industries.
       * PDO = Portable Distributed Objects. A state-of-the-art system for
         distributed computing. Objects running in separate processes on
         separate computers can send each other messages almost as effortlessly
         as they do when they are in the same program. One of the NeXT engineers
         who designed and implemented PDO presented at the conference sessions.
         I’m quite impressed by PDO.
       * EOF = Enterprise Object Framework. EOF provides an object interface to
         all of the major commercial database products. It’s important in the
         enterprise market.
       * WebObjects. This is a system for rapid development of web pages, CGI
         gateways, and web server plug-ins.

    The yellow box will also incorporate several major technologies from Apple:

       * The QuickTime media layer (QTML): QuickTime, QuickDraw/3D, and
         QuickTime/VR.
       * QuickDraw GX typography.
       * ColorSync.
       * Scripting. Apple hasn’t decided exactly what the scripting language
         will look like (AppleScript or otherwise), but it has promised Apple
         events and a ubiquitous scripting system integrated into the OpenStep
         classes.
       * V-TWIN search engine.

    Applications running in the yellow box enjoy the full benefits of all the
    services provided by the Mach kernel, including preemptive multitasking and
    protected memory. We’ll talk about this more later when we go into more
    detail about the core OS.


    Vladimir Butenko
    Stalker Software, Inc.

    Comment by admin — November 3, 2009 @ 10:54 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Powered by WordPress