Has Java passed its prime?

by Steve Anglin

Related link: http://www.fawcette.com/javapro/2002_11/magazine/features/dsavarese/default_pf.a…

Has Java passed its prime? According to this Java Pro article and a Meta report, it has certainly peaked. As cycles go, it may be a sign of beginning decline. Judge for yourself.

According to this article: "Creeping featurism may drive programmers away from Java to use newer languages that come along. Java cannot be all things to everyone, but it will probably try to do so... As Java's complexity increases, its utility as a teaching language may decline. Just as C and C++ kicked Pascal and BASIC out of the classroom and were themselves kicked out by Java, Java may get kicked out by whatever new language comes along. Java has many faults and perhaps tries to do too much, between its ever-growing standard APIs and the evolving language and virtual machine. In Java, it's very awkward to express dynamic behavior, such as introspection and adaptation. If dynamic computing structures become as important as static ones, scripting languages may make their long-predicted jump to the fore of software development. But Java will secure its niche, and like Cobol, keep many programmers happily employed."

According to a ZDNet Meta trend report: "Global 2000 organizations will have heterogeneous application environments indefinitely, but .Net share will increase to 30 percent of enterprise development projects as J2EE use stabilizes at 40 percent by 2004." So, I guess that J2EE vs. .NET debate is irrelevant; isn't it?

Has Java passed its prime? According to this article and a Meta report, it has certainly peaked.


2002-10-01 06:47:57
Past its prime -- or reaching maturity?
Increasing complexity, whether real or just perceived, does present a problem for Java. In some areas it's likely to be replaced by simpler languages that offer other benefits to their users in those niches. In time one of these may emerge from its niche to challenge Java in the mainstream.

In Java we've seen more packages being added to the standard set. The language itself has changed very little though, the complexity is in the number of packages.

The complexity arises for a reason though. Java is used to try to solve an increasingly diverse range of increasingly complex problems. Any language used in this way requires more complex functionality, look at C#, perl, python etc. If a language can solve a wide range of problems then it's likely to be seen be some people as "complex".

Complexity has its benefits too. There is now so much Java code available, in the standard packages and from open source projects, that many programming problems can be solved by assembling a solution from already working code. This benefit, often claimed for perl with its huge CPAN repository, really is quite substantial. However, it only occurs when a language reaches some critical mass, which is very close to the point at which people start to declare it's become too complex.

Finally, Java really should have no existence outside of the benefits it provides to its users, if it is replaced by a better solution then that's good. It's like the lamp in the new IKEA adverts, why feel sorry for Java, it has no feelings.

2002-10-01 14:46:57
VB shops switching to Java
The likely outcome is that just about no-one will use C#. Rather than listening to the marketing channels, which are dominated by Microsoft money, you might try talking to VB development shops. Apparently, they are virtually all switching to Java, which makes perfect sense when you think about it. I program mission critical apps in VB 6, and any serious app is highly dependent on networking. I would never attempt to use some new fangled product from Microsoft (C#) that is full of bugs when an existing, proven solution already exists (Java). That would be stupid. Any component that needs to interact with ActiveX would simply be done in VB 6 or C++. Web applications that don't use applets would use Flash, which to an extent is already based on Java on the server side.

Futhermore, the history of languages is quite plain. Operating systems are written in the de-facto standard language. This used to be Unix and C, then C++, but has now switched to the application server and Java. Also, the next great language is typically written in the last great language, so the next great platform will sit ontop of Java - right now there are two candidates - JavaScript(ActionScript, etc., and Jython. Possibly, a completely new paradigm will imerge - like intentional programming.

2002-10-01 15:49:17
I read it in JavaPro, it must be true!

Normally I don't bother with the "Java's HOT! Java's NOT!" nonsense that seems to endemic of programming in the Internet age - but I do get a bit concerned when such earnest fluff infiltrates O'Reilly publications in one way or another.

Yes, Java has been around long enough that it can be considered a mature computer language whose growth potential and market penetration is now reaching its zenith. So what else is new. Every newly introducted computer language that is successful goes through similiar stages. The real question is whether or not Java is versatile enough to have a prolonged life and useful niche in software development. Every indication so far is that it does.

(Classic) Basic and Pascal didn't die off because they got too complex - they died off because they ultimately weren't very useful (for numerous reasons). On the other hand, Microsoft Basic has thrived and has lived a long life precisely because it has continued to evolve with lots of accumulated APIs (and complexity). The same can be said of the C language, which like Java, has a very simple core language, but is built upon huge API libraries. Java's family of APIs (class libraries) is indeed getting enormous, but so what - most only apply to certain programming domains and aren't needed by most programmers. It is entirely a healthy sign that Java is finding so many uses and continues to grow in this way. Changes to the core Java language have been mostly incremental and perhaps even not as radical as some people would like.
The fact that C#, the supposed next "Hot" language, is effectively based on Java speaks volumes.

2002-10-02 06:21:46
Complexity is unavoidable
The longer a platform exits, it will be come more complex. This is true of any useful platform. None of the dynamic scripting languages are capable of such growth.

Java is at the top of it's game right now. The 180 Microsoft did to copy it is proof of this.

There is no other platform out there right now with as much Industry support as Java. If Sun can do a good job of managing the evolution of the platform, Java will be a force in the IT industry for a long time to come.

2002-10-04 02:34:59
complexity and multiple APIs
Yes, Java has an increasing number of APIs bundled in with it, and that's not a problem, because generally most people won't use all of them.

I am starting to find the monolithic nature of the JDK a bit troublesome around the edges, though. Take the logging API - it's a somewhat less feature-rich version of Apache Log4J, which was, up to JDK1.4, the de facto standard in java logging APIs. Now its in danger of loosing mindshare to a less tried and tested alternative simply because the latter is bundled. The same may be true of regular expressions, although I've heard that the bundled one is pretty good in that particular case.

Can't help wondering what java would look like if it wasn't so tightly controlled. What would a java 'distro' look like?

Ho hum, back to work...