Posted
by
pudge
on Wednesday September 11, 2002 @10:24AM
from the drink-the-kool-aid dept.

Etcetera writes "David K. Every (of MacKiDo fame) has written an interesting article at iGeek about Copland vs. NeXT and the decisions that Apple made back in '95-96. Although most agree that bringing Steve Jobs back was a Good Thing, a lot of cool Apple-invented technologies got left by the wayside without a fair shot at proving themselves once NeXT came in. Was it always the right call? Functions as a cautionary tale about management vs. engineering as well."

I worked with a Software Engineer who worked on OpenDoc, which was about the only good thing aside from QuickTime that Apple had put out in that era. Some of you might remember the demo of an ActiveX control running inside an OpenDoc container. When NeXT took over, they hacked OpenDoc to run within NeXT's ojbect model. The Steve (himself) just said no, NeXT's object model is better. That's when my friend left Apple. Can't say that I blame him. OpenDoc had a lot going for it.

OpenDoc was the first thing that came to my mind, too, when I saw the headline. However, I don't think we can only blame Apple/NeXT for killing OpenDoc. I was under the impression that MS did their usual embrace and extend to the concept. I remember a BYTE magazine article about the pros and cons of OpenDoc and OLE.

Perhaps this article [mackido.com] by David K. Every himself may shed some light on the issue.

Half the promise of OpenDoc was its proposed cross-platform functionality. When Novell failed to deliver on OpenDoc for the Windows platform and IBM deprecated OpenDoc for OS/2 (IBM deprecating OS/2 didn't help either), Apple was left as the only platform for OpenDoc.

Given a choice between OLE and COM on Windows (95% of the desktop market) and OpenDoc on MacOS (5% of the desktop market), most developers chose OLE and COM for their components.

Another thing my friend said was that (pre-NeXT) there was talk of putting OD inside QuickTime. That would've scored on the cross-platform target. QuickTime seemed to be more of a platform for interactive multimedia then, now it's mostly positioned as a movie player.

Was this OpenDoc-in-QT part of the massive cool rewrite of QT that was going down? A bunch of years back, Apple was rewriting QT, giving it hypercard functionality and a version of HyperTalk that was compiled to bytecode and with a lot more functionality. Of course, there were VMs for this language/system for Mac OS and Windows.

Bear in mind that Java was also hitting the scene around the same time OpenDoc was around. JavaBeans made the same sort of promises in terms of cross platform object models. There was even a project going on to bridge the two (host a bean in an OpenDoc component, or vice-versa). So there was a lot of noise about similar things from a lot of sides and OpenDoc never took off for whatever reason.

I'm always sad to see great original ideas like OpenDoc, Newton, AppleTalk, and HyperCard fail to achieve the kind of market they deserve, but at the same time one of the things I respect most about Jobs is that he's willing to pull the plug when there is a chance to innovate and play with a standard instead of against it. That's what's going to get Applet back in the game. As much as we're missing by having to do without all those great technologies, I think it's better to live and fight another day -- and deliver an elegant package with ZeroConf, BSD, OpenGL, TCP/IP, Java, and on and on and on....

As for Copland, Gershwin, et al., you couldn't get much closer to epiphany without being asked to come down to the front of the hall at the end of the sermon than you could hearing Wayne Meretsky talk about what was going to be in the system. But as good as Copland was going to be, Rhapsody shipped. Which also turns out to be a really important feature.

OpenDoc ruled. Unfortunately another problem was adoption by vendors. Vendors are always skittish about jumping from one architecture to the next (look at the big companies NOT making Cocoa apps for OSX yet). They're afraid they're going to get burned if the API goes away, exactly as OpenDoc did. Also QuickDraw GX (which also was too bad), among other famous systems.

OpenDoc worked on the "container" concept, so once you had an application that was a "container" app you could paste in OpenDoc parts and use them as part of the master document.

Far as I can remember, the only OpenDoc applications that even appeared were Cyberdog and Nisus Writer. It was a real shame about Nisus Writer too, since they expended so much energy on OpenDoc hoping to ride the wave and Apple pulled out the rug (they still don't even have an OSX version).

Imagine if it stuck though, OpenDoc graphing and charting applications you could paste into Nisus, drawing objects drawn in your favourite program still being editable by it, tables and indexers, oh well.

I saw that too - however, it's not a specification. It could probably be used as one, but a real spec would go into much more detail than these docs - like, for example, talking about which errors you need to check for and handle.

I must have been using different terms last time I searched, because *this* time, when I searched using "OpenDoc Specifications", I came up with this link: http://www.diffuse.org/oii/en/docstand.html#ODA [diffuse.org] which takes you to a reference talking about getting the specification.

Another good one about how a project evolves into a "death-march", but it's probably preaching to the choir here.

The tragedy is that those who most desperately need to learn the lesson presented here (that would be the uninformed, inflexible PHBs) will never read this kind of article, or if they do they will never realize that we're talking about you, here!It's just amazing how many technology "managers" cannot comprehend the silliness of mandating a schedule and a feature set. You might get it by then, but it will be a piece of #@%$.

Well there is a group of people who are reading this who can change this and that's chicken shit engineers. You don't have to sign up for unrealistic time frames on projects as long as you are willing to put a little presure on the customer something like:

Marketing guy: We need a project plan

IT guy: OK here it is

Marketing guy: Well this goes over 5 years I need it in 2 years

IT guy: 9 woman can't have a baby in 1 month. Cutting from 5 years to 2 years will introduce substantial risk, major feature reductions and large increases in total project costs. On the record I'm advise against that change.

Marketing guy: I'm tired of all this negative thinking from you tech guys. You can do it if you just believe in yourself, besides the company needs....

IT guy: I deal with realities not needs. However I'll accept any revisions to this project plan including revisions of dates as long as you sign off on this as being a mandate from marketing and not a joint plan. If you want a joint plan then we need to start having real discussions about what can really be accomplished at a reasonable cost.

In other words show some backbone. Marketing, doesn't actually give IT hard mandates on the record; rather IT guys try and avoid the confrontation with the marketing guys.

First off all you did a good deed. In real life most good deeds to not go unpunished. I got canned recently as well and got a job from the company I was riding hard. You'll be suprised how many people respect you for what you did.

Anyway they realize generally in about 6 months, not that they will ever call you up and admit but next time you see them (oh and they might bring you back to consult) you'll be able to tell. Anyway if its any consolation the guy who fired you has just taught all his employees to lie to him. From this day forward he never gets the truth about anything and his productivity hits the floor.

One of my great hopes for this country is the end of MBA running everything. I'd love to see the CEO of soup company be a guy who did soup his whole life and the CEO of a car company be a guy who either built or sold cars his whole life...

Finally, you might have wanted to mention where you live in your last line.

"(A common engineering practice is to take your best guess at how much time it will take, and then multiply that by 3)."

that way, you look like a miracle-worker =] (or so Scotty told LaForge)

Still, it would be an interesting universe had Be been chosen over NeXT. the Be APIs were super nice, but from what I heard they had a very hard time in larger projects. I think Gobe Productive was the largest app ever for BeOS. I used BeOS exclusively (when i had a peecee) for about a year, and I loved it. All the applications felt oddly 'light', I think from the quick responsiveness of it all.

All the applications felt oddly 'light', I think from the quick responsiveness of it all.

Using the word "light" is the perfect way to describe the BeOS. As a Mac user from way back in '85, as developer who was looking for a more powerful OS back in System 7 days and as beta tester of the BeOS I was really bummed when Apple went with NeXT instead of Be. I thought Be was a no brainer particuarily due to the fact that there already existed a program, similar to VMWare (called Sheep Saver???) for the BeOS that allowed it to run System 7 and the apps of the day within the BeOS. I remember how light and responsive the BeOS felt on my single processor Mac clone and how it absolutely screamed on a dual-processor BeBox.

(sigh)

Now I'm all bummed about what could have been. Don't get me wrong MacOS X is nice and I use it for a lot of different things but...

What I don't understand is why OS-X is so slow. I've got a 33MHz 68040 with 64MB that's more responsive than a 233MHz G3 with 160, even when the G3 isn't swapping (which it does often). According to my RC5-64 crackers, the G3 is 30 _times_ faster than the NeXT.Sure, there's more eye candy in OS-X, but the NeXT UI is cleaner, more clear to understand, and _easier_to_use_! People complain about OS-X's UI being "NeXTified", but the NeXT UI was just as clean as Platinum. Yes it wasn't as spacially oriented (no Desktop stock, and Icon view was always in 'grid' mode), but that sure seemed to work better for large networked filesystems. Besides, the 'shelf' at the top of browser windows would give you a place to keep shortcuts to different file(s)/folders.So where did the OS-X UI nightmare come from? Where's Keith Olfs's when we need him?:-)

160 is nowhere near enough for OSX you shouldn't even be trying it. For most things ram makes much more difference than processing power.

Anyway OSX is a 3D desktop, and essentially runs in 3D mode. Because the mac crowd is conservative Apple isn't taking full advantage of this fact graphically but you wouldn't have the same question if your desktop looked like screen shot of 3D OSX finder replacement [uiuc.edu]

I imagine in the next few years Apple will start taking advantage of the tracks they've laid down so far.

OS X, assuming you have enough RAM (start at about the 384MB mark) appears to be really, really CPU and bus bound. This isn't good for Macs, which have neither very fast busses nor CPUs.
Basically, it's the GUI. It's just doing so much stuff that you need a top of the line machine to get anything even approaching speed out of it - and even they get unresponsive without much going on. Maybe in a couple of years, when Apple's hardware has caught up with their software ambitions (we're basically seeing the same thing that happened with PCs in the early to mid 90s - the software being in front of the hardware curve) OS X won't be so slow to use.

