Skip navigation

In the just-completed Java.net poll, most Java/JVM developers who voted indicated that, where they live, work opportunities for Java/JVM developers are plentiful, or at least stable. A total of 203 votes were cast in the poll, which ran during the May 16-30 period. The exact polling prompt and results were:

Where I live, work opportunities for Java/JVM developers are:

  • 22% (44 votes) - Rapidly increasing: it's hard to find enough talented Java/JVM developers
  • 31% (63 votes) - Plentiful, it's not that hard to find work if you're a good developer
  • 20% (40 votes) - Stable
  • 17% (34 votes) - Decreasing, some talented people are losing their jobs or don't have enough work
  • 11% (22 votes) - Other

This is, of course, not a scientific poll, and a survey in which 203 out of an estimated almost 10 Million Java/JVM developers voted will of course have a margin of error. Still, as always, it's interesting to look at the picture the voting results depict.

First of all, more than half of the voters say work opportunities where they live are either plentiful or expanding so much that it's become difficult to find enough talented Java/JVM developers. That's a very, very good situation! In the company where I work, I see Java being increasingly selected for more and more new projects, and for the first time, in the past year I've heard of projects that are utilizing tools like JFrog's Artifactory and the Jenkins Continuous Integration Server. These developments imply to me that certain groups in the company have decided to make a long-term investment in developing new projects using Java. (By the way, the other strongly emergent language being used within the company is Python.)

Getting back to the poll: 20% say work opportunities are stable. So, almost 3/4 of the voters are in a pretty good situation at present with respect to finding and having work.

Still, 1/6 of the voters say opportunities where they live are decreasing, to the extent that talented people are losing their jobs or don't have enough work. This is a difficult situation. You may know that if you move to a different location, you'll likely be able to find good work; but, especially if you have a family and you're well settled in you home area, whether or not to make that kind of move is a difficult decision. I faced it myself back in the early 1990s recession in the U.S. We investigated other states where work was definitely more plentiful, but it would have been a very big, long-distance move. Ultimately, we decided to stay put; but, in the end, we weren't able to weather the extensive duration of the recession in our state, and, with small children in tow, we were forced to migrate anyway (but, fortunately, not as far away). So, I can't really offer advice to developers facing that situation. I just wish all of you good luck...

New poll: Java.net

Our new poll is about Java.net itself. It asks you to respond to the prompt: What I like most about Java.net is....

Farewell!

I can't really say how long this poll will be open, because my Editorship of Java.net ends tomorrow. It's been a great 62 months of following the downs and ups of Java and the JVM during that period, blogging, creating and analyzing polls, helping new Java.net bloggers, attending Java conferences, and conversing with so many innovative, creative developers...

