There is clearly some differences on opinions out there and not all of them are positive for the JVM community. What does it mean to be a “leading edge” developer on the JVM. On the JVM, there are many languages like Scala, Kotlin and Clojure to name languages with real forward momentum.
Are All Languages Welcome on the JVM?
So can you program in two (or more) languages at the same time? Comments like this one give me pause.
..., we really have not that big issues with Java 8 as to warrant the higher costs in recruiting for 2 languages.
Ignoring grammar issues, this guy believes that current developers, including himself, cannot learn a new language and must bring on a second set of developers to support that language.
It also appears that some people are not interested in letting other languages have “equal time” on the JVM and are openly hostile about it.
<name ommited> is a Scala fundamentalist fighting a religious programming languages war .
Or more likely a delusioned Scala consultant. Sorry bro
So why can’t a code base have more than one language in a single code base, and have developers capable of supporting all languages in the code base at the same time. For more on this topic, check out the article All Programmers Are Polyglot Programers.
The Java ecosystem is all about using the correct library for the functionality so why are some people not able to allow the correct language to be used to write software in?
Recent Job Description
I recently was sent and job description from a recruiter that I found very interesting. I read them to get a good sense of what is happening in my location market. I have included the important parts to keep it brief.
… cutting edge technologies … Currently, seeking a Java Engineer … Rest API middle layer … enhance ETL processes …
Well-Versed with Modern Java Technologies: Scala, AKKA, Play Framework
Ability to thrive in a fast paced environment
The description lists required Java languages skills as Scala, Akka, and Play Framework, which is the LightBend’s Scala-side Reactive Platform, and here referred to as “Modern” Java Technologies.” I know this is going to make some readers angry, like a former unnamed Java Evangelist who described my use of Scala, AKKA and Play as, "obscure niche technologies."
It made me laugh so hard that I am making a T-Shirt with this comment on it.
Obscure Niche Technologies
There are a few people that believe that the JVM is only for the Java language and for Java Enterprise people and will open criticize people whose talk about other technologies in ‘their’ world. I have encountered a few here on DZone. In some ways this behavior seams natural, since many people will criticized things they don’t understand and simply want to promote their FUD (Fear, Uncertainty, and Doubt) against what they see are threats to their position.
A former colleague of mine once with gave a quote from a US Army Survival Training manual he read. The quote can be found in several versions on the Internet, this is one I like:
Two of the gravest general dangers to survival are concessions to comfort and having a passive outlook. These dangers must be recognized be cause of their general implications and their relation to the specific survival stresses. Both dangers represent attitudes which follow lines of least resistance, and overrule your effort or desire to cope with stress. Both dangers represent attitudes of primary concern with the immediate situation rather than the overall problems of survival. To survive successfully, you must be able to master both of these tendencies.
In software development, I believe that this manifests in people who are not able to look at and accept new technologies as improvements and not threats to what they already know and are comfortable with. I have always been on the watch for changes in our industry and I see them occur every decade or so. Being able to adapt and change over the years is how I have not only survived but thrived in the software development world for the last 4 decades. More on this specifically can be found in an article I wrote here on DZone called : If Java is the Matrix, then Scala is the Red Pill.
Clearly, Java is the least feature-rich language of the popular languages on the JVM and the slowest to move on new features in the last decade. Some say that is because the Java language is mature and complete but most of us know better. I believe that because so many new JVM languages are being invented is proof that the Java language is lacking and that Java is no longer meeting the needs of many developers. So what does this mean for the rest of the JVM?
Do you think all languages that run on the JVM are deserving of equal time and consideration?
Can we grow up and learn to use many first generation languages at the same time?