Dave Fecak has served as the President and Founder of the Philadelphia Area Java Users' Group since 2000. He is an active blogger on software engineering career topics at http://jobtipsforgeeks.com, and author of Job Tips For GEEKS: The Job Search ebook (http://jobtipsforgeeksbook.com) Professionally, Dave has been a recruiter and consultant for 15 years helping startup and early growth firms to hire software engineers (primarily focused on Java/JVM, Python, Ruby, functional languages, and mobile). Dave is a DZone MVB and is not an employee of DZone and has posted 74 posts at DZone. You can read more from them at their website. View Full User Profile

Advice From A JUG Leader – Learn A Different Language

08.07.2012
| 12304 views |
  • submit to reddit

The cry of “Java is Dead” has been heard for many years now, yet Java still continues to be among the most used languages/ecosystems.  I am not here to declare that Java is dead (it isn’t and won’t be anytime soon). My opinion, if you haven’t already heard:

Java developers, it’s time to learn something else

First, a little background as basis for my opinions:
I founded the Philadelphia Area Java Users’ Group in March 2000, and for the past 12 years I have served as ‘JUGmaster’. Professionally, I have been a technology recruiter focused on (you guessed it) helping Philadelphia area software companies to hire Java talent since early 1999. I started a new recruiting firm in January that is not focused on Java, and I’m taking searches for mostly Java, Python, Ruby, Scala, Clojure, and mobile talent. This was a natural progression for me, as a portion of my candidate network had already transitioned to other technologies.

I launched Philly JUG based on a recommendation from a candidate, who learned that the old group was dormant. Philly JUG grew from 30 to over 1300 members and we have been recognized twice by Sun as a Top JUG worldwide. This JUG is non-commercial (no product demos, no sales or recruiting activity directed to the group), entirely sponsor-funded, and I have had great success in attracting top Java minds to present for us.

The early signs

After several years of 100% Java-specific presentations at our meetings, I started to notice that an element of the membership requested topics that were not specifically Java EE or SE. I served as the sole judge of what content was appropriate (with requested input from some members), and I allowed the group to stray a bit from our standard fare. First was Practical JRuby back in ’06, but since that was ‘still Java’ there was no controversy. Groovy and Grails in ’08 wasn’t going to raise any eyebrows either. Then in ’09, we had consecutive non-Java meetings – Scala for Jarheads followed by Clojure and the Robot Apocalypse (exact dates for said apocalypse have been redacted). Obviously there is commonality with the JVM, but it was becoming readily apparent that some members of the group were less interested in simply hearing about JSP, EJB, Java ME or whatever the Java vendor universe might be promoting at the time.

I noticed that the members that sought these other topics and attended these alternative meetings were my unofficial advisory committee over the years – the members I called first to ask opinions about topics. These people were the thought leadership of the group. Many of them were early adopters of Java as well.

It was apparent that many of the better Java engineers I knew were choosing to broaden their horizons with new languages, which prompted me to write “Become a Better Java Programmer – Learn Something Else“. That ’09 article served to demonstrate that by learning another language, you should become a better overall engineer and your Java skills should improve just based on some new approaches. Today I go a step farther in my advice for the Java community, and simply say ‘Learn Something Else‘.

To be clear, the reason I make this suggestion is not because I feel Java as a language is going to die off, or that all companies will stop using Java in the near future. Java will obviously be around for many years to come, and the JVM itself will certainly continue to be a valued resource for developers. The reason I advise you to learn something else is that I strongly believe that the marketability of developers that only code in Java will diminish noticeably in the next few years, and the relevance and adoption of Java in new projects will decline. Known Java experts who are at the top few percent probably won’t see decreased demand, but the vast majority of the Java talent pool undoubtedly will.

The writing on the wall

I think at this point the writing on the wall is getting a bit too obvious to ignore, and you have two forces acting concurrently. First, there is a tangible groundswell of support for other languages. A month doesn’t seem to go by that we don’t hear about a new language being released, or read that a company transitioned from Java to another option. Much of this innovation is by former Java enthusiasts, who are often taking the best elements of Java and adding features that were often desired by the Java community but couldn’t get through the process for inclusion.  Java has been lauded for its stability, and the price Java pays for that stability is slowed innovation.

