Lately it's been easy to dislike Sun. Their JVM is slow; Sun ONE is certainly nowhere near the fastest J2EE application server; Forte, while capable, is far from what coders actually want to use if they want to write code in a reasonable amount of time; MS's constant marketing and technical assaults eat away at Sun's armor; Sun's stock (as of this writing) is roughly a dismal $4.
All this adds up to a sad picture for Sun, the company that once proudly labeled itself as having put the "dot in dot-com." I've seen this reworded as "Sun put the black hole in dot-com," and that's difficult to argue with.
Since Sun has been unwilling to give up control of Java, Java is tied to Sun's apparently sinking fortunes, and Java programmers will go as Java goes. That paints a bleak picture for us in the face of so many obstacles, especially since Sun's Java products are so perceptively slow: most pundits think that since Sun doesn't write blazingly fast software, Java must be at fault. Speed is tied to many, many things, including user perception. Most users will tell you that the under-the-surface calculation is more important than screen refreshes, but if the screen doesn't refresh in 5ms, they think the program is slow. This creates a huge problem with Java's mindshare.
I agree with the bleakness on the surface. However, like a countryside covered in snow, the cold runs only so deep: underneath the dark external picture remains a core of strength that can sustain Sun for quite a while, provided that people don't lose sight of what's important in favor of what's popular.
For one thing, Sun's software and hardware all share a common characteristic: slow and sure. Rarely are Sun products known for blazing speed, but you can almost always guarantee that they won't outright fail on you except in the case of catastrophic hardware failure. For high-end businesses that value their processes, the knowledge that data won't die on the wire is invaluable, and Sun has better products than any shy of big iron at providing this peace of mind.
For another, Sun's ineptness at marketing doesn't change the fact that they do have worthy technologies, including Java. What most people see is that Java doesn't excel in fairly vertical applications; what they don't see is that Java programs' bug counts are very low, that Java programs tend to be written more quickly than other languages' end products, and that Java programs are naturally more portable across platforms than other languages' are. All of these add up to products that are normally safer to run, and cost much less to develop than an equivalent program in, say, C++ (not to say that Java is "better than" C++. That would require a lot of definitions of what "better than" means, and I'm not touching it.)
Their hardware, where they place most of their trust in the future, follows the same path: they will not have blazing CPU speed or incredible processing capabilities, but you can trust Sun to be scalable (massively so) and spending money on Sun boxes will not give you a system that locks up at random intervals. It all goes back to what businesses want: reliability over flash.
Sun has a long road ahead of it, and the company makes it harder on itself by battling in the press and not in the technical arena. In some ways, that's because in the technical arena it's already won the war even as it loses battles. In the long run, however, I think you'll see Sun standing tall for quite some time, and Java will not have been a bad choice.
Joseph Ottinger is a consultant with Fusion Alliance (www.fusionalliance.com) and is a frequent contributor to open source projects in a number of capacities. Joe is also the acting chairman of the JDJ Editorial Advisory Board.