I too loved the early versions of BeOS, they really flew on my PowerCenterPro 210.

Remember though, at the time BeOS had some gaping holes, such as printing. There was some amazing technology there, but Apple was much more strongly tied to print design than today (with the huge internet focus).

They'd likely have had much more work to do integrating an immature BeOS than it was with a very mature NeXT.

I understand that there are a couple of BeOS engineers at Apple now, let's hope we can get some of the very cool ideas that are now dead (replicants, instantaneous searching, semi-sane metadata, etc.).

You used to be able to download pre-alpha copies of Copland from Hotline back in 1997. I never had the hardware for it (think it was only one model that was bootable, like a Mac IIci or something). Same look and feel of System 7, with 3D icons, from the screenshots I saw.

You used to be able to download pre-alpha copies of Copland from Hotline back in 1997.

Although I've never even been in the same room as Copland, I've got a developer copy of Mac OS 8.7, which I believe to be Rhapsody just before it was merged with NeXT. I tried installing it on my Umax S-900 (currently running 10.1.5), and spent the following week getting my onboard SCSI busses functional again. Haven't tried since.

If anybody can tell me what machine will successfully boot that, I'd love to see it in action.

Although I've never even been in the same room as Copland, I've got a developer copy of Mac OS 8.7, which I believe to be Rhapsody just before it was merged with NeXT.

I had a copy of System 7.7 once, which more or less became OS 8 (not System 8, aka Copland). It had some weird features that I don't remember anymore, that never made it into OS 8. Mostly it just crashed:)

7.7 was Tempo. It was pretty cool. It used the Copland finder, which was a _much_ more fragile version of the Finder that showed up in Mac OS 8. Ah, those were the days. All the coolest stuff was on Hotline and the IRC. You're right, though: 7.7 did crash a lot. Mac OS 8, though, was very cool and very stable. I used one of the beta builds long after the final was released, I was so happy with it on my PowerBook Duo 2300c.

I forgot all about that name!:) I used to use the Appearance extension from Tempo with System 7.6 to get the Copland look, and sticky menus. There was a copy floating around that I hacked that had the trash in the can in color.

Tempo was the first system where the appearance themes worked. They were nifty. I never used anything other than Platinum, but it was great fun to show people hi-tech and gadget just to see their faces. Ah, what a pleasant period. Apple was blithely fiddling while the rest of the place burned and producing some irrelevant, but damned-fun stuff on the way.

I have the demo CD for System 8 (Copland not Mac OS 8). It demonstrates themes and other new features of Copland. I got a bunch of them for free from Apple Evangelist (Yes, there actually was a time when Apple sent you free promotional material anywhere in the world if you just asked for them). Perhaps I'll eBay it someday, might be worth something.

> I have the demo CD for System 8 (Copland not Mac > OS 8). It demonstrates themes and other new features > of Copland.

You want to see something cool? That demo CD for Mac OS 8 (with the corny music and overly-excited narration) runs under Mac OS X 10.2. That's backwards compatibility!

I ran it the other weekend, after I installed Jaguar. Boot up Classic and pop the disc in-- it's a laugh. That disc was vaporware of the highest order. It was clear that Copland was very unfinished, even in the demos. I thought that when Apple shipped that demo disc, it was really a sign of something bad going on with the project.

I like the idea of the folders as saved searches, but the rest of it is okay. The Themes that they show are painfully childish compared to Aqua.

I think what's interesting is if Apple had delivered on Copland, I don't think they would have guaranteed success, and I think they would have been worse off than with Mac OS X.

For one, for the average user, Copland looked like the regular Mac OS, so I don't think it was well differentiated from the Windows-look-alike. Aqua looks much different, and thus has the appearance of a next generation UI.