The second contributing factor is that Java has simply lost much of its luster and magic over the past few years. The Sun acquisition was a major factor, as Oracle is viewed as entirely profit-driven, ‘big corporate’, and less focused on community-building than Sun was with Java. The Java community, in turn, is naturally less interested in helping to improve Java under Oracle.  Giving away code or time to Oracle is like ‘working for the man‘ to the Java community.   Oracle deciding to run JavaOne alongside Oracle OpenWorld may have been an omen. Failures such as JavaFX and the inability to keep up with feature demand have not helped either.

My suggestion to learn something else is also rooted in simple economic principles.  I have seen the demand for engineers with certain skills (Ruby, and dare I say JavaScript are good examples) increasing quickly and dramatically, and the low supply of talent in these markets makes it an opportune time to make a move.  It reminds me of the late 90′s when you could earn six-figures if you could spell J-A-V-A.  Some companies are now even willing to teach good Java pros a new language on the job – what is better than getting paid to learn?  The gap in supply and demand for Java was severe years ago, but it seems the supply has caught up recently.  Java development also seems to be a skill that, in my experience, is shipped offshore a bit more than some other languages.

Still don’t see it?  Remember those early Java adopters, the thought leaders I mentioned?  Many of them are still around Java, but they aren’t writing Java code anymore.  They have come to appreciate the features of some of these other offerings, and are either bored or frustrated with Java.  As this set of converts continue to use and evangelize alternative languages in production, they will influence more junior developers who I expect will follow their lead.  The flow of Java developers to other languages will continue to grow, and there is still time to take advantage of the supply shortage in alternative language markets.

Java will never die.  However, the relevance and influence of Java tomorrow is certainly questionable, the marketability of ‘pure’ Java developers will decline, and the market for talent in alternative languages is too strong for proactive career-minded talent to ignore.

Published at DZone with permission of Dave Fecak, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Yaozong Zhu replied on Tue, 2012/08/07 - 5:30am

Nice article to motivate me putting some TODOs in my schedule.

Jonathan Fisher replied on Tue, 2012/08/07 - 11:31am

I see the old Java culture of overengineering is dying out. You dont' necessarily have to learn a new language however, you will have to change how you approach problems. Using CDI and EJB3.1, you can build simple apps that are modular and far easier to maintain than any mess created with Rails/Django... You also get the benefit that Java performs at least an order of magnitude faster than it's dyamic language counterparts.

Good article: http://www.oracle.com/technetwork/issue-archive/2011/11-jan/o11java-195110.html 

 

Steven Goldsmith replied on Tue, 2012/08/07 - 12:21pm

The problem is with most other JVM languages the tooling is not as mature as Java or is missing completely. I code in Groovy and a little Scala besides Java, but try to find some good static code analysis tools or Maven plugins, etc. Although the main topic is true of any language I'd be a little suspect of the intentions as this is coming from a recruiter and not a seasoned technologist.

Dave Fecak replied on Tue, 2012/08/07 - 1:27pm in response to: Steven Goldsmith

Steven - Obviously the JVM alternative languages still have immature and developing ecosystems, and are only now beginnging to see any vendor market.  Regarding intentions, I'm not sure what you may suspect my intentions could be?  If I were to admit to having any self-interest, it would be that as a recruiter I will have a much easier time finding qualified candidates in a few years if there are more candidates that have a polyglot background to choose from.  My intent here is to educate engineers on industry trends, marketability, and staying at or ahead of the curve from a career perspective.

 I have no personal vendetta against Java (I have been a JUG president for 12 years).  My article is about maintaining career marketability and, in this case, the unique opportunity to potentially take advantage of supply and demand disparity. 

Steven Goldsmith replied on Tue, 2012/08/07 - 1:42pm in response to: Dave Fecak

