Wednesday, April 8, 1998 at 4:07:22 PM Pacific

Dino Does C++

Dino Morelli, dmorelli@mail1.nai.net is a Java consultant who's going back to C++. Here's why...

Dino Does C++

I've been going through a shift in my focus as far as development goes.

We've had to change our plans at work again with respect to our Java software. This time, we were aiming at using Java 1.1 plus the newer JFC/Swing UI controls for applets. At the time that this seemed like a good idea, Microsoft was already officially against Sun's Java but Netscape was still shipping patches to their VM in Communicator.

Well, in recent weeks it looks as though the whole thing has slowed down more than ever for applets. Our only hope for clean Java applet behavior is Sun's Activator plugin technology. But it's been in beta for a long time and I have no idea when I can rely on it.

Meanwhile, I work on Java applications to run locally on a machine, but I get a lot of friction from people because they don't want to get involved with installing VM software. They always want to know why something isn't just an executable. Why won't it just run.

So, I'm tired. I'm tired of working for 2 years on various Java projects that few, if any, people use.

I did a lot of thinking about Java in the past month or so. Here's an interesting thought: What is it about Java that makes the developers so excited? Clearly, people who write a lot in it love it. But what about Java garners that excitement?

I'm coming to the realization that it's not really the language or the cross-platform support that makes engineers happy. It's the class libraries, particularly the AWT for UI building and the networking packages.

These class libraries aren't the language at all. They could be implemented in any language that is object-oriented. In fact, they already have been. By Sun and Microsoft and other companies and they sit directly in the VM. They were probably made with C/C++. It's just that the public interface for this code happens to be Java classes instead of C++ classes.

The deal is this: engineers become mesmerized by Java because the O-O framework (like MFC or OWL) was done very well. It gives Java its good name to some degree with developers. It's not some special feature of the Java language. It's just good software writing and that can be applied to almost any language.

I've revisited some of my C++ Windows projects and saw clearly how I could use the ideas behind a lot of the Java class libraries over there. It's been like a moment of personal evolution for me. It has nothing to do with C++ being a "poorer" language than Java or anything else. It's all in the implementation of that language. If you apply yourself and try hard, you can write nasty spaghetti code in Java. It's harder, because it's set up to steer you away from that, but you can make Java look hideous same as any bad code written in any language.

And the development environments have been another nightmare. I've bought J++ and had to ditch it because Microsoft makes their own special Java. I've tried Symantec's Cafe and didn't like the look and feel of it. I've heard that IBM VisualAge for Java is so massive and slow it has gravitational pull. Borland before JBuilder was hardly more than a patched-up C environment.

And, finally, I bought Sun's Java WorkShop which I actually like (although it's slow because it was built with Java). And I had to stop using this because it doesn't work very well with the JFC/Swing stuff. Believe that? Sun's own development environment for Java doesn't do the newest stuff. I feel a little insulted for spending the $125 on it.

So, I'm getting away from Java. I miss that cool feeling you have when you build an application and people use it and appreciate it. I miss pointers. I miss seriously fast runtime speeds. I miss being able to hand out a single .exe file and it's off doing cool stuff. Back to C++ programming. The Win32 API may be ugly, but it's rock-solid. You know what you're going to get and what it will do.

I just feel like I can't be jerked around anymore by the Java thing. I want to work with things that move forward. I'm a consultant for a living. I have to see if I can't get a C++ DirectX game development job for my next contract.


This page was last built on 4/8/98; 4:20:45 PM by Betty Webmaster. webmaster@scripting.com