Java vs. Those Other Languages

Java will of course make an impact on the use and disuse of other languages. I'll briefly discuss some of the ones that I think will be affected.

C

I don't think Java will displace C at all, except possibly in educational environments, because C is perfectly suited to quite a few programming problems, especially systems programming, high-performance crunching, and low-level work.

C++

Object-orientation has made it a long way as a buzzword and not far at all in practice. In my humble opinion, this has a lot to do with the incredible complexity and backwards-compatibility of C++. Many mainline C++ programmers never really learn OO at all, and are essentially programming procedurally in a more complex version of C. Add to this the "get it right or I'll core dump mysteriously" nature of all C's progeny, and you get a lot of late projects, frustrated programmers and flat bad code.

Add to this the fact that most of the arguments for C - especially speed and maturity - just aren't true for C++. The added burden of OO, exception-handling, and all the additional error checking and such programmed into libraries to prevent memory leaks and other such nonsense places C++'s performance within reach for Java.

C++ is also not suited to the sort of highly-configurable, high-reuse apps that seem the only way to manage the ever-increasing complexity of software systems.

Besides, you can cut your typing in half just by switching to Java and eliminating all those asterisks and ampersands.

But of course, there is a fairly large installed base of C++ apps and developers. It will take time for Java to overtake this.

SmallTalk

When I discovered Java I was on a quest for my language of choice. Having learned C++ and grown (as you may have noticed) fairly disgruntled with it, I taught myself perl and then SmallTalk. SmallTalk had a lot of promise for me: fully OO, with a nice syntax and the right general attitude for what I wanted to do. The problem? Too damn expensive. Commercial SmallTalk environments were $3000+ at that time, and I couldn't afford or even justify spending that much on a language I just wanted to learn and try out. GNU SmallTalk was pretty limited, with no GUI support. So after reading a few books, I moved on.

SmallTalk also suffers from being a little too different from traditional development environments. All the SmallTalk environments were as tightly integrated as, say, VB or Delphi; there was no way to pick-and-choose the tools you wanted to work with. Also, the edit-compile-debug cycle was strange to say the least, and it can be hard, even with the commercial environments, to subset your class library for small installs. And performance was always an issue.

JavaSoft did exactly the right thing by releasing their reference JDK free of charge. Now there is no excuse for anyone student or professional, from learning Java if they wish. This will be hard on things like SmallTalk, since the emerging workforce will be trained in Java instead.

Visual Basic

One thing that has been interesting with the whole Microsoft J++ nonsense - while on the one hand, it is a clear attempt at scrambling standardized Java, it also is a very effective torpedo at Visual Basic. The J++ environment is apparently just as drag-and-drool and molly-coddling as VB, and in fact looks and works the same as part of their integrated development suite. And all the OLE/COM/MFC hooks are there, and J++ easily beats out VB in speed. The big difference for the VB programmers of the world is a better language - cleaner, more powerful, and more object-oriented. So it may turn out that most of the converts to J++ on Win32 are switching from VB, not from other Java environments or other OSes.

Perl

Nothing can do what perl does best as well as perl does. It is rapidly infecting Windows NT administration, and already has a stronghold in web development, unix admin, basic scripting and other areas. The only area where it might lose ground to Java is in CGI scripting, since the Java servlet model, while still maturing, promises better performance and security.
previous next JavaJavaJava... Beverage break.