Any seasoned technologist worth their salt can figure out a new language or framework to land a job. This type of education would be mostly for neophytes, since those in the business for a number of years already know this (unless they are too lazy to perfect their craft). Also, the language is only about 5% of what you need to know. The other 95% is architecture, frameworks, tooling, systems, best practices, governance, etc. Your last paragraph validated my original assertion.

Dave Fecak replied on Tue, 2012/08/07 - 2:59pm in response to: Steven Goldsmith

Steven - I'm not sure what your original assertion was, but feel free to clarify if you'd like.  Again, if you read the article, it can be summed up with 'I think now is a good time for engineers focused on Java to expand their horizons and take advantage of the emerging market for other skills'.  If you disagree, that is fine. 

Saying that any technologist worth their salt can figure out a new language is good to hear, and if it is indeed true, I'd personally suggest that those seasoned, 'worth their salt' engineers learn a new language.  If this isn't news to you, I'm not sure what or if we are disagreeing on?  (perhaps we aren't)

Rajmahendra Hegde replied on Tue, 2012/08/07 - 7:52pm

As Darwin says... "Its not the Survival of the fittest.. its the living being which adopts the change survives!" Adopting different language is not means "Java is Dead" I see new language as "polyglot programming" we cant just change a language which we used more than a decade!. See the change happening... New language tries to adopt only new projects not to old projects.. and it depends on adoption not just "new arrived so adopt new." Its all depends on what tool to use for what!? I like JavaLanguage since its started so i dont like jvm language to conquer it. but i like the power of groovy , scala etc... i want them to support me in Java language.. create dsls to make java easy... If you really like a full fledged groovy or scala project then you need to think and then decide. 

Martijn Verburg replied on Thu, 2012/08/09 - 7:41am

Hi Dave!

Good to see another JUG leader posting pieces like this.  The LJC also owes its success of having recruiter as a co-founder as well as the strict non-profit, community approach.

I completely agree that Java developers need to learn another language outside of Java.  It's a very strong theme that Ben and I push in our recently released <shameless plug>The Well-Grounded Java Developer (covers Java 7 and Ployglot programming)</plug>.

This is espeially true when delving into problem domains that Java simply isn't well suited for, including rapid web development, some types of parallell/concurrency problems and certainly functional ones.

Your correlation with jobs etc is interesting, have you seen the large empirical studies that Red Monk have done in this space?  There's an excellent presentation on slideshare.

What I'm really excited about is the split of Java the language from the JVM. Add to that the extra work to make the wide variety of languages a first class citizen there and we're onto a winner. I firmly beelive that the 2nd age of Java is coming, not as the language, but certainly in terms of the VM and I'm glad Oracle is pushing that forwards strongly.

Actually that leads me onto:

"The second contributing factor is that Java has simply lost much of its luster and magic over the past few years. The Sun acquisition was a major factor, as Oracle is viewed as entirely profit-driven, ‘big corporate’, and less focused on community-building than Sun was with Java. The Java community, in turn, is naturally less interested in helping to improve Java under Oracle.  Giving away code or time to Oracle is like ‘working for the man‘ to the Java community.

I disagree with much of this statement. Oracle has over the last couple of years put in massive amounts of effort into the community. Sure, they don't always get it right, but they're really dedicated to improving. For example, they instigated the JSR-348 changes which massively lowered legal, admin and tech barriers into contributing to Java Standards. They also gave SouJava (Brazilian JUG) a seat of the JCP EC. They're now taking that that further by also backing JSR-355 and JSR-358 which makes contributing to Java/JEE even simpler.

They're massive supporters of the JUGs and the JUG lead programs Adopt a JSR and Adopt OpenJDK, putting in a large amount of time and effort to accept our contributions, run global bugathons and more.

In short, there's actually more people contributing back to Java and Java standards than there ever was before! 

They also hold regular user group conferences (primarily on their dime), where the attendees are very much encouraged to tell them frankly where they need to improve.

Maybe the message isn't getting out properly? All of this has been definitely been communicated through the JUG leaders list, are you signed up to that? We'd love to have the Philly JUG join in with our global programs!

Cheers,

Martijn (London JUG Leader)

Dave Fecak replied on Thu, 2012/08/09 - 9:32am in response to: Martijn Verburg