Second, the Unix underpinnings of Mac OS X are probably one of the biggest factors in its success. Look at all the Unix geeks that are buying into Mac OS X just because of the Unix-on-a-desktop capabilties. I don't think Copland would have brought that to the table.

I'm glad this article showed up here, I tried to post a reply on igeek when I saw it yesterday but it wouldn't let me for some reason. Anyway, Every has some good points, but also seems to have a strange hostility toward NeXT technologies which causes him to make some odd statements. Specifically this:

So Carbon on a new kernel (NuKernal) was done long before the rest of OSX was ready. It took years to get NeXTSTEP and Cocoa and the rest of the OS time to catch up

This is just absolutely false. The NeXT kernel (Mach/BSD) and Cocoa were ported very quickly. Apple bought NeXT at the end of 1996, the first Rhapsody developer release was ready less than a year later, and Mac OS X Server 1.0 shipped in early 1999. The reasons why the "real" Mac OS X took longer were that Apple had to implement Carbon for developers unwilling to convert to Cocoa, and write a brand new display system (Quartz) after Adobe dropped Display PostScript.

NeXT delivered on its promises, it's just that Apple's requirements changed. And it's also worth pointing out that Mac OS X is a far better system than what was envisioned for Copland. Aside from the much better adherence to standards, it is a much cleaner architecture. From what I remember of Copland's documentation, it had a weird form of partial memory protection where the entire GUI ran in a single process, so any app could take down all other UI apps, although server processes would be protected. The transition to a fully buzzword-compliant OS wasn't going to happen until Gershwin, and I seriously doubt that could have shipped by now.

The reasons why the "real" Mac OS X took longer were that Apple had to implement Carbon for developers unwilling to convert to Cocoa, and write a brand new display system (Quartz) after Adobe dropped Display PostScript.

Almost true. Adobe didn't drop support for Display PostScript, Apple decided they didn't want to pay a royalty to Adobe for every copy of the MacOS that would ship that used Display PostScript.

Ah, ye who know so much about me, explain more.
I left PowerSchool (not Apple), as we sold it to Apple for $62M. Pretty good mismanagement taking an company from 7 to 200+ employees, and from $1M to $62M in 2 years.
I chose not to work for a large organization (even if it is Apple), because I don't like the politics. This had already trended that way, and after a couple years of 70+ hour weeks it was time to go...
But I like how you can see this as Apple bashing (saying they could have succeeded either way), or me as Apple basher (because I have some problems with the quality on one project; WebObjects). Such is life: people see what they want to.

He certainly wrote well about some of the truisms inherent in the computer industry. Having been around for nearly two decades, I found it somewhat amusing.

IMO, he overestimated Apple's progress toward delivering a new OS when Jobs re-took the reins. At that time, a lot of MacOS internals were running against a 68K emulator because they had not even been ported to PPC. Hence, the initial "downgrade" to PCC models, where your apps actually ran slower. It wasn't until 8.6 (Jobs + ~400 days later) that they had a PPC native OS.

Here's a joke about the new CEO at a computer company.

On his first day at work, the new CEO crosses paths with the old one. Seems his predecessor needed extra time to clean out his desk. Feeling somewhat awkward, he blurts out a hello. The old guy responds with a smile, and says "I left you three letters in the bottom drawer. Use them when you need them."

The old CEO leaves. For the first quarter, the new CEO is just getting his hands around the reins. Sales continue to drop. Desperately preparing for the upcoming board meeting, trying to think of something good to say, he remembers the letters. He opens the first one which says:

Blame your predecessor.

Which flies fairly well. Rushing back to work, with his hands tightly grasping the reins, he seeks some new ways to improve sales. He is not successful. He doesn't even try to prepare for the board meeting, instead, reading the second letter which says:

Blame the economy.

Which flies, although not so well. He really thinks he knows how to sell this product now. Unfortunately, he doesn't realize in his six month stay, a completely different technology has started to serve his customer's needs in a much different way. Sales suck even worse, and it's time to grab that last letter, which reads:

This is just absolutely false. The NeXT kernel (Mach/BSD) and Cocoa were ported very quickly

But they had no value until they adapted to their market, which took all the time.
And actually they really weren't. The software compiled and ran, that doesn't mean they were ready to ship. What about drivers? What about Apps? Apple had to rewrite all the utilities and environments that ran on them to make them useful. WIth Carbon/Copland this would have been much easier. NeXT-Apple threw away things like QD3D, QDGX and so on and started over. The other apps would have run. I'm not saying that was the wrong choice: but it is what cost the time. So it wasn't really running (well) until Jaguar.

NeXT delivered on its promises, it's just that Apple's requirements changed.

Ummm, Apple was NeXT and was the one that changed the requirements.
But I tend to agree that NeXT could have delivered much sooner, if they wanted to kill themselves (since they were then Apple). But the plan was brain-dead from the start; and they either knew it, or should have known it, from day one.
As for why the full move wouldn't have been complete until Gershwin, that was because Apple management wouldn't let Copland team to Carbon and required 100% compatibility. (The point of the article).

This article is one big rant. I wish he had more information to back up his claims. The article just seemed to be overly bitter calling NeXT "liars" and claiming that the engineers were hit with unrealistic expectations.

Hey, I'm an engineer and I think it takes everyone on a project to make it fail. On successful projects you have only 10% of the people doing all of the work and fixing the other people's mistakes... most projects succeed in spite of bad management or bad subsystem X.

Mac OS was on a death march because of the fundamental underlying technologies and a culture that was stuck in only one way of doing things... and windows is on a similar death march. OS X takes technology from the UNIX way of thinking and from the NeXT way of thinking to make a platform that is a developers dream. I think this is what puts OS X beyond Windows and will eventually lead to new "killer apps" that will save Apple. I really doubt that if Apple had went with Copland so many alpha geeks would be flocking to Mac... I doubt slashdot would have added an Apple page or O'Reilly would have a macdevcenter.

Sorta. It is one big what if. There is some ranting at the ranters that claim there's only one true path to success. I've never bought that. Many paths can succeed. OS X was one. But I think Copland could have as well.

I wish he had more information to back up his claims. The article just seemed to be overly bitter calling NeXT "liars" and claiming that the engineers were hit with unrealistic expectations.

What would you like to prove my claims (what claims are in question)?
As for NeXT and liars. I called them marketers, and said I can't tell the difference. I have no doubt Apple people, Be people, or others would have done the same. Marketing is coloring the truth, and selective truths... in engineering that's lying.

I think it takes everyone on a project to make it fail.

I don't. I think one bad decision maker can drive a project into the ground.

I really doubt that if Apple had went with Copland so many alpha geeks would be flocking to Mac

Nice to you think so highly of yourself, and so low of everyone else. Hard to say, but you're probably right (in implication) that you get the attention of UNIX types by conformity. But sometimes change and challenge is good too. Would the world be a better place if we didn't have Be's and Apple's to try to challenge assumptions? I think we get to find out...

