Should Java Be an Open Language?

First Published:
Date Published: 1997
Copyright © 1997 by Kevin Savetz

Java -- so much fuss over one little language. Who is acting crazier: Microsoft for tweaking it, or Sun for insisting on it as an open standard?

Kevin Savetz: I don't get it, Neil. Sun created Java, expects the world to embrace and use its programming language, but throws a hissy-fit every time a developer tries to change the way the language works.

You can't just sit down, create a language and expect it to be perfect. Languages are, by their very nature, transitory. In spoken language, new words perennially crop up as other words dwindle from popular usage. Programming languages change, too. After Larry Wall created Perl, he didn't guard it like an overprotective parent -- he let the language's users help it to evolve. Because of that, Perl is a better tool today. So why does Sun stand sentry over Java? Do they believe that they're language is perfect, that any changes that Microsoft (or anyone else) would make to it would foul their baby?

Neil Randall: What's this, Kevin? Do I hear you offering even a token of support for the Evil Gatesian Empire? Are you actually suggesting that Microsoft might not be doing something dastardly, something that's threatening to end human values as we know them? What's next? Support for the designated hitter rule?

The funny thing is, I was just thinking about this whole issue myself, and I've decided that I'm on Sun's side! Not that I like Scott McNealy (Sun's honcho) any more than I like Bill Gates - I've crossed them both off my list for the Mature Guy of the Decade award - but the man's got a vision for Java that doesn't include people screwing around with it. In McNealy's vision, Java becomes a truly cross-platform language, one whose programs don't need to be tailored for specific operating systems. So you write a program, and it can run on Windows 95, Windows NT, the Macintosh, UNIX, and anything else that's running the Java Virtual Machine (JVM). This has been one of the great dreams of computing, and Java seems to have an actual chance. In other words, it ain't just a programming language, it's .... it's .... how do I put this? - okay, I'll try this - it's a programming universe. Don't you think it would be nice for people not to have to write just for Windows any more?

Kevin Savetz: Me, support Microsoft? I would never stoop... that is, well, maybe a little. Just this time.

I agree that Java's mantra of "write once, run anywhere" is a laudable goal. But I don't think the right way to achieve that goal is for Sun to create a set of rules single-handedly. Should anyone not like the rules, Sun wants to gather its toys and go home. For a cross-platform language to be viable, don't you think its creation needs the input of other developers? Not just Sun, certainly not just Microsoft, but also regular ol' programmers -- the companies with just a few employees. The ones that would most benefit from coding something just once.

Moreover, I don't know if software created with Java will ever be real software. Again, I can't deny that cross-platform software is a great idea, but it doesn't seem realistic. Every system -- Windows, Mac, Unix, and so on -- is different. Although you may hate Windows or the Mac or Unix, you've got to admit each has its advantages, and viva la differance. Running Java puts the program in a cramped little box within the computer -- the software can't stretch its legs and really make the most of whatever platform it's running on. Sure, the software may do the job, but Java strips it of whatever elegance Windows or the Mac or Unix might have provided.

Remember Hypercard? It was this scripting environment for the Mac. You could write programs without really knowing much programming. Java sort of reminds me of Hypercard. You end up with a strange computer-within-a-computer that doesn't work quite like you'd expect your computer to work. And not nearly as well.

Sun has the right idea, but in trying to run the show, it's ruining the show.

Neil Randall: Y'know, Kevin, I'm having trouble throwing things at you this week. If you keep up with this intelligent argument idea, instead of your normal mindless-pro-Netscape-everything rant, I might be forced to develop respect, and that would annoy me. So cool it, okay?

Hypercard's a good example, but it wasn't ambitious enough to really make a difference. Java is still a language for programmers, not - as Hypercard was - for people who wanted to produce programs but who didn't want to spend the time learning programming (I was one of these people). I agree that each platform has its pluses and minuses, but it's the job of the Java Virtual Machine to make sure that those advantages aren't lost. You end up with two layers here - the operating systems gurus write the JVM, saving programmers from having to worry about operating systems issues. That means, ideally, full-featured and top-notch programs that focus on things like usability and interface issues, the stuff we need desperately on all platforms (yep, even on your beloved Mac). Right now, Java is nowhere close to this, but I've love to see it happen.

The other thing is that, whether we like it or not, Microsoft is gaining almost exclusive control over people's desktops. Even on the Mac, Microsoft Office is the main applications suite, and it's pretty nearly destroyed the competition on Windows machines. If somebody doesn't offer a new platform for creating applications soon - and that's what 100% Java would do - Microsoft will become the only game in town for home and office machines alike. Gates shines when he has competition, but he craps out completely when he has a monopoly. As the Windows 98 fiasco clearly proves.

For the sake of Life, the Universe, and Everything, Java has to win.

Kevin Savetz: I'm sorry to have made your life difficult this week, Neil. I know how hard it is for you to create rational arguments rather than blindly sticking up for your rich Uncle Bill. Java may, as you say, be the weapon that puts some much-needed chinks in Microsoft's armor. But I don't much like the way Sun is going about it. I use my Mac because it's not like Windows -- the Java virtual machine as it stands strips it of its Macness. And if I don't like it, tough noogies for me because according to Sun's rules, the Java spec is written in stone.

I'll take a Microsoft app that works on a Mac, like a Mac any day over a Java app that turns my machine into Generic Boring Computer 1.0. Java's a good idea, but Sun still needs to jump some serious hurdles, the biggest one being that it needs to stop trying to reign over computerdom with its private set of rules. In short, it needs to stop acting like Microsoft.

Articles by Kevin Savetz