Martin,

Thanks for reading and for the comments.  Reaction to this article has been mixed, as I detailed in a follow-up post "Advice From a JUG Leader II - Debate Breakdown".   I do think it is important that the Java community engage in an open and honest dialogue about these types of topics, and unfortunately I sense the overall Java community becoming more fractured instead of a JVM community emerging.  That is just my personal opinion, and others could see things quite differently.  

 Regarding LJC, the Philly JUG was founded as a non-commercial entity and I think that is what has made our members continue to keep coming back (over 100 at most events).  If the meetings were full of solicitations and demos, I think I'd lose my entire audience except perhaps for the handful of folks that just show up for free pizza!

I've also written a piece on Polyglot Programming (I, too, can plug shamelessly!), which is much more based on the marketability of polyglots and the predicted rise in the alternative JVM language space.  Thanks for sharing the Red Monk slideshow, I wasn't aware of it and it is pretty powerful stuff.  

Regarding the disagreement on my statement about Oracle and Java's luster lustre (translated for you!), I want to clarify it and break it down into parts.

Java's (the language) lustre -  My comment about Java losing it's lustre and magic is more about the new generation of developers that are graduating with comp sci degrees with Java as a major part of the curriculum, yet they come to me and say they are most interested in a job where they will be primarily doing Ruby or Python.  Again, this could be my personal experience, but lately this trend seems overwhelming.  I can't remember many times in the past couple years where a recent grad has come to me looking for work in Java.  I'm not sure why, but that seems to be an image problem on Java's part.  Again, I'm referring to Java the language throughout this paragraph.  If other parts of the world are seeing rabid interest in Java from the young developers, this could just be a regional thing, but I can tell you that when I look across the room at my JUG members the gray hairs (and no hairs) are outnumbering others by a wide margin. 

Java needs an influx of younger talent to become passionate about the language if the language is going to continue to thrive.  These graduates that are choosing other options may fall in love with Java somewhere down the line, but it would be better for Java's health if there were a steady stream of new developers passionate about it.  This won't hurt the JVM long run, as I think you will start to hear grads looking for Scala work or other JVM langs, but it hurts the Java lang community.  

I think any die-hard Java fans that are clinging to Java for dear life and trying to minimize the potential impact, utility, or influence of these alternative languages may be potentially doing a disservice to the community at large (again, see my Debate Breakdown article linked above).  I sense a bit of a battle brewing between the Java lang camp and the alternative JVM lang camp, where the Java camp seems to try and dismiss the other options as being 'just for the kids' or 'not ready for prime time'.  I think leaders in the Java community would be wise to step up and acknowledge and even celebrate the positives that the alternative langs offer, while noting (as you have done) where Java may be best and where another option could be a wise choice.

Regarding Oracle and the acquisition - I think my comments about that were more the gut reaction to the acquisition than how things may be moving forward.  I do like the direction Oracle has taken with some of the JCP/JUG crossover.  I think rolling JavaOne into OpenWorld was a mistake, just from a PR perspective and in the way it perhaps took away from JavaOne belonging to the Java community exclusively.  

When the acquisition happened, I was on the JUG leaders list.  I've always run my JUG independently as not to overcomplicate issues (no bank account, no charter - we don't 'exist' in any legal recognized fashion).  I've run the JUG by myself for 12 years now without too many issues or complaints (had a co-founder for a few years early on).  When Oracle came on board, they invited me to come to a summit to discuss JUG business.  I was also sent some information about my choices moving forward, which seemed to me the beginning of Oracle assimilating UG's into their existing UG framework.  I know there was some mention of classifying JUG's into a category, and I think there were going to be requirements made on JUG leaders.  That was when I unsubscribed from the list and went 'underground'. 

I enjoyed the autonomy and occasional support that Sun provided, but Sun never asked me to do anything like Oracle was asking.  No one from Oracle has reached out to me in quite some time, and I am under the impression that Philly JUG still ranks highly in terms of attendance.  I'm fine staying underground with the JUG, but it would be nice to get some books or t-shirts (maybe a speaker even?) from Oracle for the 1,000+ Java enthusiasts that show up for my meetings in any given year.  I'm pretty easy to find.

 Thanks for the comments, happy to have dialogue on these types of topics here or offline.

