This forum seems to be the place people discuss the future of Java. People often ask if Java can beat C/C++/C#/MS. I don't know if, 20 years from now, Java will still be around. I do know some advantages which Java has over other languages. These are not the ones you commonly hear about (e.g. exception handling, garbage collection). These are more conceptual ideas about the growth of the language itself. I'd be curious to hear what other people think.
1) Java is an "Open Source" type language Many comapnies started grumbling a few years back that if everyone rallied behind Java, Sun could become the next Microsoft. In an effort to assure everyone this would not be the case, Sun created the Java Community Process (JCP). (Technically, they created JCP's forerunner, but close enough.) Basically, the JCP allows individuals and companies with expertise in a speicfic area to define and extend the Java standards in that area. This is a huge! Standards are nothing new. We've had standards bodies for years. The key differences here are as follows. The barrier to entry is low. It's low cost to join, and given the number of committees, even small players can have some say, not just the multi-billion dollar comapnies. Even if you can't get on a committee, there's the JCP member review period (although, true, most standards comittees had some type of public review). The recent growth of the internet also allows for more people to see what's going on and provide feedback. this isn't Java specific, it's just coincidence, but it's a big boon, nonetheless. Also, the level of politicing on these committees seems low. That's not to say there are no problems, but I have yet to see a JSR fail due to a political impass. This type of process will let Java grow and flurish, at a industry definated rate (not at the rate set by a monopoly or oligarchy), and allows vendors to keep tools and standards relatively up-to-date with one another.
2) Java is a "3.5GL" 3rd generation languages are Fortran and Basic. More recent ones are C, C++,and Java. But Java is moving beyond this idea. Java now supports extras, byeond basic IO and flow control. Logging in the 1.4 release is an example. The idea is nothing new, we've had libraries for this type of stuff for years. However, the difference is that this is part of the JLS, and not some commonly accepted add-on. A more powerful example is EJBs. The Java sepcification inludes a definition for how a generic application server should work! Now comapnies building servers don't have to re-invent the wheel each time. This is immensely powerful beceause it allows developers to focus on bsiness issues and not implementaiton issues, and it is now part of the Java standard! Again, the idea isn't new, but the adaptation of so universal a standard has huge consequences. I think these advantages will give Java, or any other language which uses them, a big advantage over languages, which don't have this level of freedom and support.