localoutline

It never rains in the summer in California... until it does! This morning a light drizzle, enough to wet the ground cover, not enough to get the creek flowing or the roof leaking. But it washes the dust off the plants -- it gets dusty in the summer here, and the summer rain liberates dust-based smells from the ground that are just stunning!
Some of the smells are wet-heat smells. Having grown up in the northeastern United States where it rains all year, I'm familiar with them. It's great, takes me back to my past, and I always enjoy those memories.
But there are unusual smells, like incense, that only come when dry hot dust gets wet. You never get those smells from northeastern summer rain, so they're new smells for me. The air is just full of these smells right now. I totally dig it.
***Unfinished work
I've gotten flames from the set of pieces I did last week on Java, but there are new perspectives and new information, and after some gathering and thinking, I have some conclusions to offer.
***Java is a brand
I think the religious stuff, the McNealy speeches, are just a tactic. Create controversy for the reporters to write about. While Java is still hot in the press, develop and start running a new ad campaign that's stunning, the most creative software ads I've ever seen.
Launch new ideas, Java-this and Java-that, and see which ones get real. Postpone any narrowing of focus until it's clear that something is working. In the meantime, the ads and the press continue to develop a brand identity.
One of the ingredients of a successful platform is its religious message. Apple had the great 1984 ad. Microsoft kissed the C prompt goodbye, forever. Java erases the limits. Great advertising helps a platform happen, and they're getting great at advertising at Sun.
***It's a work in progress
In terms of delivered software that developers can target apps for, the only part of the Java system that's complete is the language -- the spec and the byte-code interpreter. Developer tools are moving rapidly.
The press has trouble seeing the difference between planned software and delivered software. Confusion. Where's the line? What's really delivered? Sun, at the top level, doesn't want to address the question. At the lower levels, they want you to know that they're working as fast as they can, moving quickly, but it isn't finished yet.
***Server-side Java
In terms of delivery, they say 1997 is the year of server-side Java, linking databases to the web using Java as an intermediary. We could focus on that, start developing the equivalent of CGI applications using Java. But this is already a mature area, there are lots of server-side options that don't involve Java.
On the other hand, perhaps IBM, Oracle and Netscape have a say in what tools and environments large-site developers will use to deploy the next generation of client-server software. If so, they clearly are investing their reputations, money and development resources in Java, giving it appeal as a server-side option.
***Maintainable code
If you pick an oddball language you risk being abandoned if the language vendor changes their tune. And it's harder to hire programmers to work on your software. As the Year 2000 Problem has shown, even COBOL programmers are marketable because COBOL was such a popular language thirty years ago. This generation's hot language creates the next generation's maintenence problem.
Of course programmers know this, and there's a tendency to choose the oddball environments as a means of achieving job security. It's unfair to employers, but it happens anyway. Also programmers adopt new ways very slowly. Once you have a great library of solutions in one environment, who wants to spend several years moving it all to another environment? It's a painful process.
***A wild card
Even so, Java has a good start at being the default language of the net generation, but it isn't the only choice. There's another language with a confusing name, JavaScript, that's delivering more power every month, but doing it more quietly. It's the wild card in all this.
Two philosophies -- scripting and programming; both are headed to the same place-- the position occupied by HyperCard in 1980s. This time the card metaphor has critical mass. The key ingredients: more memory, faster processors, virtually ubiquitous net connections, and deeper software know-how.
***The arrogance of Java
Part of the premise of Java is a sand-based head-bury -- this is a new world -- Microsoft and the Microsoft-generation don't get it. The arrogance of youth! It can be really dangerous. Here's the deal, if older people want to get it, they can. It's only when they stubbornly bury their heads in the sand that older people stay locked in the Older Ways.
I've been on the other side of this, as part of the personal computer generation in the early 80s, when I was in my mid 20s. I was working on Unix systems made by DEC when the PC stores opened. I saw their beauty (RAM-based access to the screen!) and switched immediately -- it was a better design and I understood the advantage.
The mainframe and mini guys called our computers toys. They were right. But they didn't understand how dangerous toys could be! We had fun with our Apple IIs, Commodore 64s and PCs. They weren't having as much fun maintaining those huge systems built in Fortran or COBOL. We used Pascal, C and assembler. Our software was popular in ways they never imagined software could be.
All my career I expected that someday connections between computers would be ubiquitous. When it finally happened, there was no way I was going to be on the sidelines. I made it my business to understand the protocols, traditions and limitations of the Internet.
You can become a student and explorer at any age. If you count us older folks out this time, I think you'll be disappointed to find out that some of us really do get it and have the energy and ambition to create great software.
***Java is not a multimedia format
I've been meeting more user interface designers in the last few months, and I hear some distaste for Java from them, but I think it's based on a misunderstanding.
Java is a programming language with a minimal runtime environment that can do some drawing and sound, but it is not itself a multimedia format. You could implement a PostScript interpreter in Java, so it could become a display format. You could build a Director or Flash-like runtime in Java, so it could become a multimedia format; or a RealAudio implementation in Java could make it handle streaming audio. But Java itself is no more a multimedia format than C or C++ is.
There will probably be dozens of Java-implemented multimedia formats, and they will mostly be rehashes of what's already available available in C. The power of standards will win out over euphoria. Java software will have to outperform the original implementations in some meaningful way.
In multimedia, where performance is the central issue, I don't believe the cross-platform pitch has any value. The format interpreters have to be done in highly optimized native code.
Conclusion: Non-Java tools for multimedia are far more mature than those available for Java. The design people are saying "Get back to me when there's a reason for me to use this stuff." At least that's what I'm hearing.
***Java competes with Windows
If you want to understand why Microsoft sings a different song than Sun re Java, understand that because Sun is selling Java as a broad brand-name, and Windows is the leading broad brand-name, Microsoft is simply defending its position with a flanking move.
There's nothing controversial or unpredictable about this. They got the clue that Apple failed to get in 1990 when Microsoft did to Apple what Sun is now trying to do to Microsoft. Apple could have flanked Microsoft by producing cheap low-margin Mac hardware to replace the 386s that Microsoft was wanting to replace. It would have worked then, and it will work now.
Microsoft noticed that Java needs an OS. They already have one, Sun does not. They connect Java to Windows at a deep intimate level. It'll take a generation for Java to catch up, unless there's a silver bullet, something that a new OS can do that the "hairball" OS, Windows, can't.
Net-net: Sun says Java! Microsoft says Windows! Brand vs brand.
***Gates got smarter
It's been a long time since you could fool Bill Gates into opposing software industry hype. I remember so well, back in the 80s (I feel like an old man saying this) when object oriented programming was the rage. Philippe Kahn and Mitch Kapor were saying that object orientation is the secret weapon that will defeat Microsoft. On stage at Esther's, Gates says "I don't get it!"
I cheered from the back of the room. But nowadays Gates has learned that when the industry goes insane, why buck the trend? He goes right along. If you want to be crazy, Bill can be even crazier! He proved it with pen-based computing, web browsers (where there was substance coinciding with the hype) and he's doing it again with Java.
***What is Java?
OK, now some conclusions... As of the summer of 1997 -- What is Java?
Foremost, Java is a brand-name owned by Sun Microsystems. I expect more Sun products to be grouped under the Java brand.
Enough people are learning Java the programming language to give it critical mass. As a higher-level cross-platform OS and a development environment, Java is still mostly unspecified and undeployed.
Connecting the web to corporate databases is something you can do with Java today. In the future, Java may have user interfaces that make it an attractive option for client-side software.
Its cross-platform story is weak, unless a new hot Java-based platform comes along. Some people think the NetPC or beepers running Java applets will be the other platform, few people think it's the Mac. It may be that Windows can't scale down to the beeper level, but if a market happens, you can be sure Microsoft will be there with a competitive offering, and it will be called Windows, even if it is not.
Drinking the Kool Aid doesn't work anymore. Nichemanship is a good idea, watching for the real opportunity that Microsoft can't exploit. Zig when they have to zag to establish a defensible position.
George Burns, the great philosopher and a man who played God in the movies said "Honesty is the best policy -- if you can fake that you've got it made." That's what Sun is doing, making Java look like an open alternative to Microsoft, when it's actually building value in a brand name that can be used to cover any kind of software or hardware.
Their options remain open. Sun has the opportunity to carve a niche, but they have to decide what it is.
And no change, it's still Microsoft's game to lose.
Dave Winer