Happy coding! (I'll be doing more of that myself, going forward...)


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feedand the java.net blogs feed. To follow Java.net on Twitter, follow @javanetbuzz.

-- Kevin Farnham (@kevin_farnham)

In the most recently completed Java.net poll, more than 75% of the developers who chose to vote found there to be good reasons for using a non-Java JVM language. A (perhaps surprising?) 19%, however, considered there to be absolutely no good reason to use anything but Java on the JVM. A total of 181 votes were cast in the poll, and one comment was posted. The exact poll prompt and results were:

The best reason to use a non-Java JVM language is:

  • 23% (42 votes) - More modern language syntax
  • 6% (11 votes) - Better performance
  • 38% (69 votes) - Some non-Java JVM languages are better suited for certain types of programming
  • 8% (15 votes) - If you don't know Java that well, but you know another language that's been ported to the JVM
  • 19% (34 votes) - There's no good reason
  • 6% (10 votes) - Other

It took me a lot of crafting to come up with this poll, and I find the results (though this isn't, of course, a scientific poll) quite interesting. I wonder what people were thinking, in some cases.

First of all, that "Some non-Java JVM languages are better for certain types of programming" won a plurality of the voting seems very reasonable to me. The variety of non-Java JVM languages is already extensive, and it's ever-growing today.

I think the "More modern language syntax" surely was also a very reasonable selection. Some of the language changes in both Java 7 and Java 8 were essentially an attempt to catch up with features offered in other languages (including some popular modern non-JVM languages). Newer JVM languages, where there is no need for backward compatibility, no immense base of legacy code, can be designed from scratch with a fully modern syntax. That syntax, too, can be designed to facilitate the accomplishment of specific types of programming tasks, bringing us back to "Some non-Java JVM languages are better for certain types of programming."

I put the "Better performance" option into the poll largely out of curiosity. Java is not exactly known as a plodding beast when it comes to performance right out of the box, and if you really know what you're doing, you can tune Java to have incredible processing speed, or incredibly low latency, or incredible capability for processing massive volumes of data... I suppose there may be some non-Java JVM languages that, in their native state, already tune the JVM for various high-performance characteristics. I'm hoping, anyway, that that's the kind of thing the 6% who chose "Better performance" were thinking about...

I'm glad to see that only 8% said the best reason to use a non-Java JVM language is "If you don't know Java that well, but you know another language that's been ported to the JVM." I can see using a non-Java JVM language for that reason in a pinch, where you are pretty certain you won't be using the JVM much in the future. But, to become a Jython or JRuby developer simply because you don't want to learn Java probably isn't the best strategy if you're planning a long-term career as a software developer, perhaps some day proceeding into becoming a software architect.

This brings us to the 19% who selected "There's no good reason." I put this option into the poll in part to let some voters have fun and/or show their lifetime allegiance to Java. The question is, did most people select this option for fun? did some select it because they tried out a non-Java JVM language and didn't like it? did some select it because they are barely aware that non-Java JVM languages exist? I wonder... I'm hoping it was mostly proud Java veterans who selected this option.

6% of the votes went to "Other" and pjmlpcommented:

Voted other, as I think it is a set of options and not a single one.

  • Modern syntax
  • Proper support for type inference
  • Value types
  • Reified generics
  • Better FFI support with foreign languages
  • Ability to AOT to native code, if desired, officially supported as part of the reference toolchain

A nice list of reasons, I'd say...

New poll: Update on Java/JVM work opportunities

Every now and then, I like to ask the community about the outlook for work (whether you work at a full-time position at a company, or you're a consultant, or a trainer, or an author, or perhaps you run some other type of Java-related business). Our current poll prompts you to respond to: Where I live, work opportunities for Java/JVM developers are.... Voting will be open until Friday, May 30.

What Java.net poll would you like to see?

If you have a poll idea, get in touch with me by commenting on this blog post, or by sending an email to editor _at_ java.net, or by using our Submit Article/Blog form.


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feedand the java.net blogs feed. To follow Java.net net on Twitter, follow @javanetbuzz.

-- Kevin Farnham (@kevin_farnham)

Not too long ago, I actually was planning to attend this year's geeconconference, in Krakow, Poland. But, various events intervened, and I had to cancel. So, I'll have to just pretend it's the third leg of the Java conference hopping trip across Europe that Iwish I could have taken this year (the first two stops were Jfokus and JavaLand).

geecon's workshops actually happened earlier today; the formal conference runs for the rest of the week, May 14-16. Workshop topics covered SQL, Java 8, and SonarQube.

geecon has been around since 2009. Historically, the conference has usually moved to a different city each year, though Krakow has been the site of most of the geecon's thus far. More than 2000 developers have attended the conference in some years.

Java User Groups are an important component of the conference, with groups from Poland, Italy, France, Belgium, Egypt, Brazil, Austria, Ukraine, and other countries actively participating in past events.

geecon 2014 will feature almost 80 speakers, many of whom you see featured on the Java.net home page when they have time to write a blog post. There are 75 regular conference sessions, plus opening keynotes, lightning talks, and coffee break presentations.

Even if you won't be in attendance, you can follow @GeeCON on Twitter, or follow the conference as it proceeds via the #geeconhashtag.


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feedand the java.net blogs feed. To follow Java.net net on Twitter, follow @javanetbuzz.

-- Kevin Farnham (@kevin_farnham)

While looking at the bar graph from most recently completed Java.net poll about Java 8 implies a fairly strong consensus, in actuality I think this poll implies that there's quite a lot of disagreement on which aspect(s) of Java 8 are most important for Java/JVM developers going forward. A total of 245 votes were cast in the poll, and two well thought out comments were posted. The exact question and results were:

What's the most important new feature in Java 8?

  • 42% (105 votes) - Lambda Expressions
  • 18% (44 votes) - The Stream API
  • 5% (13 votes) - Compact Profiles
  • 4% (10 votes) - Security Enhancements
  • 2% (5 votes) - Nashorn Javascript Engine
  • 4% (10 votes) - Some other new feature
  • 9% (23 votes) - I can't pick just one new feature
  • 15% (36 votes) - I don't know

Before interpreting these numbers, I'd like to bring in the two comments that were posted, because these, I think, reflect the fact that Java 8 is actually a fairly complex release, with a greater breadth than we might have really been aware of back in the days when the disappointment over the postponement of Project JigSaw to a later release was dominating people's thinking.

Java.net user rdohna posted the first comment:

Lambda and Stream API are probably most talked about, but parameter reflection, date&time API, and type annotations are probably even more important, as they have been missing most from a modern language.

This immediately gets to my point: yes, Java 8 has at least one "blockbuster" feature (Lambda Expressions), and it does not include the originally-intended second "blockbuster" (Project JigSaw, although imo Compact Profiles are actually a pretty good step in that direction). But, rdohna's point is that a number of significant modern language deficits in Java are addressed in Java 8.

It's interesting to note at this point that ThoughtWorks Director / Software Architect / Meme Wrangler Neal Ford appended his "Java.next" series, which originally focused on Groovy, Scala, and Clojure as "your next programming language," to include Java 8 once he saw what the actual Java 8 release includes. See his Java.next: Java 8 as Java.next post, which we featured on Java.net last week for the details of his thinking.

Java.net user lbastendorff posted the second comment:

For me lambda expressions are good but annotations on types, parameters in reflection and default methods are the real big things. Unfortunately project coin still has not made it in as the ?. Operator would make my life so much easier. The new date time library might be nice if the system I spend my working life on wasn't so massive and entirely written around joda time. Migrating the system to JDK8 was not to hard though and we have already made extensive use of default methods in order to tidy up some of our own api's. This is working well on our internal alpha servers but will still be a few months from reaching any live client systems.

Here, we see a statement that Java 8 follows easily on Java 7 in terms of migration, but with a suggestion that Java 9 should do more than include a blockbuster feature, because there are still many more smaller language issues that need to be addressed.

Going back to the numbers, imo Lambda Expressions are critical, because that's what facilitates writing Java applications that are easily scalable on today's and the future's multicore devices. That was a critical need, I don't think anyone can deny that. But, just look at the voting. For a great many developers, other Java 8 enhancements are critical, and will significantly benefit their development efforts, and probably their careers.

What I really like about Java 8 is that it goes the extra kilometer/mile in attempting to keep Java relevant as a modern language. Yeah, Java has such a huge installed base that the COBOL/Fortran/C path is available: maintain security and stability on modern operating systems and hardware, and you just drift on into the future (with your legacy code persisting largely through its being wrapped in modern language containers), because it's prohibitively costly for companies to do otherwise (i.e., fully migrate the legacy code from Java to another language). But, this is not the path that's been selected for Java. Hence, Neal Ford's suddenly thinking "Hey, wait a minute -- Java 8 itself may be the future!"

Java 8 is a remarkable, and a remarkably diverse, innovation!

Now, Java 7 was cool -- least not because it proved to us that Java 6 wasn't going to become a more or less 'final' baseline version (like Fortran 77). But, with Java 8, Java and the JVM are exploring new, thoroughly modern territory. That's something to be very excited about.

Having programmed threadsafe code for 8-processor Sun Solaris machines starting more than 20 years ago (writing C code that actively managed threads and signals, etc.), I remain amazed at how brief a syntax the Lambda Expressions team produced to enable Java developers who don't really understand (and who may not want to understand) the intricacies of multithreaded programming to go out and now develop reliable threadsafe code. To add some syntax that directs the libraries to implement threadsafe execution was ingenious, imo. I, having dealt with developing that multithreaded code in C 20 years ago, consider Java 8's Lambda Expressions a monumental achievement.

I really hope Java 8 quickly becomes the predominate version. Companies should jump to Java 8 from all earlier versions if they want to stay relevant in today's multicore world, imo. But, as I said, and as the poll indicates, Java 8 contains so so much more!

New poll: non-Java JVM languages

Both Java 7 and Java 8 include many JVM enhancements that benefit non-Java JVM languages as well as Java itself. Our current poll prompts you to respond to The best reason to use a non-Java JVM language is... Voting will be open until Friday, May 16.

What Java.net poll would you like to see?

If you have a poll idea, get in touch with me by commenting on this blog post, or by sending an email to editor _at_ java.net, or by using our Submit Article/Blog form.


Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feedand the java.net blogs feed. To follow Java.net net on Twitter, follow @javanetbuzz.

-- Kevin Farnham (@kevin_farnham)

Filter Blog

By date: