Isn't it Ironic?

Dr. Dobb's Journal August 1997

Michael is editor-at-large for DDJ. He can be contacted at mswaine@cruzio.com.

The title is a reference to Alanis Morissette's song "Ironic." It's germane: Wrapped around and woven among this month's observations from Apple's Worldwide Developer's Conference are several song references and not a few ironies.

Regarding the song references: I'm not the only computer columnist who likes to drop musical references into his columns. Another is Dave Winer, whose "Amusing Rants from Dave Winer's Desktop" is the most insightful column currently being written about the Macintosh realm. Actually, Dave's net is flung wider than that, often picking up pearls from the rest of the computer ocean, even drifting into strange philosophical bays on occasion. Well, he writes a lot of these things, sometimes cranking them out daily for a long stretch before taking a break to do some crunch programming. Dave plays music while he writes and tries to write in the rhythm or the spirit of the music. He always quotes from the music he's playing. He has also written about this process. You can subscribe to his rants by visiting http://www.scripting.com/.

And there are others. Tony Bove and Cheryl Rhodes, who started Publish magazine and a number of other publications, must have used thousands of Beatles lyrics in their writings over the years. On the other hand, Steve Michel, who wrote the scripting column for MacWeek magazine for years, has never shown much interest in quoting Bob Dylan lyrics, despite the fact that he is a Dylan scholar and has published a Dylan concordance. Isn't it ironic.

Not the Doctor

My recent musings about when various programming paradigm shifts took place brought a lot of mail. The responses tended to be a little, well, embarrassing. I really wasn't fishing for compliments on behalf of the magazine.

Marshall DeBerry is one reader who attributes the C language's dominance largely to DDJ. "I don't really remember the exact years the articles started to appear, but I remember sensing the excitement in the letters to the editor column regarding this 'new' language. Although K & R's The C Programming Language had been out for a number of years, I think it was the availability of the language on PCs via the Tiny C package and the articles in DDJ that really got things moving. I sent away for the package, and had to rewrite the core I/O and parsing routines to get it to work on my Tandy Model II under TRSDOS 2.0."

'Scuze us while we blush. Not that I'm saying DDJ wasn't instrumental in introducing the C era in personal computer programming, as well as the Basic era some years earlier.

All of which begs the question -- What era are we in now?

You Oughta Know

Terry Suitor thinks we're smack in the middle of a paradigm shift. "After reading a huge thread comparing CORBA/RMI a couple of weeks ago in Usenet, I think we may actually be seeing the shift become reality during this quarter. Some people who thought Java was just hype may slowly be realizing that Java is here to stay. I know in my own office, a couple of hard-core C++ types have at least stopped dissing Java."

His own personal moment of light came, he says, "with Arthur van Hoff's article in DDJ."

This is getting embarrassing, guys.

Bill Rowley opined that the critical moment of the shift from C/C++ to Java:

"...occurred with the birth of $19.95 flat-rate Internet access. At least for me that's when it happened. Having spent 17-odd years as a Cobol and CICS programmer for companies that never had an interest in developing the skills of their employees or of embracing new technology, flat-rate Internet pricing opened up a whole new programming world to me. Just think, suddenly I (and every other frustrated and stagnating programmer with a PC and a modem) had access to all of the bleeding-edge technology that I had only been able to read about until then. Sure, the Internet has been around much longer than flat-rate access, but prior to that, Internet access was a mysterious, expensive proposition. This new, affordable access gave me what I perceived as a great opportunity -- the ability to download the Sun 1.0 JDK within the first week of its release, not years after it became an established (or dead) language. I rode the Java media-hype wave of information, free trial versions of Java IDEs, and instant Java user groups to the point where I have actually made money on Java."

You Learn

Taking another tack entirely, Kevin Kilzer wrote, "In your list of shifting paradigms, you missed one...when did industry commentators (like yourself) become pointers to topical URLs? With few exceptions, editorialists now always include a web site as a reference." Let's call it post-1990, shall we, Kev, and move on.

