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
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