Java as a language will no doubt stick around for a long time, but pure Java may soon be relegated to the classroom. Java developers remain the toughest positions to fill in the IT world, according to Dice.com. Dave Fecak, a Java engineer recruitment specialist in the Philadelphia area, tells us that Java is also one of the major cornerstones of the education that young developers are receiving at colleges and universities. The problem, as Fecak sees it, is that young developers don't want to code in pure Java, they want to branch out into alternative JVM languages. This may be a sharp sign of a slow change in what the phrase 'Java development' means.
Speaking of Java as a language as opposed to the JVM platform, James Gosling, the Father of Java, said "Most people talk about Java the language, and this may sound odd coming from me, but I could hardly care less." He went on to explain, "What I really care about is the Java Virtual Machine as a concept, because that is the thing that ties it all together." He also stated that, "Java happens to be a really good language for a broad spectrum of topics."
New JVM languages pop up because the core Java language is "really good for a broad spectrum," but most enterprise companies specialize in a fairly small niche. Because the JVM platform allows so much flexibility and interoperation, talented software engineers find ways to tweak the concepts behind Java and make languages that excel at relatively small range of applications. If, for instance, a new graduate seeking Java development jobs working with Web applications that leverage the advantages of cloud-computing architecture, she is likely to be interested in a JVM alternative such as Scala.
It could be that Java as a core language serves today's young developers more as a stepping stone toward their own niche JVM language(s) and a lingua franca between particular languages than as an active language. The debate between Java and alternative JVM languages has been had on our forums before, but let's focus now on the young new developers who are looking to build new, innovative applications. Should new developers generalize with Java, should they specialize with an alternative JVM language or should they mix the two approaches? Perhaps it's pointless to focus on the difference between Java and the JVM. After all, doesn't the phrase 'Java development' really cover the whole gamut?