Dave

Martijn Verburg replied on Thu, 2012/08/09 - 10:26am

Hi Dave,

Thanks for responding so quickly!  It's really cool to find another JUG that's run exactly the same way as ours :-). That said we are moving to be a legal entity (non-profit) shortly to deal with the fact we also have a seat on the JCP EC and other similar bodies.

In terms of a battle between the Java lang folks and other JVM langs, yes I think some people will draw lines in the sand, but the majority of the folks I've talked to (espeically those who are thought leaders in the Java and JVM language space) are very much advocating a polyglot JVM model.

In fact the JVM Languages Summit ran recently where people like Brian Goetz (Oracle/Java), Charles Nutter, Atilla Szegedi, Martin Odersky etc all got together to discuss how they can move the JVM forwards for all of the languages.

In terms of the lsit *please* do come back. I remember that initial approach from Oracle well and this is when they actually started to improve. As a community (yourself included) we told them that JUGs are all very independant (even from each other) and that we'd happily work with Oracle User Groups but that we'd stay indpendant.

Oracle listened, agreed and have actually been very accommodating of our stance.  The last few joint user group conferences have actually seen them run in a very unconference style, focussing on real tech talks and modern communication techniques.  The Oracle User Group folks love it :-).

Oracle and the JUG community would be more than happy to support your JUG with speakers, swag etc.  Would be great to have you back on board!

Cheers,

Martijn 

Steven Goldsmith replied on Thu, 2012/08/09 - 10:50am in response to: Martijn Verburg

Martijn, you are correct. I see other JVM based languages augmenting Java and not supplanting it. I use Groovy as a Turing complete scripting solution for web scraping and do much of the heavy lifting in Java. At work we use Scala as well. The main issue is lack of good tooling in other JVM languages for SCA, etc.

Dave Fecak replied on Thu, 2012/08/09 - 11:58am in response to: Martijn Verburg

Martijn,
I know that the thought leaders in the Java language ecosystem are probably well aware that the JVM alternatives are gaining momentum, but I'm not sure enough of them are publicly coming out and saying 'Java language community - it's ok to use other languages now'. I'm not suggesting that they come out and say 'Forget Java and learn somethng Scala', but encouraging the JVM brand instead of just the Java language should be more prevalent.  Perhaps I just don't see it in my travels.

Earlier comments here questioning my intentions in writing this, and comments on this article posted elsewhere seem to point to a much more emotional response than I predicted.  Part of this is because I'm a recruiter and not a techologist, and of course anything a recruiter writes is entirely self-serving.  :) 

 After reading some comments, I'm much more concerned about the Java lang bandwagon folks missing the boat and being late to the party when it happens (I believe that it will).  Again, I don't believe Java is going to die, but I believe the other langs will collectively tear into Java's market share on new projects and collectively will be a big enough market that is hard to ignore. 

If my article were written by one of the leading Java thought leaders, or even publicly endorsed or promoted by a leading Java thought leader, it would change the entire dialogue and commentary.  

The JVM language summit is something that could be used as a model for JUGs as well.  I heard from another leader who formed their JUG as a JVM group.  Locally we have Scala and Clojure groups that are continuing to grow - not huge yet, but people are interested. 

I'll reconsider my stance on Oracle's JUG program.  Again, the initial approach was a huge turn-off, but if they have changed the way they are interacting with the community I will listen (and I could use the swag!).

Dave

Chris Travers replied on Sat, 2012/09/22 - 10:50pm

I think one obvious additional piece is that if you are a monolingual programmer you tend to see things through relatively limited eyes.  If you know many languages and many ways of working, it often is important in being able to better assess your own skills and designs.

 Java programmers would be well advised to learn another language even if Java was still on the rise. 

Dave Fecak replied on Sun, 2012/09/23 - 7:51am in response to: Chris Travers

Excellent point. Not only learning new languages, but different approaches and paradigms 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.