Of Mice and Menus
Monday, June 3, 1996 by Dave Winer.
Welcome to the software business, where perception isn't what it used to be. Now we're doing perceived perception! Yow. Wow. Oh are they cool? Well, no, they're just perceived to be cool. Hmmm. OK. What's cool? Someone or something that's perceived to be perceived to be cool.
How many mirrors do you use? The more the merrier. Or, two is just enough. There's strength in numbers. No one likes to be out there all alone. I will believe anything that is doubly-perceived. Ye-hi!
Whole markets are run this way. Analysts are quoted about what other analysts will think. "Oh I know this is wrong, but the market won't get it, so it's right." What foolishness!
Why not run industry publications like a daily newspaper? Aren't we responsible for basing our stories on facts, on current information, field reporting, best efforts, instead of just reporting perceptions? Don't editors have a responsibility to find stories that matter instead of reporting on press conferences, alliances and developer's conferences? In the end, do vast proclamations amount to anything? Haven't we learned this lesson often enough?
MacWEEK had a juicy think piece a few months back where someone said that it wasn't just that some product was stagnating, or that it was perceived to be stagnating. The problem (and they quoted him!) is that the perception is that they were perceived to be stagnant. Ay yi yi!
Take a deep breath.
We should find a realistic way to keep score in this business, a way of measuring the approximate distance between the pedal and the metal, and leave worries about perception to politicians.
In the software business it all comes down to lines of text flowing thru compilers, producing stuff that people can run on their computers. Try lying to a compiler someday. You won't get very far! So a story that's built on lies will have trouble producing software that supports the lies. That's one reason why it's more productive longterm to start hyping a product as it starts shipping instead of before. You'll have to correct yourself less often. It's also less confusing. The perception is that the product really does what you say it does.
On the other hand, it's perfectly reasonable for this to be a totally hype oriented business because we don't sell anything tangible. That's becoming more and more true. In the old days you filled a box with paper and disks, put shrinkwrap around it and moved it around the world. People felt they were buying something. But the truth is that they were buying a stream of ones and zeros produced by a compiler, processing text written by a geek in a dark room, who, by the way, probably doesn't understand or agree with the hype surrounding the product.
Remember General Magic? Never was there a purer example of this disconnection. Andy Hertzfeld, Magic's lead developer, was quoted on page 1 of the Wall Street Journal calling President Marc Porat a snake oil salesman. (A great one tho!) There was no smiley after the quote. I was wondering at the time, why couldn't we just have the food? Why did it have to come with all this perceived perception?
As an aside, I think it's time to close the loop on General Magic. Porat's great vision is totally bankrupt. Hey it always was, but now it's perceived to be. Magic Cap was usurped by Netscape as the standard interface for the net. And Telescript was usurped by Java.
Lots of lessons here. Probably the biggest one is that the point of having developers is having lots of them! General Magic was very picky about who'd they'd let develop for their platform. They actually bragged about how selective they were.
The exclusive clubs are replaced by the universal ones. In the software world, the YMCA always makes better basketball players than prep schools. HTML becomes the standard instead of Magic Cap. Java instead of Telescript. But how far have we come? And is it far enough? Does anyone know what Java is? I'm still tapping my feet, I'm nervous about this. I think I see some problems and I'm wondering if these things are bothering anyone else.
On the other hand, General Magic went public and presumably still has a bunch of money in the bank. But they're still flogging the Telescript story. The sooner they give up on it, the sooner they can get on with their real mission, whatever it may turn out to be.
I read an interview in Upside with Robert Palmer, the CEO of Digital Equipment Corp. Here's a man who doesn't care what you perceive! He inherited a giant company that was about to erase itself because of too much fume-breathing. They were on their way to being the next Wang. They were a precursor to Apple. Palmer steps up to the plate and starts running it like a business. Swallow the bitter pill. Pride counts for nothing. Withdraw from businesses that are dead-ends no matter how painful it is. He clearly had just one shot at turning it around.
Palmer did what his predecessor, Ken Olson, never could. DEC was in denial, they didn't understood how basically the world had changed, and how unprepared for that change the company was. When Palmer stepped in, that's all he could see, how much the vision of the company had departed from reality. He cut off limbs and humbled the company by making an OS deal with Microsoft, trading VMS for Windows NT. There's a ton of irony in that story. But in the end, this is what works in the software business. Sometimes you get a brief lift from reality, when you become the standard bearer, and think you can do no wrong. Then the company goes into denial, lets a new technology generation pass it, and then a no-nonsense business person comes in and tries to extract value from the mess.
For me it was a semi-sad piece. I grew up with DEC hardware. The PDP-11 was a gorgeous machine. The VAX was even better. In the interview Palmer talks about how the MicroVax could have been the standard that Intel chips are now. How I wish it had been so! Things would have been so much different. And so much better.
If you say Java again, I'm going to ask you what it is!
People think I dis Java. Not true. If you still think so, get a life and stop sending me email. Please!
Last week was Java week. And while everyone except Bill Gates is glad to have a new language and a new operating system, no one has shown software written in Java that wouldn't be easier to do in C or C++.
C is a standard language. A C program written for a Macintosh will compile and run on a Windows machine as long as you don't use any special features of either operating system. There is no standard set of cross-platform libraries, but lots of developers have their own libraries that flatten out the differences, with varying degrees of success.
For all practical purposes there are only two operating systems with strategic value; some people would argue that there's only one. Clearly Microsoft is going to have a major say in determining the runtime environment for Java on Windows. There's a lot of debate about what the runtime environment will look like on the Mac. This creates an interesting opportunity, the Mac platform can be an incubator for new ideas, more so than Windows, because Microsoft is not the exclusive leader in this market.
Think out about a year. Java isn't just the language of web browsers, it's also a way to develop commerical apps, just like C or C++, but better. Everyone I've talked with in the Java world agrees that this is the way it's going. But these apps will have to compete with apps that aren't written in Java. Actually it'll be even tougher, they'll have to *displace* apps that aren't written in Java.
Will a Java app for a Mac look like a Mac app? If so, Java hasn't gotten us anywhere. Java apps will be slightly more portable than C apps. Depends on the libraries. If a Java app doesn't look like a Mac app, then somehow Mac users are going to have to want something that so far they clearly haven't wanted. (I don't think this is impossible, btw.)
So, which way will it be? Cross-platform or Mac-specific runtimes? Of course the answer is that we'll try it both ways. Someone will do a rich Mac-specific runtime environment for Java. There may be more than one implementation. This is a good thing. Let the market decide the question. No edicts from Apple, please.
Even Sun's Java Runtime acknowledges that there are special features in the Mac OS. As soon as Java connects to the scripting world, the path will have been created, and lots of stuff will happen in Java on a Mac that can't happen on Unix and Windows. So much for an orderly evolution! All hell will break loose.
And no doubt there will be an implementation of Java that's totally cross-platform. What will its apps look like? I don't think anyone knows.
If you can add any information, please send mail.
Java is going to run everywhere. In every API, in every app, in every database, in every client, in every server. You'll write PhotoShop plugins in Java. You'll see CGIs, XCMDs and OSAXs written in Java. OLE, OpenDoc, SOM, even COBOL will come with Java connections. Some of the connections will be gratuitous, adding nothing. We'll get tired of hearing about Java support. Java is going everywhere that C has been. More money is going to be thrown at this new language than was spent in getting a man on the moon.
It's a good modern language. They factor out the dead-ends. Their philosophy is "You can't do this! Trust me. You don't want to." And they're usually right about their assumptions. The limits of the Java language match my coding style, which I evolved after many years of commercial software development. I have very few objections to the calls the designers of Java made.
Java has an opinion about the future. Unicode is built in. A clean framework for objects. Threading and resource management are at its core. It makes the right calls, most of the time, favoring code maintainability and correctness over the perceived performance advantages that C allows. It's harder (impossible?) to write dangerous code in Java.
But... APIs designed in Java will only be as good as the designers. It may be nirvana, but it isn't a panacea, and thankfully, the promoters of Java aren't saying that it is. (Who needs another programming language that's perceived to be for non-programmers? -- Thank you!)
The designers know Unix, but clearly don't appreciate the culture of the Macintosh. Being a former Unix geek myself, I like seeing these ideas show up on the Mac done in a way that also works on Unix. Now it's time to take some of the ideas invented in the Mac space, and make them work on Unix. Let's return the favor. It'll be coool.
It's 1996. There are millions of programmers. They all need something to do. Everyone loves a new language and a fresh start, and a chance to be the Steve Jobs of a new platform. It's going to happen so fast it'll make your head spin!
The world must look mighty strange to Bill Gates. All the pieces Java needs, he already has. And the wierdest thing is, it appears it's going to happen anyway!
This time around we get a chance to see a market evolving a new GUI instead of it coming out of a R&D lab. The Unix culture meets the desktop. Will Sun have a clue how to evolve a new platform? Maybe. How quickly will Microsoft move their source base in front of the flood of new Java system software? Will the Mac community get organized and do something elegant and low-tech in time to make a difference?
There surely will be a subset of Java that's portable, similar to the ANSI libraries for C, but designed around modern computers with larger disks and lots of RAM, fast CPUs, graphic displays, mice and menus and windows. And there will be adaptations of Java that are no more cross-platform than C was. Both approaches will co-exist. Then concepts will port. We'll see Apple Event-like things on Windows and Unix. Java would be a very good vehicle to deliver these capabilities to other platforms. [But we need to ditch the Apple-centered name for this technology.]
Finally, if you dis the Mac, you miss the point. Unix is an even smaller market than the Mac. Java started on Unix. On its path to the mass market it will stop in the Mac market and pick up some new ideas. We have some stuff down that the Unix guys don't factor in. We'll have fun - again!
PS: I have Sun's Java Runtime installed on my Mac. Send me pointers to apps I can run! I'll prepare a web page of pointers. It'll be fun.
PPS: Purists will object that C is not implemented the same on all platforms. They'll point to the confusion over the number of bits in an int. Got it!
PPPS: Realists will complain that Java is a case-sensitive language! Oy. Been there, done that.
PPPPS: The Palmer interview is on the web at It's on the web at http://www.upside.com/print/june96/palmer.html.