I would remind people that David, in my mind, is a Mac zealot. His old Mackido website was full of vitrole and over-advocacy. (Mind you, it was a great place to find a computer joke, but I took little of the site very seriously.)

As I mentioned in other topics, Mac OS 9 users are among the most stubborn to change their way of doing things on a Macintosh. That's understandable--the original Mac OS was easier to use than most operating systems and developed quite a fan following. This resistance to change, however, causes finger-pointing and blame-making over a matter that, now, isn't really a point of conversation anymore. I think David falls in this trap of "Apple's changed with OS X and I don't like anymore." I also give this problem a name: whining. I'm a Macintosh advocate by trade but I've never been fond of zealotry--its a blinding thing in helping a customer.

I disagree with David about his being "sick of hearing that Copland project failed because of engineering. From what I know of engineering and people inside of Apple, it was mostly because of bad management decisions inside of Apple." He makes the incorrect assumption that the technology was sound enough and needed only enough money and time to push it through. Apple creates the environment that R&D works in, true. But faulty engineering is faulty engineering. Steve Jobs likely killed many projects not only because he didn't find them practical but because they just plain didn't work or didn't follow the business plan. Seedless corn or instant water sounds like a cool idea, but a bad idea is a bad idea.

Apple nearly died because they didn't have a business plan. Does David want Apple to revive old projects at the cost of the company's existence? Makes no sense to me. I think David is grousing over spilled milk.

We were all uncertain about what became OS X, and, thanks to a strong business plan, focused R&D, and listening to customers and developers (things that Apple did very badly in the '90s), Apple has a sound product with a good future.

Zealotry accusations aside, I always felt that we should fix underlying problems and not superficial ones. The Mac dealt with many (as far as UI), and missed on others. Some saw me promoting the successes as ignoring the failures, even when I called the failures out too. Such is life.
I've developed for 20+ years, on many platforms (VAX, AOS/VS, UNIX, Mac, Windows, DOS, CP/M, and so on). I see strengths and weaknesses in all. But for users, nothing else has yet come close to a Mac.
As for my assumptions : Apple had the money to complete Copland, what they didn't have was time. The reason they ran out of time, was because they'd hyped and missed deliveries, and because they'd shot at the wrong target (100% compatibility). Carbon was much more reasonable than 100% compatibility. Many were saying it, and had said it for years. But they could change the target (or hit the impossible one they were told to shoot at).
And Jobs killed many bad projects, But he also killed many good ones, and didn't really descriminate. He provided a vision, which is better than no vision. But his vision was as biased (or more so) than the ones before it.
No I don't want Apple to go back. But I think we can learn from both the positives and negatives of Steve and the NeXT take-over. Some see that as "grousing", others see it as trying to learn or remember accurately. You can choose which...

As I remember the events of the summer of 1997, Apple would have fallen apart if Steve Jobs had not come on board. At the time, people were leaving Apple left and right. Scott McNealy suggested that Apple should abandon MacOS and start selling java based network computers. The pundits were suggesting that Apple should abandon all things Mac and sell PC clones.
I like OS X. I use it every day, but I have to wonder if Apple hadn't abandoned Copeland, if today I would be using an operating system more in the spirit of the original Macintosh. OS X feels like Unix with a bunch of pancake makeup on top. Instead of being simple like pre-X MacOS or BeOS, it hides its complexity from most of its users. For all the strength that OS X brings to the Mac platform, it brings along a fair amount of baggage too. It just doesn't feel quite right. There is something disharmonious about it. I'm having a bit of trouble explaining it, but I wonder if an OS built from the ground up for the Mac wouldn't have been better,

The best thing about Copland being dead is not having to always see people spell it as "Copeland" even when the correct spelling is right there before their very eyes! Aagggh! Sorry, rant over, back to work now. BTW, I never liked Copland anyway...the software, not the composer. I like the composer.

One of the nice things about Slashdot is that when you make a stupid spelling mistake, people invariably let you know. Thanks. As far as Copland, the vast majority of Mac users (you apparently being an exception) never had a chance to try it and form an opinion about it, seeing as it was never released. Maybe it would have excruciatingly awful. Most of us will never know.

I seriously doubt that if they had built a brand new OS just for the Mac that we would be where we are today. Because OS X is Unix I can compile and use all kinds of Unix software with a minimum of fuss, sysadmins are comfortable using it because it's familiar, geeks love it because its open, and it is getting praise and attention in all sorts of places it otherwise wouldn't have.

If the new Mac OS had been rebuilt from the ground up I don't think we would have as much of this, or possibly any of it at all. A ground up Mac OS would probably be proprietary, closed, and Apple would be left to do a lot of the heavy lifting when it came to software development.

I think that Apple has made a good tradeoff here. Sure, OS X does feel a little disharmonious in the interface, but the community, sysadmin, and software support are well worth it, IMHO.

Let's go back a little further. In the late 1970's and early 1980's, people implemented a vast array of techniques for component programming, object oriented programming, and user interfaces in languages and environments like Smalltalk and Lisp.

What Apple, NeXT, Sun, and Microsoft have done ever since has been to copy little aspects of those systems imperfectly. Systems like OpenDoc Objective-C were an attempt to bring some of the things that happen naturally and easily with Smalltalk and Lisp into a world dominated by C, C++, and multiple address spaces.

What you should really be crying about is that none of the Apple or Microsoft technologies ever actually took advantage of the object oriented programming technologies or development environments developed before the rise of the PC and instead condemned us to nearly two decades of awful IDEs, batch compilations, object marshalling, and pointer errors, as well as plenty of unnecessary work. We could have had something with the convenience of VisualBasic 2000 or HyperCard and the power and appearance of NeXTStep in the early 1980's if people had only listened back then. Now, these ideas are slowly being rediscovered and being hailed as great technical breakthroughs.

Apple did do a good job at making the Macintosh UI visually attractive and easy to use for casual users, both in pre-OSX and OSX. That's what they are good at, but it almost doesn't matter much what technology they are using--a set of kludgy toolboxes or a half-hearted Smalltalk clone based on C. So, don't cry over Copland/Gershwin, cry over the stuff that really could have happened but didn't.

There is nothing important that Smalltalk has, that Objective-C lacks.

In fact, Objective-C is superior to small talk for its given market: compiled applications that can be shipped in shrink wrapped form.

Call C++ a pale shadow of smalltalk and I agree with you, but don't knock Objective C. Its wonderful, and has no problems or poor aspects that from what I see.

There's a lot of whining about OS X and I just don't get it-- it is far and away the best OS I've ever worked with as a user, or developed for as a developer. Far better than Classic Mac OS, better than windows, better than Unix.

I think people want to complain about some idealized impossibly perfect idea of what something could be... but in terms of reality-- shipping products-- its the best there is right now, and well ahead of everything else out there.

Objective-C has garbage collection, in fact, it has the best implementation I've used so far.

When objects are autoreleased, they are GCed at the end of the event loop.

This is much better than, say, Java, where you can never predict when GC will occur (and I've spend countless hours trying to get a product to work even though it will randomly stop and check EVERYTHING IN MEMORY to see if it should be deleted.... when doing a large server with gigabytes of objects in memory this impact is a major PITA) With objective-C memory management is semi-automatic. A better solution than Java and FAR better than C/C++.

I don't know what you mean by "real exceptions" but basically, every languages has its differences and the person I was responding to was just wrong in saying that Objective-C is a pale ripoff of smalltalk.

Not all Java implementations have mark and sweep GC, which is the primitive form of GC of which you speak. However, there are still plenty of reasons to dislike Java beyond that.;)

ObjC also has a primitive form of GC, even more primitive than mark and sweep. The best GC you can probably get is a generational system, not surprisingly found in most (all?) current Smalltalk implemenations and good Common Lisp implemenations. You get the best of both worlds- unlike the GC in ObjC, you're not stuck looking over your sholder to deal with it's primitive form of GC (found also in Python still?) and unlike Java, it doesn't do one huge mark-and-sweep at any given time- it's always doing a little GC.

*You* were the one arguing that ObjC had the best implentation of GC available. I pointed out that ObjC's GC is good compared to Java's, but it still lacked. Having a poor GC is a weakness in Objective-C. If that isn't a signifigant enough of a weakness to you, why did you mention the Java/ObjC GC thing in the first place?

The issue of which GC algorithm is used isn't about language. Older Smalltalk implementations have mark-and-sweep GC like Java. A Smalltalk implementation *could* be done with the reference counting GC approach that, but I know of no Smalltalk implementations that settled on such a primitive form of GC- perhaps an older embedded VM?

While I agree with the assesment that if you want to use Smalltalk, use Smalltalk. But having a poor GC is still an aspect of ObjC that can cause problems and gobble up RAM. A generational GC could be added to a language that was otherwise just like ObjC. It would remove some of the rules and restrictions you have to deal with in ObjC now, but the language would mostly remain the same. ObjC isn't perfect, and it can stand to be improved upon.:)

Yes, in response to someone who was saying Objective C sucked because it didn't have garbage collection.

In my opinion, its the best memory management system I've used yet.

You haven't made your case that it is "poor". Java and Smalltalk are interpreted languages. Releasing memory as part of the event loop is the best I've worked with, and I'd hate to go back to Java for realtime work (I'd enjoy the work, but hate dealing with GC issues.)