One unnamed reader was upset by what I said about the death of NT on PPC. "Microsoft really didn't have anything to do with the development effort besides selling the NT sources to Motorola. It seems that when they decided that the PPC Platform was going to be a threat to NT, they upped the cost of the source code so much that it was impractical for Mot to continue development. Microsoft did not kill NT, they overvalued it." And Elfnet Meme-Stream Director (I swear I don't make up these titles) Jason Keehn wrote to suggest that a better URL for anyone interested in Elfnet is http://elfi.com/elfnet.html.

'Nuff said.

All I Really Want

I am still looking for song parodies that play on computer themes. In a past column, I passed along excerpts from some of the parodies I had received. Then in May, I received this message from piano player and computer columnist Al Stevens: "I know you are interested in computer-related lyrics applied to existing songs, but how about some standard songs that are already related?"

Al suggested several (I imagine him copying these down from a playlist written on a wine-stained Ramada Inn cocktail napkin), including "The Object of my Affection," "Don't Sit Under the Apple Tree," "Just In Time," "Beyond the C," and "Doin' That Java Jive."

No doubt readers can think of many more examples.

The OpenStep Twostep

Apple held its latest Worldwide Developer's Conference (WWDC) in San Jose, May 13-16. I went expecting to see worried and hostile developers get more worried and hostile. The scenario I expected was this:

Oddly enough, that's not what happened. The first day of the conference focused more on the Mac OS than on Rhapsody, and throughout the conference there was as much coverage of Mac OS issues as of Rhapsody issues. Although I was initially skeptical (and I was not alone in my skepticism) about Apple's commitment to two operating systems, the company is definitely pursuing a dual-OS strategy for the foreseeable future, and it actually makes sense. Over the course of the week-long conference I heard logical, appropriate plans laid out for each OS (restrained for the Mac OS, ambitious for Rhapsody), and for the ways in which they will work together. And I heard ambitious delivery schedules: this summer for Mac OS 8, ditto for the developer release of Rhapsody, early '98 for the Premier release of Rhapsody.

Rhapsody

I found it useful, in trying to make sense of Apple's dual-OS strategy and product offerings, to define some terms. Maybe it'll be if some use to you, too.

Rhapsody is the name of the next-generation operating system Apple is developing based on OpenStep. The word "Rhapsody" alone means this end-user product, written for PowerPC hardware. Rhapsody for Intel is a separate product. There will also be separate client and server versions of Rhapsody, presumably for both processors, with the server version(s) incorporating server administration tools and the like.

Since OpenStep has been incorporated into Rhapsody, we can, I hope, forget the term OpenStep, which NeXT insisted be rendered OPENSTEP when referring to the product, and OpenStep when referring to the technology. OpenStep or OPENSTEP, one or the other, is an open object-oriented development environment based on Objective-C. (It's also a user environment, but that component is being blended with the Mac GUI.)

You've probably seen the block diagram for Rhapsody: the hardware level across the bottom, then the core OS, then a fat layer with a blue box on the left and a yellow box on the right, and on top the UI level (where the GUI blend appears). The diagram for Rhapsody for Intel looks the same except for a different hardware layer and the lack of a blue box.

Blue Box

Blue Box is that portion of Rhapsody in which Mac applications will run. It is not a Mac emulator, Apple insists, but the real thing -- a version of the Mac OS completely abstracted from the underlying hardware, and including a virtual ROM. It will even run 68K programs, via a 68K emulator (Apple does use the word emulator here). What it won't run are any programs that access hardware directly or use low-level system patches. In the Premier Release of Rhapsody, Blue Box will be Mac OS 8. Mac OS 8 has a number of features originally slated for Copland, the formerly planned replacement OS, developed within Apple and now quite dead.

There are a lot of user-interface tweaks, some really useful, but the really significant changes are the multithreaded, PPC native Finder and across the board improvements in performance and reliability. It's really too bad that this significant and laudatory OS revision won't get the kind of attention it deserves, the kind of attention System 7 got years ago. (Although Apple does expect to make a lot of noise about it at MacWorld Boston in August.)

The Apple programmers charged with maintaining and upgrading Blue Box have a no-visible-innovation charter: Their job is to keep Blue Box functionally and visually identical to the stand-alone Mac OS as it evolves.

If they do their job right, most people will be unaware of their existence.

The Mac OS will continue to evolve, and Apple has actually increased the number of people working on the OS. But Blue Box will track this evolution, not push it.

Yellow Box

Yellow Box is that part of Rhapsody based on OpenStep. It's a platform.

Developers will write applications for Yellow Box, Apple hopes. If they do, the applications will run on Apple and clone PowerPC machines running Rhapsody, of course, but they will also run on Wintel boxes. They will also run on Apple Macintoshes not running Rhapsody. Here's where the story starts getting complicated.

Yellow Box for Windows will be implemented on top of the Win32 API. Yellow Box applications running on Yellow Box for Windows will look like Windows 95 or NT applications. Yellow Box for MacOS will run on PowerPC hardware running the Mac OS, and the same Yellow Box applications will have the Macintosh look and feel running on Yellow Box for MacOS.

Some very good news is that Apple is not charging developers a licensing fee to deploy their Yellow Box applications on Intel machines. The upshot is, the user buys a competitively priced application that runs on Windows, looks like a Windows application, acts like a Windows application, but the same binary will also run on a Mac. And maybe later on, on other platforms.

Yellow Box is Apple's new development platform. Based on the solid and rich OpenStep development environment, it has some real advantages over Windows or Mac OS development today. The chief disadvantage is that you'll have to learn Objective C to take advantage of them.

The Two-OS Shuffle

Running two operating systems on the same machine is tricky, both for the application developer and for the user. Apple has been thinking about what it means, but not all the questions were answered at WWDC. Rhapsody users will be able to view the Blue Box as a window on the Yellow Box desktop, or have it take over the full screen, and will be able to toggle between these two modes.

Applications in the different Boxes will be able to communicate via AppleEvents and users will be able to cut and paste between Boxes, but drag-and-drop won't work across Boxes. I'm curious how you communicate that restriction to users. Files, disk drives, and other resources present other problems: What's available to whom when, and are unavailable resources nevertheless visible?

Nevertheless, I was impressed by the progress that had been made in blending the technologies. I'm inclined to believe that Apple may make some of these ambitious deadlines.

That sounds good, and developers at WWDC seemed generally favorable to Apple's plans. But there was also an ominous note to the show. It was long-time friend of DDJ Tom Pittman who pointed out the large stretches of visible carpet to me. Couldn't see that much carpet in past years. No wonder developers at the conference were so positive about Apple. These were the only ones left, the diehards.

Into the Recycling Bin

I checked in with some discussion groups after the conference to see what the hot issues were. There were three:

Objective: Not C

The Year 2000 crisis will demand a lot of programming effort to fix old code that wasn't written to handle post-millennial dates. Estimates of the total cost and the number of programming hours are all over the map, but it's not an exaggeration to say that Y2K reprogramming is shaping up to be larger than many industries.

It will also require special skills, and it is to be expected that those skills will command high monetary compensation. Some programmers are going to get rich off Y2K. It might have crossed your mind to ask, Gee, Mike, just what skills are needed for this work? Have I got them? And if not, where can I get them?

The answer would seem to be: Get with the hottest language of the next three years. Study COBOL.

Isn't it ironic.

What Blue Box Isn't

And speaking of technologies rising from the dead...

David S. Bennahum, moderator of the Community Memory list (http://memex .org/ community-memory.html), recently encouraged list contributors to share what they knew about emulators for old computer systems. He points out that you can now enjoy an Apple II emulator with a virtual 6502 instruction set, a whole emulated line of old Atari computers, Commodore emulators, an emulated BBC Micro, even a soft PDP-8, all running on living hardware like Pentium PCs, PowerMacs, and UNIX boxes. He pointed to http://emulation.net/ where there are downloadable emulators for Macintoshes. Some of the list contributors responded with their own sites: Bob Supnik of Digital Equipment Corp. has written emulators for the PDP-11 and other vintage computers, pointers to which can be found at ftp://ftp.digital.com/pub/DEC/sim/README.

This business of emulating old machines can get really arcane. I've seen proposals for constructing emulation chains: Can someone get a Foozis-100 running, because I have an emulator for the older BarTab 6400 machine that runs on the Foozis-100 series, and I know where I can get my hands on a Bazbox emulator that runs on the BarTab 6400, and I've heard of a Glitch-7070 emulator that ran on the Bazbox, and legend has it that there was a Uniwak 1000 emulator for the Glitch-7070, so if we load the BarTab 6400 emulator on the Foozis-100 and then...

Right.

At WWDC there was a demo of Choplifter, an Apple II game, running on GUS, an Apple II/GS emulator, which was running in the Blue Box on Rhapsody on a PowerPC. Is that ironic? Or just evidence that a company can lay off thousands of people and still have programmers with too much time on their hands?

Most of the subheads in this month's column are titles of songs from Alanis Morissette's debut CD, Jagged Little Pill. The others are from Ragged Little Rhapsody, an unreleased CD.

DDJ


Copyright © 1997, Dr. Dobb's Journal