This is the second version of this entry. In the first, I think I mentioned Java too often and in ways that opened myself up for criticism as a heretic, even though it wasn’t really my intention to find fault. This is especially true because the history of Java-the-phenomenon is very long and involves so many players.
Several distinct eras of the Internet and Web, for example, have come and gone. People from many, many organizations took part in the development of what we now informally call Java.
There are several IT-industry things I would not repeat and things I would rather see not repeated by others. So, what’s past is past, official Java is in the process of becoming free software under the GPL, and as I said last week, congratulations and don’t stop!
Here in Q&A format is my personal opinion of the future development of enterprise class programming languages.
Q: Was Java the first enterprise-class programming language?
A: No, though it was certainly one of the more successful ones. On the mainframe we had assembler, COBOL, and PL/I, while we also had RPG, C, C++, and Visual Basic on other platforms. All of these can claim a lot of influence in helping the IT world get to where it is today. If we want to consider web development and the so called scripting languages, Perl,, and are critically important today as well.
Q: Will there eventually be another “top dog” among the enterprise languages?
A: This is kind of like asking if there is other intelligent life in the universe: we don’t know yet, but the odds are that it is true. Computer science shows no sign of stopping its advancement and so, yes, there most certainly will be another dominant language and libraries, and another after that, and another after that.
Q: Will one vendor control the development of this next great language?
A: I doubt it would be tolerated today. If the new language implementation were released under GPL today, it wouldn’t be possible. I would expect to see an egalitarian community develop the specifications and implementation. This doesn’t mean that the usual open community meritocracies wouldn’t come into play, but no vendor, organization, or individual would have veto power.
Q: What about the license?
A: There are actually two issues here. One is the language and library interface itself. I would expect to see a license where the contributors would allow royalty-free access to any necessary patent claims for anyone implementing the language and core libraries, possibly via a patent non-assertion pledge. Other conditions like defensive suspension may come into play.
The second is related to the implementation of the language and its libraries. There can and should be multiple implementations. If the organization creating the language has a reference implementation and tests, those should be open source from the beginning. In any case, this area is rife with prior art
Q: Will there be a formal organization doing this work or will it be a loose community?
A: I’m tempted to say that it will be a formal organization because I think this will tend to reassure large vendors and their customers, but I’m really not sure. I don’t think it will be the proverbial open source guy-in-the-garage, in any case, at least not once it starts to take hold. Clearly a working structure has evolved for Linux, Perl, PHP, and Python and that could work. Note that there is usually an individual or small group of visionaries that help guide the development.
I’m aware that in some circumstances today a designated individual may get to make final decisions. This is true in the open source world as well as the proprietary/commercial world. Given open licenses, rebellion is always possible if there is abuse of power and responsibility.
Q: Who will control the trademark?
A: Just as Mozilla controls thetrademark, so too will some organization need to control this one if it is deemed necessary. Certainly no single vendor should control it. Given the recent controversy with the Debian community over the Firefox trademark, we clearly still haven’t worked out all the kinks.
Q: Does this next top language exist today?
A: The majority of programming languages that people know about today are not really new. Python, for example, is a great and evolving language but has been around for over a decade. A lot of people would bet on Ruby.
In my opinion, this next language has not surfaced yet: we have a lot that we need to synthesize from experience with Java, C#, PHP, Python, and Ruby before we conclude we really know what we’re doing for the “next big thing.” We need experimentation and we need to understand that we have permission to move beyond what we’re using today.
Q: Where will this language come from?
A: I think it is likely to be started in a university, but it will need vendors and unaffiliated individuals to help drive its development and acceptance.
Q: How old is this genius who will father/mother this next great language?
A: I wouldn’t be surprised if this person were a teenager today. Hence this next great thing will be started by someone who doesn’t even remember life before the Web. That’s good.
Q: Will there be another Java?
A: Will there be one or more new languages that come to dominate application development in the IT industry? Yes. Will they develop the way Java did? No. Will Java and its history have laid the groundwork and educated us for whatever comes next? Absolutely.