I don't see objective C as "gobbling up memory"... especially when compared to Java (or smalltalk for that matter). Unless you have a memory leak, Objective C is far more memory efficient than java-- mostly because of VM overhead.

And certainly nobody has made the case that Objective C is a pale imitation of the state of OO from the 70s, as was the original claim I'm responding to.

Oh, you're right. I was so stupid. We should have shipped our product, knowing that it would periodically pause for 30 seconds and not return any web pages to the customers while it GCed the objects in memory. After all, eventually Moores law would have taken care of it, right?

Oh, and thanks for your advices that since "nobody" except for Apple is using Objective C, I should just use the industry standard, which would be what, C?

And what was I thinking appreciating Objective C when obviously the only reason I could like it is because Apple's using it. Stupid me, I haven't seen productivity gains over java, and I'm not writing an application that reads data off of Firewire, and since only Apple's using it, I won't be able to port my Mac Only product to Windows cause GCC doesn't exist for Windows, right?

And, on top of it, I apologize for whining "too slow, I want more control" -- which I seem to not remember saying when I said "Objective C is the best programming language I've found so far."

And I won't even be so stupid as to point out that Objective-C doesn't seem to have any serious deficiencies, needing correcting over the last 15 years because clearly I'm wrong-- I mean, obviously its still compiled rather than interpreted, and its just not smalltalk.

But I do think you need to clarify how applications like OmniWeb, OmniOutliner, OmniGraffle, and the Cocoa frameworks are hurting the Macintosh, after all the lower barriers to development allows those (and many more applications like them) to be viable with one or two programmers developing them, rather than the cadres it takes to develop a comparable App using carbon. Maybe you meant apple should keep Cocoa and make it Java only like WebObjects and then everyone can just write in Java-- since clearly its the only language people should be allowed to use-- after all, nobody needs "real time", first person shooters are over-rated, people don't really want to use their computers for entertainment, watching or editing movies, or encoding MP3s. After all, Office has been ported to Carbon, so its no wonder there are few jobs for programmers-- what possible need could there be for other applications?

And in being a compiled language, Objective-C lacks a handful of cool and handy dynamic features that Smalltalk has, but Obj-C doesn't.

It would be nice if Objective-C had blocks aka closures aka anonymous subs. Blocks are so very appropriate for a lot of tasks, and in Obj-C you're stuck doing them in the same crappy way you'd do them in C.

Yup, I am aware of this. And it's cool. But for developing on Mac OS X, it's not terribly relevant unfortunately. Heck, even outside of that, it's still not standard Obj-C and not part of the much of the ObjC compiler installations out there, most of which are most likely either GCC's ObjC or Apple's ObjC.

Along the same lines, you could also use Smalltalk/MT or Smalltalk/X, two implementations of Smalltalk that compile to native code. All of the power of Smalltalk's incredibly dynamic runtime sysetm with the speed of Objective-C. Yet, with blocks. But again, unfortunately, those two implementations don't make up a large percentage of Smalltalk installations out there.

But blocks for ObjC is interesting all the same, esp for those who have no idea what blocks are.:)

There is nothing important that Smalltalk has, that Objective-C lacks.

There is plenty that is crucial and that is missing from Objective-C: garbage collection, runtime safety, and well-defined reflection, for starters.

In fact, Objective-C is superior to small talk for its given market: compiled applications that can be shipped in shrink wrapped form.

The very concept of "application", as used on Mac OS X and Windows, implies a very sterile and limited idea of computation or computer usage. Applications are separate entities that require a lot of handholding and effort to talk to each other.

There's a lot of whining about OS X and I just don't get it-- it is far and away the best OS I've ever worked with as a user, or developed for as a developer. Far better than Classic Mac OS, better than windows, better than Unix.

The notion that one operating system is universally better than another is just unfounded and silly. OS X is good for many users and many common applications. But Linux is good for many other users and many other common applications. What is an asset of OS X in one application, like its window system, may be a liability in another. What may be heaven for one kind of developer may be a tedious mess for another, depending on the kind of software they are working on.

