January 4, 1998
From: Larry Peng
Subject: First impressions on 95/NT
This summary is concerned with the Yellow Box component of Apple Rhapsody Developers Release One (DR1) for PC Compatibles (DR1/Intel). I received my copy December 10, 1997. Yellow Box for Mac OS are due at a later date. Please pass along as you see appropriate.
There are actually some pictures in this report! They are taken from a presentation I gave at the 8700 Center Seminar on December 17, 1997.
It is the Yellow Box, based on OpenStep acquired from NeXT Computer, which makes Rhapsody unique from other operating environments. The Yellow Box is the component in the Rhapsody architecture which provides the ability for Rhapsody applications to be developed and deployed on various operating systems like the Mach, Mac OS, Windows 95, Windows NT (version 4), Solaris, and HP-UX. By developed and deployed I mean example cases like (not an exhaustive list):
*Develop on Macintosh, deploy on Macintosh and Windows 95/NT
*Develop on Windows 95/NT, deploy on Macintosh and Windows 95/NT
*Develop on Rhapsody/Mach, deploy on Macintosh and Windows 95/NT
*Develop on Macintosh or Windows 95/NT, deploy on Rhapsody/Mach
To date, there has been no announced ship date for Yellow Box for Mac OS. My read is that Apple will take care of Yellow Box for Win 95/NT first, and then finish porting Yellow Box to Mac OS. Subsequent ports to Solaris and HP-UX may follow. Note that OpenStep (precursor to Yellow Box) is already fully functional on Mach, Windows 95/NT, Solaris, and HP-UX; and Yellow Box is a direct superset of OpenStep. Thus if developers do not call routines unique to Yellow Box, they have wide deployment capability today. Apple says developers will have no fee licensing for the Yellow Box.
For the Yellow Box there is one CRITICAL point to understand. Your base operating system is the one that Yellow Box is installed on, whether it be Rhapsody BSD/Mach Unix, Mac OS, Windows 95/NT, Solaris, or HP-UX. A program created using Rhapsody tools appears to the user (and the host operating system) as just another application written for that platform. The program retains full functionality, but the user does not need to know that it was not created with tools which are not be specific to the given platform. Thus no sacrifices in program features needs to be made. In addition, the Yellow Box is compiled--programs are calling native code on a given platform.
This report deals with Yellow Box for Windows 95/NT, which allows Rhapsody applications to run on PC compatibles with Windows 95 or Windows NT 4. The total Yellow Box for Windows 95/NT package is a collection of developer tools, executables, and dynamic link libraries (DLL).
Yellow Box is installed on a home Sony PCV-120 machine (200 MHz Pentium MMX, 96 MB RAM, dual IDE buses, Adaptec SCSI and 3COM ethernet cards, 2 SCSI hard drives (<= 500 MB each), 1 IDE hard drive, 1 ATAPI CD-ROM, and 1 SCSI CD-ROM). This is the same machine on which I have Rhapsody DR1/Intel installed. Windows 95 (service release 2) is installed on a 1.5 GB IDE partition, and Windows NT 4 (service pack 3) is installed on a 1 GB IDE partition. Both of these IDE partitions, and the IDE partition that Rhapsody DR1/Intel is installed on, are on the same physical hard drive.
Installation, using either IDE or SCSI CD-ROM drives, was done in the way you do things on a PC, not terrible but could always be much more obvious. As of now, installing the Yellow Box for Windows NT requires administrator access. However, once installed the run-time (not development) libraries are available for all users.There are 3 installs possible, depending on whether you are a developer or end user.
*Developer--development tools plus software (e.g. DLL) to use Yellow Box. A typical install is 140 MB (34 MB manuals and demo applications, and 6 MB demo code).
*Deploy--software (e.g. DLL) to use Yellow Box. A typical install is 60MB (34 MB manuals and demo applications).
*Minimum--deploy if all applications have no user interface component. A typical install is 22 MB (4 MB manuals).
The Yellow Box is installed in a folder titled "Apple." It appears that the Yellow Box DLL are installed within this folder, rather than in the Windows 95/NT system folders. This would suggest that Windows DLL conflicts, while not eliminated, are controllable.
I installed Yellow Box for both Windows 95 and Windows NT. You do 2 complete installs, preferrably on different partitions. Due to huge differences between Windows 95 and Windows NT, files which have the same name are not interchangeable between the two systems. Using the Yellow Box for Windows 95 with Windows NT (or vice-versa) you get system hangs (reboot), or system collapse (blue screen of death in Windows NT-speak) needing major repairs or complete system reinstalls. This is a pervasive problem in the Windows world, and is NOT unique to Yellow Box.
Rhapsody applications which utilize the Yellow Box are Windows applications as far as Windows 95/NT is concerned. Therefore, stability is determined by Windows 95/NT. For me, Windows 95 can crash anytime. For Windows NT, I have not seen the blue screen of death much lately, but the system still has its idiosyncrasies--it will just hang for no obvious reason. So I have to try and call the Windows NT Task Manager to get going again, or reboot.
USER INTERFACE AND APPLICATIONS TRIED
Rhapsody applications utilizing the Yellow Box for Windows 95/NT adopt the look and feel of the Windows 95/NT. However, the program functionality is not changed, and the programs are not running in emulation either. This is in huge contrast to programs such as Microsoft Office 95 for Mac--Windows specific code being emulated on the Power Mac--thus the Power Mac version is relatively slow, and some program features do not carry over onto the Mac.
The demo applications tried are the same as those Apple provided with Rhapsody DR1/PPC and DR1/Intel (Stickies, Draw, Java Browser, etc.). The applications just worked. The only difference compared to the Rhapsody on Power Mac versions is that they looked and felt like Windows 95/NT applications. The programs have exactly the same code and features regardless of platform. The following figure shows the Draw program as it appears running on Windows 95/NT. Note that the Draw program was first developed using Rhapsody DR1 for Power Mac!
Development tools are the same as provided in Rhapsody DR1, along with the demo code. However, although the functionality is the same, one must realize that the look and feel is that of Windows. It is a perfect example of the Rhapsody's cross platform power. I can create the same demo code and exercises I could before, except I have to get used to the Windows way of doing things.
An example is shown in the next figure. This is a screen shot of Interface Builder running on Windows 95. Interface Builder is a programming tool used to build Rhapsody applications, and was originally written for the Rhapsody environment (running on Mach). The figure shows some simple program building in progress. Note that in the figure Interface Builder looks-and-feels like a Windows program, but the construction of menus (lower right) is Mac-like! So I am developing within Windows 95/NT, but creating programs that run on Windows 95/NT, Rhapsody, Mac OS, and Mach! I am not tied to writing explicitly for Windows 95/NT!
SIMPLE PROGRAMMING EXAMPLE
There is a developer learning curve to fully exploit the Yellow Box. But the return is worth it. Consider this example--taken from MacTech, November 1997, pp12-21.
You are asked to write a simple word processor that does the following:
* read/write rich text files
* full support for EPS, TIFF, JPEG, PICT, GIF etc graphic types
* full support of fonts
* support of full rulers with hanging indentation
* full support for printing, color, and faxing
* ability to save files in PostScript format with embedded fonts
* support ligatures, kerning, superscripts, justification, underlining...
* ability to drag out graphics, copy and paste contents (including font styles)
* has built-in spell checker
* application to run on Mach, Mac OS, Windows 95, and Windows NT
* application performance to scale appropriately for each platform
* files should be fully compatible across platforms
How does 13 lines of code, and about 20 minutes of work strike you??? I have the source code, and it just works. The next figure shows a screen shot of the program on Windows 95/NT. I originally entered and tested the code on Rhapsody DR1 on Power Mac, and the program looks and behaves like a Rhapsody program. Recompiling the exact same code while targeting the Wintel platform gives you the screen shot below.
MacTech Word Processing Program running on Windows 95/NT
You might compare this to a shot of Microsoft PowerPoint 97 for Windows 95/NT in the lower right portion of the next figure. As you can tell, the look-and-feel is essentially the same for both the Rhapsody Yellow Box program, and for PowerPoint. There are a couple of subtle differences--Rhapsody programs have the Services menu, and proportional scroll bars. Items like the PowerPoint tool bar are custom items added by the programmers, which I have not yet added to the Yellow Box program.
Since the user is running Windows 95/NT, the default networking procedures are governed by the trials and tribulations of Windows 95/NT.
Because the imaging and display model for Rhapsody applications is part of the Yellow Box, Rhapsody applications use Display PostScript while running on Windows--other Windows applications will use the default Windows imaging system.
This is another example of how Rhapsody applications retain their functionality, even when not running on the Rhapsody operating system. You are not making any significant compromises. By having the same imaging model, we avoid the irritating displacements of text and figures as we move to different hardware or different host operating systems.
However, multiple monitor support is still considered a Windows 95/NT issue. So in a nutshell, Mac OS machines will have the usual support for multiple monitors. Windows 95 and Windows NT may have multiple monitor support sometime in the future--Wintel says it can support more than one monitor in Windows 98, but right now it is still just marketing.
Yellow Box for Mac OS -- no announced ship time yet, probably by no later than the release of Rhapsody Unified.
Rhapsody Premiere--looking at February/March 1998--includes partial traditional Mac OS compatability (expect support for office productivity applications, perhaps more).
Rhapsody Unified--looking at September/October 1998--includes full traditional Mac OS compatability
Yellow Box for Windows 95/NT provides concrete evidence of Rhapsody being capable of true cross-platform development and deployment. It definitely shows that full-featured applications can be created and widely deployed without having to worry about standardization of hardware and operating systems. Combined with upcoming releases of Yellow Box on Mac OS (and probably Solaris and HP-UX), it provides a strong argument for retaining the ability to use hardware and software that is best for a given job, rather than settling on monolithic, buggy and mediocre systems from vendors who are not particularly interested in ease-of-use or customer needs. Contrary to perception, Yellow Box is already shipping as OpenStep, and is built on well-tested code--rather than as marketing vaporware and/or software which requires multiple sevice packs (bug fix packs) to be even semi-reliable. With the power and capabilities of the Yellow Box allowing us to build computing solutions that are best for us, the Rhapsody system should be given very serious consideration for use within the company on both the server and client levels.