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...
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...)
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 pjmlp commented:
Voted other, as I think it is a set of options and not a single one.
Proper support for type inference
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.
The past two completed Java.net polls and the current poll all celebrate the formal release of Java 8. The first poll asked for your view of the significance of Java 8, while the second poll asked when you plan to download Java 8.
A total of 262 votes were cast in the first poll, which completed two weeks ago. The exact question and results were:
How significant is the Java 8 release?
21% (55 votes) - It's the most significant Java release ever
35% (91 votes) - It's among the most significant Java releases ever
29% (76 votes) - It's an important major release
6% (17 votes) - It's a typical Java major release
6% (17 votes) - It's not all that significant, really
2% (6 votes) - Other
So, a majority of the voters (56%) consider Java 8 to be one of the most significant Java releases ever, or the most significant release. Adding in the third option, we can say that 85% of the voters consider Java 8 to be an important major release.
A further 6% consider Java 8 to be a "typical" major release, while 6% consider Java 8 not to be all that significant. Meanwhile, 6 voters found none of the choices to represent their view of Java 8's significance, but none of them chose to post a comment describing their view.
So, if a large majority considers Java 8 an important release, how quickly are people downloading Java 8? For that, we look at the results of the second poll. [Note: Java.net polls are not scientific.]
There were 301 votes cast in the second poll, which completed earlier today. The exact question and results were:
How soon will you download Java 8?
36% (107 votes) - I'm already working with Java 8
28% (83 votes) - I've downloaded Java 8, but haven't done much with it yet
14% (43 votes) - I'll probably download Java 8 in the next few weeks
10% (31 votes) - Probably some months from now
6% (16 votes) - Before Java 9 comes out
3% (10 votes) - I'm not interested in Java 8
3% (9 votes) - Other
Just under 2/3 of the voters (64%) say they've already downloaded Java 8, and a surprising majority of these say they are already working with it. Another 24% expect to download Java 8 within the coming weeks or months. By the time Java 9 comes out, 94% of the voters indicate they will have downloaded Java 8.
Of the remaining 6%, half state that they have no interest in Java 8, and the other half selected "Other."
pjmlp posted a comment that I'd think applies to a great many Java/JVM developers:
I downloaded it, but I don't have any hopes to use it at work for the time being. Recently I joined a new greenfield project that makes use of Java 6 as their target version.
The poll didn't distinguish between downloading Java 8 for work or out of curiosity. But it would be surprising if the percentage of developers using Java 8 at work was significant so soon after the formal release.
The most recently completed Java.net poll, which was submitted by Walter Nyland, asked the community about which technologies represent the future of the view layer in Java EE apps. A total of 245 votes were cast in the Java 8 poll, and two comments were posted. The exact question and results were:
What's the future of the view layer in Java EE applications?
26% (64 votes) - Java EE component libraries will continue to dominate
40% (99 votes) - HTML5, especially AngularJS, is and will be the dominant view layer
6% (14 votes) - Neither the front-end nor the back-end of Java EE will survive HTML5
5% (12 votes) - Mobile front-ends will be the only lasting view layer
8% (20 votes) - Some other technology will replace the view layer
9% (22 votes) - Java EE never had a significant place in the Java ecosystem, ever
6% (14 votes) - Other
One thing this result implies is that HTML5 is gaining traction, or developers expect that it will do so over time. This confirms the fairly revolutionary nature of HTML5, and it also confirms that many developers know enough about it to consider it the future of the view layer in Java EE apps.
It's not too surprising (in my opinion) that "Java EE component libraries" finished in a strong second place. When you think about existing applications, and existing libraries that teams have used and built into their Java EE applications over years of effort, in many cases it's going to be easier for companies to utilize their existing code as the starting point in new applications, compared with starting from scratch with HTML5.
Together, HTML5 and Java EE component libraries captured about 2/3 of the votes. No other option achieved a double-digit percent.
Some of Walter's options provided developers with an opportunity to critique Java EE's own future with the context of this poll. For example, 6% believe that "Neither the front-end nor the back-end of Java EE will survive HTML5"; 8% think the whole concept of a "view layer" will become obsolete ("Some other technology will replace the view layer"); and 9% chose "Java EE never had a significant place in the Java ecosystem, ever."
6% of the votes went to "Other" and the two thoughtful comments may have come from this group. gkbrown commented:
"There should not be any view layer in Java EE. Java EE should be a service-provider tier that any type of client (HTML, native, etc.) can communicate with."
Meanwhile, tbee said:
Pure client side rendering has its place but also many drawbacks, where security sensitivities are probably one of the most important issues, but unpredictable performance is a good second. So I do not believe server side HTML generation will go anywhere soon, but I'm highly in doubt if it will be JSF. More of the logic will move to the front end, and JSF is not well suited for that, but not as far as Angular.js wants it.
Thanks again to Walter Nyland for providing us with a great poll!
In the most recently completed Java.net poll, the community selected Jenkins as its preferred Continuous Integration (CI) server. This was the third in a series of Java.net polls related to Java tools. A total of 260 votes were cast in the poll.
The exact question and results were:
Which Continuous Integration (CI) server do you prefer?
7% (17 votes) - Bamboo
1% (2 votes) - Continuum
2% (6 votes) - CruiseControl
8% (20 votes) - Hudson
50% (130 votes) - Jenkins
0% (0 votes) - Pulse
7% (19 votes) - TeamCity
1% (3 votes) - Another CI server
24% (63 votes) - I don't use a CI server
headius commented: "No mention of TravisCI?" There are likely some others I missed as well...
The usual caveat applies: this is not a scientific poll. Still, my guess is that the result probably is fairly representative of what's actually happening among development teams. There are many CI servers, but Jenkins seems to receive the most attention and commentary among the sources I follow in selecting interesting material for the Java.net home page.
If we remove the 24% of voters who said they don't use a CI server, then the result is even more impressive for Jenkins: among the voters who use CI servers, 66% selected Jenkins.