Even the somewhat kludgy tradeoffs embodied in MacOS, Carbon, Cocoa, and Objective-C (or X11, KDE, and Gnome, for that matter) have their place in the world. Like, with the original MacOS software, awful as it was technically, Apple could actually deliver an attractive machine at a reasonable price, and that's nothing to sneeze at. But please don't tell me that these systems represent the epitome of GUI echnology--that, I know, they aren't.

Oh really? As far as shipping systems, they are the epitome of GUI. There isn't much competition-- X windiws which is blatently crappy, Windows XP et. al,. which are poor copies of Mac OS X and Linux which is an even poorer copy of Windows. No, its the epitome of GUIs, that goes without there's not disputing that.

Unless, of course, you're one of those people who thinks Apple should ship a laptop with a 23 inch display, quad G4s running at 1GHz and 20 hours of battery life nad a price of only $250, to compete with the XBOX. Some people are just unreasonable.

Like I said, there's nothing important left out of Objective-C. All the things you mentioned are irrelevant. You, like the other guy, are complaining that its objectiveC and not smalltalk. If you want smalltalk, fine, use it, but don't expect everyone in the world to use small talk for every situation. Hell, all three of the things you mentioned are included in ObjectiveC.

As to your bashing compiled applications, well, I should have known. There's no arguing with you-- you want the laptop I described above. you see no reason why things shouldn't be perfectly the way you want, and I suspect you have no idea why they aren't.

This is a form of intolerance that is common on slashdot. There are a lot of people here who have some ideological world view and wish to insist that everything must fit it... and so they will ignore superior technology, or bash it, merely because it doesn't fit their purpose.

Most of the complaints about Mac OSX are that its not Windows.... yet these people are too stupid to realize that Windows is what they are actually advocating. Why is there not an outcry that Linux just has a ripped off windows UI instead of soemthing useful? Because the customer base for Linux is windows users who want to feel "cool".

I agree with your overall philosophy but not with some of your specific points.

You make the argument that Smalltalk and Lisp systems from the 70s were addressing the kinds of things that Microsoft and Apple have been dolling out in small doses over the years (inconsistently etc.) and I agree...

However, the deeper fact of the matter is Smalltalk wasn't and isn't a complete solution (and still aren't) and can't compete with, say, OS X, because it certainly doesn't provide:

* Further, they don't even really have tools like word processors, image editors, and other areas that normally fall in the "application" domain. I've seen simple web browsers and simple editors, but nothing on the order of functionality provided by most word processors. There is the argument that if you were to do these things properly object oriented they wouldn't look like Word anyways, but Smalltalk didn't/doesn't even do that.

* The same kinds of areas of work that are being heavily investigated in other languages are areas of heavy investigation and work in the platforms you mention, too: object distribution, published components and packages (Squeak is only now breaking out the single-image-single-system and allowing for modular ), persistence, etc.

* Performance of Smalltalk in the 80s was hardly acceptible on personal computers of the time. Apple and NeXT used the "compromised" (i.e. compiled, not interpreted, etc.) tech they did because they were running on 68K platforms with consumer hardware.

C++, Objective-C, Java, etc. are different answers to different questions. I don't necessarily agree with the questions asked, but they are solutions.

C++ is a great system-level programming language. It does a lot of things really well, though object-orientation isn't really one of them. Objective-C is a reasonable compromise for moving people from a C/Unix world to an OO world. Java is, well... an overarchitected and overmarkted approach to the same thing Smalltalk was attempting...

The problem is that the best system based on the principles established by PARC, etc. hasn't been built yet. Perhaps it could have if certain companies had displayed more guts and leadership -- but there were very distinct market forces acting against the progress of properly engineered, heavily researched, elegant technologies.

Component document models like OpenDoc was supposed to provide. Smalltalk-80 didn't have this, nor does Squeak

I would argue that component models are a solution to a problem created by dividing up the world into separate applications in the first place. Smalltalk doesn't have them because they don't make sense in that kind of environment.

Further, they don't even really have tools like word processors, image editors, and other areas that normally fall in the "application" domain. I've seen simple web browsers and simple editors, but nothing on the order of functionality provided by most word processors.

Yes, but the question is whether the partitioning of the world into "big word processor" and "big web browser" is the right one. We never really had much of a chance to find out. In part, that kind of structure wasn't even imposed by poor technical decisions, it was simply imposed by the way we packaged and sold software.

C++ is a great system-level programming language. It does a lot of things really well, though object-orientation isn't really one of them. Objective-C is a reasonable compromise for moving people from a C/Unix world to an OO world. Java is, well... an overarchitected and overmarkted approach to the same thing Smalltalk was attempting...

Yes, we are in agreement there.

The problem is that the best system based on the principles established by PARC, etc. hasn't been built yet. Perhaps it could have if certain companies had displayed more guts and leadership

Right. That's basically my point. Smalltalk-80 (or Squeak today) clearly does not represent anything most people would want to use for anything. But in the early 80's, Smalltalk-80 represented a genuninely different starting point for the evolution of GUIs and personal computing than MacOS, and I think a better starting point. (And I think at the time, it actually could have been competitive, since what it was competing against wasn't all that good technically either.) Smalltalk-80 could have evolved into something much better than we have today. We never got to find out where that path would have led.

As for Apple, my point is: yes, MacOSX is prettier and a little nicer to use simply because Apple does a reasonable job at making upscale computers. But if Apple had shipped Copland/Gershwin, that wouldn't be any different. Apple pays a bit more attention to quality than other vendors, but fundamentally, their products are no different from the prevailing paradigm in my opinion.

So, I don't lose any sleep over Copland/Gershwin--but some other possible paths that the industry didn't explore really strike me as missed opportunities.

In the early 1980's there was serious argument about using languages other than hand coded assembly. Performance was king. PCs were only as functional as they were because everything which hindered performance was thrown overboard:security, reliability, data integrity, hardware independence.... Companies like Microsoft, Borland, Lotus and Wordstar, WordPerfect were huge sellers because they got bad hardware to run moderately complex applications much faster than the compitition. People were running mass land approasal apps with thousands of entries, real time, in lotus (an applications specific quasi-gui) with 512K of ram on an 8mhz CPU.

In the late 1980's we were almost in a position to make the switch over to applications which were not tied so closely to hardware. Windows and OS/2 were developed and usable, MacOS has mature, x86 unixes were available; further where performance was needed most of those apps could boot to 32 bit DOS which took a lot of pressure off in terms of performance. But backwards compatability mattered at this point in a way it hadn't at the start of the decade. Many people forget that software was much more expensive then than it is today: a good word processor retailed for $495, a good spreadsheet another $495, a good database $595. Microsoft was still two years away from driving the prices down by 80+%. So this led to binary compatability being key and that meant complex emulations which mean C/C++/assembly....

Then around 91 or 92 there was a fire in Taiwan which cut world memory supplies by something like 60% for several years and drove memory prices way up. My 80368-40 had 20 megs of ram (ran windows 3.1 wonderfully); my Pentium-60 (first generation) had only 16 megs and that was expensive. We lost several years because memory prices stayed high; and CPU intensive but memory light apps dominated. OO did come of age; but because it used memory less effeciently full OO environments did not come of age.

Around the time the prices started to come down quest for a better OS went into full swing. Linux became popular with the tech crowd, OSX became the direction of Apple, Microsoft moved their corporate strategy to NT...

One I recall from early net days was a browser plug-in for viewing a web directory (Yahoo!?) as a 3D flythrough environment, like lots of other neat Apple demos it's long gone without a trace. Another still in MacOS 9 is the smart text handling - the ability to click on a text string and have an appropriate handler come up for it: web, address, phone number, etc. Or "summarizing" a selected stretch of text via Sherlock.

Even if the implementation is done with LDAP, PGP, and Sendmail now, I really wish they'd bring back those APIs for application code. The "digital signing" concept integrated into the API was better integrated than Apple File Security in Mac OS 9, and better than anything in OS X right now. Remember being able to verify a document's signiature from the Get Info window? The Keychain is the only concept that survived.

QuickDraw GX ( [apple.com] here [apple.com] or here [mactech.com]) was WAY ahead of its time. Although a lot of its features found their way into ATSUI [apple.com] with Unicode, QDGX still had soul. I still don't know of any program that can do all the really really fancy and obscure ligatures properly.

Probably my FAVORITE technology was/is Apple Guide [mactech.com]. There's nothing quite like a help system that draws coach marks on the screen when telling you how to perform a step. That plus hilighting proper menu options in red, and the fact that it wasn't glacially slow once it became PowerPC native, made it a really amazing conversion tool.

Balloon Help was quirky and fun. I don't really understand why they replaced something so cool with something as lame as Tooltips. =(

QuickDraw 3D [mactech.com] and Apple Data Detectors had some cool concepts too. Maybe we should get them to re-write Data Detectors using Perl regexps:)

If Apple would throw some weight behind Services, they'd show everyone what the ADD people were going for. Services, as implemented in NEXTSTEP, are possibly the coolest OS feature ever. Select a URL in Edit.app, open it with OmniWeb. Drag a PNG file into PasteUp.app and it displays properly because I have an image viewer program somewhere that knows how to display a PNG and chips in to help. Really amazing.

So that's where they got the name for the OS used in the series. I knew that the 'Navis' featured in the show where supposed to be futuristic Macs, but all this time I thought the 'Copland OS' was a stab at Microsoft.

The Motorola was because they could not get a new 68K chip fast enough

Yup, old Mot was having cpu performance problems even back then. NeXT was apparently working on a dual proccie 88K machine to solve their performance woes (though the turbo cube with NeXT Dimension rocked at the time).

OpenStep was running on both SPAC and HPPA before Apple bought NeXT

And it was also running on Intel, and they didn't "drop it". I think it was quite obvious that Sun and HP just wanted to keep tabs on the "cool" NeXTStep technology. They saw that NeXT was far ahead as far as having a unified os/development environment, and they wanted to be able to take advantage if it caught on.

On a side note, NeXT sort of "borrowed" a bit of tech from Sun when they chose to use Display Postscript, since Sun had used it for their NeWS (hmmm, notice a similarity in capitalization ?) windowing system back in the early SunOS 4 days).

They were pretty close, but AFAIK Sun started working on NeWS in 85 and Jobs left Apple to create NeXT in 86. I know that I personally remember seeing Sun's running NeWS before I ever even heard of NeXT, which of course means nothing, but there you go:)

The author seems to assert that a fantasy completed Copland and OpenStep would be of equal value. But imagine if Apple had actually shipped Copland. What would Apple have had? It might not have crashed as much, but it would have been just as obscure.

NeXT brought Apple Unix roots. This has completely changed the market perception of Apple. Folks and companies who never would have considered Apple are now testing the waters.

It may have come about because of confused decision making, but thank goodness it came about.

NeXT brought Apple Unix roots. This has completely changed the market perception of Apple. Folks and companies who never would have considered Apple are now testing the waters.

I wholeheartedly agree with this.

I've been a staunch Mac user/advocate for about 7 or 8 years. I first started mucking around with linux in 96-97? and later moved on the Free/OpenBSD. I eventually I got hooked on the UNIX thing and became regular command line jockey and would always have a a few ssh sessions open on my mac at any point in time. I probably would have lost some interest in the Mac if they wouldn't have gone the NeXT/UNIX route. first I started playing with apache and FTP, then BIND, then sendmail, then samba, now apache/php/postgres/oracle. Odds are I wouldn't have been able to run those on whatever Copland/Gershwin would have produced. just like you can't usually run that stuff on OS 7/8/9. The OS is usuall just a bit too strange to make porting very easy. I don't think I would have dropped the Mac in lieu of windows to occasionally run some commericial software but I also don't think I'd be as excited about the OS/hardware as I am now with my Powerbook and OS X and it's ability to easily(relatively speaking) compile/run just about any popular UNIX app/server in addition to all the commercial wares. So if a really staunch Mac supporter would have possibly lost some interest, I seriously doubt apple would have seen all the interest from potential Linux/UNIX "switchers" checking to see if the grass is greener on the other side of the fence.

The Mac without the Unix underpinnings would still be relegated as "toy" OS and its marketshare would be declining rather than climbing (or at least stagnating).

Unix gave the Mac credibility from some key market segments. It gave the Mac mindshare. If we chirped about OS 9 having preemtive multitasking, people would've said "about time" and rightly so. As it stands now, the Mac is now buzzword compliant and, more importantly, it has the time tested core of Unix and all of its familiar tools that scientists and sysadmins love.

I'm probably one of the few who is more so interested in a good OS than one that is "buzzword compliant." It's true that I'd much rather have a Unix-based OS than something like the kernel in OS 9, more than both of those, I'd much prefer a truly modern OS. Unix is stale, its ideas are very much based in the 60s way of doing things. Not that anything is wrong per se about that- if it works and you don't mind it, use it. But I expect more of a computer and of an OS, and calling Mac OS X "modern" is a lie.

Hell, even BeOS, which didn't break the status quo much at all is at least a step in the right direction.

If I could, I'd ditch these Unix machines for the chance to run a real OS, a truly scriptable OS, an OS with no flat files- just objects. It would make data interchance so much easier. Oh well!

A lot of the linked essay is pure opinion on the part of the writer. It is decently written, and raises some good points however.

Most frustrating part:

In truth, at the time of the buyout, Apple was closer to delivering something usable than NeXT was, but Apple management was too stupid to realize it.

Apparently the author is too stupid to realize Apple was sinking. Fast. It took a major acquisition to prove to the board and shareholders that positive steps were being taken towards updating what was then a very unstable, inefficient Mac OS.

As a Mac user since the early 1990's, I can honestly say that the 2nd-generation Power Macs (the PCI ones like the 7200/7500/8500), in the System 7.5.2 - to 8.0 era, were horrendously crashy and pricey. (I still used them because the Windows UI pissed me off, but I was beginning to envy my Wintel friends every time my 7200/75 locked up)

OS 9, the iMac, the legacy-free towers were all great products which had little to do with the NeXT team. While it's likely true that Apple's own engineers bailed themselves out of the mess they had gotten into under Sculley's leadership, it was too little too late in the eyes of shareholders and consumers.

In short: if they couldn't demonstrate that they were going to leapfrog Windows in terms of stability, Apple was dead in the water. Apple's own engineers likely had lots of credibility with Apple management, but that was not enough. Even if Copland was only 6 months from completion, Apple was in grave danger, and was wise to purchase a proven technology. It may be unfortunate that business success is a necessary evil in the development of software, but I wouldn't go calling Apple's management stupid. They bit down and did what had to be done.

Apparently the author is too stupid to realize Apple was sinking. Fast.

Apple was sinking in perception and marketplace. We're talking technology here (there). The point is that if Apple had just dropped the 100% compatibility thing, they would have had Carbon on NuKernal, long before NeXT could deliver OSX. I get the marketing issues, do you get the engineering ones? Carbon was easy (relatively) it was 100% compatibility that was killing the project...

Yes I do. "stupid" is a harsh word, which is why I used it - just as the author did to describe Apple mgmt.

Even if Apple had an OS in the wings that could make monkeys fly out of my butt, it was simply too late for it. Sometimes you have to sell your soul - and put marketing ahead of technology - so that you'll at least have a company with the means to offer it!

I too lament the passing of technologies like OpenDoc, Agents, the classic finder that would have been virtually identical to Copland's - but unfortunately it had to go just for Apple to remain afloat. You are right in that it has to do with perception rather than quality of technology. It sucks but Apple made the right decision.

A rumor I heard Way Back In The Day(TM) was that the operating system after Gershwin (OS 10!) was supposedly code named "Zorn", a reference to the incredible downtown NYC avant-garde saxophonist John Zorn. There is essentially no known information about the vaporware OS, and given the state of Copland and Gershwin it's no wonder -- but I still wonder if there's any truth to this rumor. Anyone know anything about this?

I worked for Apple in the mid-nineties, when the PPC was new. I watched the entire (almost) death-spiral with particular interest.

I think the article is good, but it is only half the story. Apple is, and always has been, a hardware company. The thing that really screwed Apple during the Gil Amelio years was a total lack of hardware engineering. Apple tried to become a "beige box" company, and tried to have a solution for every problem. It just wouldn't work.

When Steve Jobs came back to the company, there was something like 85 SKUs for hardware systems. For those who aren't familar with marketing/retail, that's a lot. It wasn't like "You can have a 7200 with X Y or Z memory", it was "You can have a 7200 with 16MB, or you can have a 7200 with 32MB or you can have a 7200 with 64MB" and the vendor would have to stock all three. Impossible.

Plus, none of the hardware was exciting. People just plain didn't want to own it. It was like, sure, I can get a beige box that runs 7.5.2, crashes all the time, and has only Word 6 (god, what an abomination), or I can spend half as much, build my own Wintel, and get the newest Office.

The main thing the reintroduction of Steve Jobs did for Apple was put a single vision back in charge of both hardware and software. Even if Copland was further along than NeXT, it was hopelessly mired in a hardware development cycle that was just flawed. One of the main problems Copland faced was not only the need for backward compatibility of software, but the need to support 85 different configurations of non-industry-standard hardware. Impossible. Anyone remember the "Enablers"? God, what a mess.

One of Job's most controversial moves, and perhaps his smartest, was to draw a hard line in the sand at the G3, a processor that was barely even shipping when he announced the spec. Thus, he promised hardware compatibility only back to the currently brand-spanking new machines, guaranteeing that, at the end of a 3-5 year development cycle, the OS would only have to support hardware 3-5 years old. Man, did people scream and moan ("But I just bought an 8600/120!"), but now Apple is back where it needs to be. One of the biggest complaints over Win2K was its trouble with older hardware. MS was able to make Win2K fly by (1) not pitching it to home users, who were more likely to have funky sound cards, and (2) providing a lot of expensive support to hardware manufacturers to write compatible drivers in time for XP.

One pre-Jobs hardware move that Apple took that is now reaping benefits was to eschew its own good but expensive standards for adequate but cheap industry standard. Internal SCSI 4X CD Roms gave way to ATAPI; NuBUS gave way to PCI; etc. This made it even easier for the OS developers to support hardware.

Anyway, in order to understand the whole Apple picture, you have to consider the wretched state the hardware side was in in 1996, and realize that, even if no one bought the cube, they have come a really long way - and that is what made OSX possible.

For those of who weren't programming Macs back in the Day (remember APDA?), Apple had an award-winning quarterly technical journal called "develop" which had lots of neat articles in it with a fun and offbeat tone. Sort of like O'Reilly and Associates has now. They stopped putting it out in '97 amid all the hemoraging, but all the issues are available here [mactech.com].

After reading Mr. Every article all I can say is WOW. Its amazing to see how someone can look at something that happened, like the Apple situation in the mid 90s, and come away with a totally skewed view. I don't even know where to start with the bad information or misconceptions. I will however put forth one piece of information about copland that I think is germaine to this discussion. Applications in Copland, by default, only had cooperative multitasking. They could start tasks that were preemptive but those tasks could not interact with the GUI and were limited to certain parts of the API. Full preemptive multitasking was not to come to the macos until Gershwin. All I can say is "Thank God NeXT came along.

The reason that it had semi-cooperative tasking (actually engine was preemptive, UI thread was cooperative) was because it had to have 100% compatibility. If you took out that requirement, then you had Carbon/Gershwin. That was the point.

...such a pity. But then, Every's always been a blind zealot. I went through my own blind-zealot phase, and everything I learned, I learned from him. No joke; I usedto visit his site every day looking for new articles. It was only later that I realized just how inaccurate he was. Incidentally, I'm still a Mac user. I'm just not blind about it anymore, and no longer have the "Not Invented at Apple Before 1995 = BAD" mentality that Every seems to maintain.

He's also a massive OS9 whiner, often deriding things in OSX just because they're not the exact same thing as they were in OS9. But let's look deeper into this. The big inaccuracy with this article is the assertion that Apple had Carbon working on NuKernel (spelled with an e, not an a) many years ago. False. Copland, rather like OSX, had a completely new API (Taligent), and used a virtual machine known as the Compatibility Box to run System 7 apps. Copland had no notion of anything like Carbon.