Skip navigation
1 2 3 Previous Next

editor

1,645 posts

At the recent OTN Java Developer Day in Boston (US), during his presentation "Java SE - The road forward, 2011 edition," Danny Coward took some time to talk about the new scripting features in Java SE 7. In a little demonstration, he showed a code snippet that begins withimport javax.script.x and continues with creating a script engine (for example, for Javascript). The objective of the new API, Danny said, is to let other languages use the Java Runtime.

This is more commonly talked about as InvokeDynamic, which is JSR 292. The Java SE 7 Developer Preview page lists JSR 292 at the top of the list of new features and enhancements for Java SE 7. That entry links to Java Virtual Machine Support for Non-Java Languages, which provides an overview and examples.

So, what does invokedynamic provide?

The invokedynamic instruction introduced in Java SE 7 simplifies the implementation of dynamically typed languages on the JVM. It can also potentially improve the performance of these languages.

There are three steps involved:

The discussion in the documentation describes what all of this means and provides basic examples.

As you'd expect, there is some complexity to linking up code from dynamically linked languages with Java. But the benefit of the new invokedynamic capability, in my view, is that it raises the work in accomplishing this out of the low-level "mud" (you'll probably know what I mean by this, if you've done work in the past trying to seemlessly link code from very different languages) by providing a framework that can be applied to a great many different situations. Once you become comfortable with using the invokedynamic capability, you'll be able to apply it to new situations and new tasks, and achieve integration of Java and non-Java code bases with much greated efficiency that was possible before. At least, that's my take on the benefit ofinvokedynamic.

If you'd like more information, consider visiting the OpenJDK Da Vinci Machine Project site, which provides links to related articles, presentations, and other documentation materials.


Poll

Our current java.net poll asks How would you rate the responsiveness and ease-of-use of the bugs.sun.com website? Voting ends Monday.


Spotlights

Our latest java.net Spotlight is Eric S Chan's new article, OpenICOM: A JPA Framework for Integrated Collaboration Environments, Part 1 -

This article is the first part of the three parts series to present a new project http://java.net/projects/open-icomin java.net to incubate a JPA framework for developing integrated collaboration environments. The first part explains the advantages of the JPA programming model, which embodies the design patterns that are well-suited for managing...

We're also still featuring Adam Bateman's JDK 7 nearing the endgame -

Just a reminder that JDK 7 is nearing the endgame and now is the right time to grab the latest JDK 7 build and give it a test drive. Once it goes beyond the end of March then the release will start to get locked down and it will get harder to get fixes or changes in (don't leave it too late). The important thing is to make sure that your existing code works well...

Java News

Here are the stories we've recently featured in our Java news section.

  • Jean-Fran

Tori Wieldt interviewed Mark Reinhold (Chief Architect of the Java 7 Platform) this afternoon, in a talk that was streamed on Oracle Technology Network Live. Mark reiterated that "Plan B" is the Java 7 plan going forward -- a reduced Java 7 feature set, but an earlier Java 7 release. The features that are close to complete will be included in Java 7, which will be released mid-2011. Remaining features will be in Java 8.

Mark said Java 7 will include:

  • most of Project Coin, including try-with constructs and the diamond operator (which facilitates getting more done with less code)
  • InvokeDynamic, which will facilitate integration with scripting languages like Ruby
  • lots of smaller items

Java 8 will include the items not included Java 7, for example:

  • Project Lambda (closures and other enhancements related to development for multi-core processors)
  • Project Jigsaw (modularity)
  • the remaining Project Coin features
  • additional smaller items

Mark invites our assistance with bringing out a solid Java 7. If you'd like to help, go to download.java.net/jdk7 and try out the latest Java 7, see if your existing apps that run on JDK 6 still run, try out some of the new features, etc.

See Mark's recent blog posts It's time for ... Plan Band Re-thinking JDK 7 for more discussion of the Java 7 plan.


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. You can find historical archives of what has appeared the front page of java.net in the java.net home page archive.

-- Kevin Farnham
Twitter: @kevin_farnham

Somehow, in my meanderings yesterday, I came upon Darryl K. Taft's presentation on eWeek, titled Application Development: 15 Ways Oracle Can Make Java Better (and Improve Its Stance with Developers). The first slide from this presentation that came up on my browser was the last, Slide 16, which is titled "Really Treat Java as 'One of the Crown Jewels'." When I went back and reviewed the entire presentation, I saw a lot very good points. The question I have is: do we really want the solutions to Java's problems to come directly from Oracle? Or, would we prefer Oracle to take a more hands-off approach than Sun did, and instead stimulate change through supporting a vibrant community?

Of course, on can ask: can an independent community really address big issues? Isn't a benevolent dictatorship much more efficient? I'd say that Linux is evidence that you don't need a benevolent dictatorship in order to advance an open source technology.

It's very early on in the history of the merged Sun-Oracle. So, it's not clear what direction Oracle will ultimately take. Overall, it seems to me that Darryl advocates the benevolent dictatorship approach. But I think in this case that approach has a risk of backfiring, because many in the Java community distrust the slick and powerful corporate giant. So, the arguments that impeded Java's progress today (what should and shouldn't be in Java 7, etc.) -- if Oracle simply dictates the decisions, even if the decisions are well thought out and make perfect sense for Java's future -- that's going to turn off a lot of the Java community. So, largely for this reason, I don't know if the overall approach Darryl advocates is the right one, for Oracle or for Java -- despite the seriousness of some of the issues Darryl documents in the first 15 slides of his presentation.

Getting back to the concluding Slide 16 ("Really Treat Java as 'One of the Crown Jewels'") -- here's the opening statement to Oracle:

Overall, make up your mind and communicate clearly about your strategy for Java's future.

OK, yes, that's a good thing. But, isn't the essence of openness to say "nothing changes immediately, we want the Java community to continue to be the primary force behind the future of Java"? Thus far, Oracle has taken great care to not step into Java with a corporate-centric vision. Is this not a good thing?

The next statement in the slide confirms that Oracle has indeed been quite "hands-off" thus far:

For good or bad, Oracle did not do much to prune anything significant from Sun's many software strategies (some of which were flawed).

Again, my question is: who do we want to do the pruning? Who's to decide what should be pruned? Clearly, the author believes heknows which software strategies were flawed and should have been pruned by Sun. But will everyone in the Java community agree with his -- or Oracle's -- assessments? Would the to-be-pruned project communities agree? Again, my question: do we really want the corporate entity Oracle to start making these decisions?

Moving on in the slide:

The notion of supporting three IDEs is confusing. It didn't really work for BEA and while it sort of sounds good here, it's messy.

A few months ago, I created a poll that asked Which IDE do you use? In that poll, I neglected to include IntelliJ IDEA (because most of my communications as java.net editor were with NetBeans and Eclipse users). I'll tell you, the push-back from that exclusion was immense. The poll was boycotted by many IntelliJ IDEA users.

Even if it's "messy" for Oracle to support three IDEs (JDeveloper, Eclipse, and NetBeans, I assume), I don't see how that's a problem. From the developer community point of view, I think it's great, actually. As for "confusing" -- when you go to a grocery store, do you find it confusing to see many different varieties of vegetables and fruits? Even if it is confusing, don't we enjoy the opportunity to choose!?

Onward:

It's not possible to focus equally on every one of the many initiatives, which means that some things get starved and perhaps die in a year anyway.

That's how marketplaces work. In a great many areas, Oracle is saying "we're going to keep our hands off" and let market reality take its course. 80% of open source projects fail. 90% or more of new businesses fail within their first five years. 95% of people who try out futures/derivatives trading end up losing money and quitting. This is how the marketplace works. That some initiatives starve and die is normal. It would be abnormal for all or most of them to succeed. Oracle is just taking a hands-off approach, letting the nature of the marketplace make the final decisions. IMO, anyway...

Finally:

As Oracle EVP Thomas Kurian said, "Java is one of the crown jewels" Oracle got in the Sun acquisition. Treat it as such.

From what I see so far, Oracle is doing exactly that: it's treating Java as a crown jewel so valuable that it doesn't want to tamper with Java as an independent organism. I see Oracle as having listened to many unofficial messages from Sun, and from the Java community, during the nine months of acquisition wait time, stating that with respect to Java, Oracle wasn't acquiring a "product" -- rather, it was acquiring an opportunity to invest in a vibrant, open technology, that still has immense growth potential going forward, if only it is allowed to proceed within the organic, multi-faceted realm that has hitherto fostered its growth. Thus far, I see that message as having been heard by Oracle.

No dictatorial statement of Oracle's "strategy for Java's future"? That's exactly what I myself was hoping for, post-acquistion. Let's let the Java community itself make the decisions on Java's future. The best thing Oracle can do, in my view, is set Java even more free of corporate guardianship than was the case under Sun. This means supporting the Java community, but not dictating the result.

Hopefully, the community will ultimately find the right solutions to most of the problems Philip delineates in his presentation -- solutions to the problems the community decides most urgently need solving, that is. Yes, set the JCP free (as Philip says in Slide 7) and provide Apache an unrestricted Java TCK (as Philip says in Slide 3). Doing these things frees Java further into the hands of the community.

Progress may be slower when it is led by a diverse, fractious community. But, the community stays interested and more involved that way. That's a healthy situation for Oracle to try to promote, in my view.


In Java Today, the JCP Program Office has announced the Results of the ME Special Election:

Yesterday the ballot closed. Cablelabs is the new ME EC member. Detailed results follow below: * Cablelabs (Jon Courtney) with 48 votes (30%)...

Arun Gupta has posted TOTD #121: JDBC resource for MySQL and Oracle sample database in GlassFish v3:

This blog clearly explains how to configure the MySQL sample database (sakila) withGlassFish. Even though the instructions use a specific database but should work for other databases (such as Oracle, JavaDB, PostgreSQL, and others) as well. The second half of the blog provide specific syntax for the Oracle sample database...

Adam Bien provides code and explanation for the Simplest Possible EJB 3.1 Timer:

A timer doesn't have to be a singleton - it can be a @Stateless and even a @Stateful bean. The method doWork() will be invoked every second. There is no registration or configuration needed...

In today's Weblogs, Santiago Pericas-Geertsen is Exploring Hypermedia Support in Jersey:

During the last few weeks, Marc H., Paul S. and myself have been exploring some ideas to support Hypermedia in Jersey. The outcome of this investigation is an experimental implementation that is available in Jersey's trunk (module version 1.2-SNAPSHOT). Exactly what it means to support hypermedia is still an area of research, and some other implementations of JAX-RS (notably RESTfulie) have also proposed APIs for it. The REST architectural style, as defined by Roy Fielding in his thesis, is characterized by four constraints...

Juliano Viana posted his first java.net blog, Making Apache Wicket even more designer friendly :

Hi, my name is Juliano Viana, I'm a software consultant and developer based in Brazil, and I've been honored with the opportunity to blog in Java.net! Hope I can contribute something to this great community resource. For my first blog post at Java.net I've choosen to write about my web framework of choice, Apache Wicket. A designer and developer friendly framework Wicket is a great web framework - it allows the creation of complex web interfaces, complete with fancy ajax effects, in a simple and straigthforward way...

John Ferguson Smart asks you to Have pity on your system administrator: tips for using Hudson with complex Maven build jobs:

A new Java Power Tools Newsletter is out! This month, we will be taking a look at some of the ways you can make life easier for your system administrator, when you are using Hudson for large Maven projects. Check it out...

In the Forums,morrisford is working on Portal issues involving Wonderland: Maggie and I were experimenting with 'portaling' between three servers and encountered several issues. These things seem to happen every time that multiple jumps are done, ie, from world1 to world2 to world3 to world1, etc...

In the GlassFish forum, Eve Pokua is seeing a javax.persistence.PersistenceException: Hello everyone, I have the following error. I am trying to bind data from my DB into a Jtable using the following tutorial. When it's not bind it runs ok. But binding it causes the following errors...

In the LWUIT forum, digitalsol has S60 devices performance problems: Hello, I've tested my app on Nokia N97 and 5800 and the performance is terrible in comparison to Nokia E71 for example. Can someone give me more info if this is a known problem, are there ways to improve the performance, etc...


Our current Spotlightis the Oracle announcement about Kenai.com: "Our plan is to shut down kenai.com and focus our efforts on java.net as the hosted development community. We are in the process of migrating java.net to the kenai technology. This means that any project currently hosted on kenai.com will be able to continue as you are on java.net. We are still working out the technical details, but the goal is to make this migration as seamless as possible for the current kenai.com projects..."


This week's java.net Poll asks Does your company use an enterprise repository manager for development? Voting will be open for the next week.


Our latest java.net Feature Article is Maven Repository Managers for the Enterprise, by John Smart. We're also featuring Jeff Friesen's Reading Newsfeeds in JavaFX with FeedRead, in which Jeff demonstrates how to apply JavaFX's RSS and Atom newsfeed capabilities to create a snazzy little JavaFX app that can run stand-alone or in a browser.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


Current and upcoming Java Events:

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.

-- Kevin Farnham
O'Reilly Media
Twitter: @kevin_farnham

The Hudson team has launchedContinuous Blog, the official Hudson weblog. R. Tyler Ballance introduced the blog in his Welcome to Continuous Blog! inaugural message:

Hello and welcome to "Continuous Blog", the official Hudson weblog! If you don't mind me saying so, I think its arrival is long overdue. Since Hudson started in November of 2006, there hasn't been a central "voice" for the project. In just a few short years Hudson has grown into a substantial project withhundreds of plugins and thousands of users around the world. Kohsuke's nice Java-based extensible continuous integration server has grown up into fantastic tool with a great community around it...


 

The next few entries discuss new translations of Hudson in the Hudson 1.344 release, the 1.344 release, and the hotfix 1.345 release.

The plans for the Continuous Blog are broad. In his welcome post, Tyler says readers can expect to see:

Overviews of the latest releases of Hudson and its plugins, interviews and discussions with the developers who have contributed to Hudson over the years, guest posts by power-users on how Hudson fits into their workflow and much much more (really).

In an email, Tyler told me the blog will also feature Hudson tutorials, spotlights on companies the use Hudson, and articles. In other words, the Continuous Blog is intended to be a centerpiece for the Hudson community, more like a community site, or information center, than simply a collection of blog posts.

Note that you can also follow Hudson on Twitter (@hudsonci) -- that's actually where I first found that the Continuous Blog was about to happen. Hudson is also on Facebookand ohloh. Ohloh's current estimates for the Hudson project are that the code base has 625,800 lines, contributed by 169 developers, at an equivalent cost of $9,200,000 (US).


In other Java Today stories, Peligri provides an update onGlassFish Support, HA, Clustering and More:

The Sun-Oracle Strategy WebCast and subsequent Webcasts and Docs generated multiple comments and discussions threads in the Web from which I want to highlight a few comments in here. Please check the original posts for context, clarification and caveats...

On Twitter, Intel's Aaron Tersteeg pointed his followers to today's Parallel Programming Talk on Intel Software Network TV. The title of today's broadcast is "Refactoring (Parallelizing) Java Applications with Professor Danny Dig (University of Illinois U-C)." You can watch it Live on ISN TV at 8:00 AM Pacific Time (U.S.), Tuesday, February 9. If you can't see it live, just revisit the Parallel Programming Talk on Intel Software Network TV site later, and you'll be able to watch the recorded show.


In today's Weblogs, Jim Driscoll is studying HTML5 Semantic Tags:

Over the weekend, I was reading Mark Pilgrim's great book on HTML5- and when I got to the part about the semantic tags, I thought it might be worth a quick mention. In case you've missed out on HTML5 in general (and don't want to take the time to read that book I linked above), the idea behind semantic tags is that many sites use div blocks to mark out the same kinds of content, over and over. Content like headers, footers, and nav bars...

Fabrizio Giudici has a message for Young speakers, remember Jazoon deadline is Apr 4:

Yesterday I made my proposal submissions for Jazoon 2010 - as usual at the last minute, as now the call for paper is closed. Young speakers  (under 26) wishing to make their first experience should recall they have got still time until April 4. The three selected speakers will have the opportunity of going to Zurich with no expenses for the conference as well as flight and hotel...

Markus Karg asks Like to use XSLT 2.0? Move to Saxon!:

For many years I am using XSLT now for a lot of tasks in both, development and runtime environments: Source generation, creating HTML from XML data, or even rendering SVG vector graphics from XML finance data. But what really bothered me was that the XSLT transformer contained in Java (even in Java 6's latest release) was just able to do XSLT 1.0 but not XSLT 2.0. XSLT (and XPath) 2.0 comes with such a plethora of features that makes coding so much easier, like calling XSLT-written functions from XPath, "real" loops (instead of recursive calls) or dealing with sequences and many more. I couldn't wait any longer to get it, so the question was: What to do? ...

In the Forums,mmo18 is seeking a SOAP stack that can run inside an applet?: Hi - I hope this is the right forum to ask this question. If not, please advise! I am seeking a simple SOAP stack that can run as part of an applet. The SOAP stacks I tried so far (Apache, Java 6's built-in SOAP stack) cause security...

In the ME Interest forum, rapiz has questions aboutSetting default network connection for j2me apps: Hi, In my application i use socket connection to my server. my problem is, that some mobile phone (e.g. samsung) is configured to use WAP as default for j2me apps. and it blocks my socket. If i want to change it, i...

In the GlassFish WebTier forum, eheb is seeking ademo of JSF2 ui components library ?: I am looking for web demo and its source codes about JSF2 ui components library : mojarra or myfaces implementation ... Best regards.


Our current Spotlightis the Oracle announcement about Kenai.com: "Our plan is to shut down kenai.com and focus our efforts on java.net as the hosted development community. We are in the process of migrating java.net to the kenai technology. This means that any project currently hosted on kenai.com will be able to continue as you are on java.net. We are still working out the technical details, but the goal is to make this migration as seamless as possible for the current kenai.com projects..."


This week's java.net Poll asks Does your company use an enterprise repository manager for development? Voting will be open for the next week.


Our latest java.net Feature Article is Maven Repository Managers for the Enterprise, by John Smart. We're also featuring Jeff Friesen's Reading Newsfeeds in JavaFX with FeedRead, in which Jeff demonstrates how to apply JavaFX's RSS and Atom newsfeed capabilities to create a snazzy little JavaFX app that can run stand-alone or in a browser.


The latest Java Mobility Podcast is Java Mobile Podcast 92: MIDP 3.0 in Depth: Tutorials and Demonstrations: Excerpts from the JavaOne 2009 MIDP 3.0 In Depth: Tutorials and Demonstrations session with Roger Riggs, Lakshmi Dontamsetti and Stan Kao.


Current and upcoming Java Events:

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.

-- Kevin Farnham
O'Reilly Media
Twitter: @kevin_farnham

Going Wearable: Java, Raspberry Pi, and Cool Peripherals 8:30 AM - 10:30 AM - Hilton - Franciscan A/B Adopt-a-JSR for Java EE 7 and Java EE 8 11:00 AM - 12:00 PM - Parc 55 - Powell I/II Lambda Q&A Panel 12:30 PM - 1:30 PM - Hilton - Yosemite B/CAsk the JDK Architects, Part 1 4:00 PM - 5:00 PM - Hilton - Imperial Ballroom A The Modular Java Platform and Project Jigsaw Q&A 7:00 PM - 7:45 PM - Parc 55 - Cyril Magnin II/III  
Java EE 7 Soup to Nuts 8:30 AM - 10:30 AM - Parc 55 - Market StSecuring Java: Track Opening Presentation 11:00 AM - 12:00PM - Hilton - Golden Gate 6/7/8 Practical Guide to Making Your Home Smart with Java ME Embedded12:30 PM - 1:30 PM - Parc 55 - Powell I/II What Every Java Programmer Should Know About Floating-Point Arithmetic 2:30 PM - 3:30 PM - Hilton - Imperial Ballroom A Coding for Desktop and Mobile with HTML5 and Java EE 7 2:30 PM - 3:30 PM - Hilton - Continental Ballroom 6 Driving the Java Carputer Farther and Faster 5:30 PM - 6:30 PM - Hilton - Continental Ballroom 4  
We're one week out from JavaOne, and the frenzy of preparations will soon reach its peak. As usual, We'll kick thing off with the User group Forums on Sunday. Here are a few of the great sessions to check out! Meet the NetBeans Community, with Boeing, Jelastic, JRebel, Vaadin, and More 9:00 AM - 9:45 AM - Moscone South - 200 Starting a JUGgernaut: How to Start and Rapidly Grow Your JUG10:00 AM - 10:45 AM - Moscone South - 252 Tools for the Day-to-Day of JUG Management 11:00 AM - 11:45 AM - Moscone South - 252 The OpenJDK Project: Your Java. Our Java 11:00 AM - 11:45 AM - Moscone South - 236 Everything You Ever Wanted to Know About Java 4:30 PM - 5:15 PM - Moscone South - 236 The JCP: Meet the Board, Improve Java, Have a Beer! Sep 28, 5:30 PM - 6:15 PM - Moscone South - 236  

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)

Java User Groups have been active in the JCP.Next effort from the start. In recent years, JavaOne has featured a JCP Panel discussion that features JCP leaders as well as JUG leaders who are actively participating in the JCP, and working toward the JCP.next objectives. Just recently, JCP.Next.4 has launched. This is JSR 364: Broadening JCP Membership.

In her recent post, And then there were four - the JCP.Next effort continues!, Heather VanCura describes the objectives of JSR 364 (aka JCP.Next.4):

This JSR was submitted for review last week to address the membership related changes started in JSR 358. We are moving forward quickly to implement changes that will increase Java developer participation, but don't require JSPA changes (ie. no lawyers involved)! ... JCP.Next 4 ... will focus only on membership changes to address Individual Membership issues and better support JUGs... This JSR will enable more participation, while ensuring we have the appropriate IP commitments. We want to simplify the ability for individuals to participate, without requiring an employer signature."

On April 17 (the day Heather published her post), there was a JUG leader conference call that included the JCP's Patrick Curran and Heather. You can actually listen to the entire call online by pointing your browser to http://bit.ly/1mZR9eV, entering your name and email address, and clicking "Listen"; alternatively, you can call 888.899.7904 (US/Canada) or 706.679.5560 (International/Local), wait for a prompt, then enter the Playback ID 148913107 followed by the pound sign (#).

SouJava leader Bruno Souza helpfully took notes during the conference call, and posted them on the Java.net JUG Leaders email list.

Patrick led off the agenda by outlining the history of the JCP.Next effort. He noted that the easier efforts, which addressed transparency and participation (JSR 348: Towards a new version of the Java Community Process), and the merging of the Executive Committees (JSR 355: JCP Executive Committee Merge) were addressed first. These JSRs are now complete.

The third JCP.Next effort, which addresses intellectual property (IP), licensing, and Java Specification Participation Agreement (JSPA) changes (JSR 358: A major revision of the Java Community Process) is more difficult, and is ongoing. Patrick noted that the areas of JSR 358 that involve lawyers and companies, such as IP and the JSPA, are complicated. Still, Patrick believes there will be concrete progress here in the coming months.

More progress has been made on the individual membership portion of JSR 358. Patrick said that over the history of the JCP, and as Java has matured, the JCP membership mix has shifted away from corporations and toward individuals.

Unfortunately, at least one company has tried to use this fact to game the JCP system. Patrick noted that a few years ago, a corporation decide to run in an election. Lo and behold, several weeks earlier, a large number of employees who work at that corporation had joined the JCP as individual members! Just in time to vote in the election...

Heather VanCura talked about JSR 364, JCP.Next.4, providing an overview that can also be read in her "And then there were four" post. Heather notes that there is aJava.net JCP.Next.4 project that provides a means to follow the progress and participate in the work if you'd like to do that. Even commenting or asking questions is valuable participation.

Heather is the Spec Lead for JSR 364, and she'd very much welcome your support. As she said in her post: "Leading a JSR is a considerable effort, and it is almost impossible for an individual to do it alone."


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)

Every now and then I see an article that cites the recently close "race" for "most popular programming language" between Java and C, according to the TIOBE Index -- almost inevitably followed by remarks about Java's long and painful decline. TIOBE uses a somewhat complicated formula for computing its ranking; but the core component of the method seems to be search statistics for the name of each language followed by the word "programming," for example, "Java programming." This makes a lot of sense, because if you go to Google Trendsand search for, say, "Java" or even "JVM," you can readily see that those statistics include many searches that have nothing to do with the programming language Java or the Java Virtual Machine.

Below is the current TIOBE graph of the 10 most popular languages over the past 13 years or so:

The black line at the top is Java's TIOBE rating, while the nearby light blue line is C. One thing that stands out is that Java's "popularity" has been on a long, slow, decline, according to TIOBE's rating system. But does this mean that usage of Java is actually declining?

I think not, for several reasons. First, Java is a mature language. Wouldn't it be reasonable for a mature language to receive fewer searches on search engines like Google, Yahoo, etc., since a broad swath of developers are already very familiar with the language? Meanwhile, today's hot new, programming fad might receive lots of searches, because it's "all the buzz" today? This seems possible to me, anyway.

But there's another, more mathematical approach we can apply here. Let's use a snippet of TIOBE's own approach, and combine it with some other data, and see what the numbers say.

Below is the Google Trends plot of "interest over time" in Java programming:

According to this plot, "interest in Java" was at a peak perhaps in 2004 (but we don't see the data from before then), and today the level of interest is about 28% as high as it was then.

But, what does this really mean? Google Trends rates search topics on the basis of the proportion of searches for that term amid all searches. So, what this plot is actually telling us is that the proportion of Google searches for "Java programming" today is about 1/3 of what it was in 2004. Again, the reason I stated above might be part of this.

It's important too, though, that "interest" in the term "Java programming" has held quite constant since 2009. And here's where things get even more "interesting"... The table below shows the annual total number of Google searches, according to the site Statistic Brain:

                                       
YearTotal Google
Searches (billions)
20132,162
20121,874
20111,722
20101,325
2009954
2008637
2007438

Now, the Google Trends plot really tells us the level of "interest in Java programming" relative to the level of "interest" in all topics. Relative to all searches on Google, "Java programming" occupies a smaller proportion than was the case in 2004.

But, if we use the table above to convert this "proportional interest" data into a scale that represents the total number of actual searches for "Java programming," we get something like this:

                                                       
YearTotal Google
Searches (billions)
Relative Interest in
'Java programming'
Total Interest in
'Java programming'
20132,16228138
20121,87430128
20111,72230118
20101,3252988
20099542963
20086372942
20074383434

Here, what I've done is use 2007 as a basis, and computed the "Total Interest" result by taking into account the growth of total Google searches in subsequent years. This shows us that, on a nominal basis, searches for "Java programming" on Google more thanquadrupled between 2007 and 2013!

Rather than Java being a language that's enduring a long, slow decline (as you might think from pulling up the TIOBE most popular languages plot), worldwide interest in Java is actually surging!

Now, can we finally lay that "Java is dead" trope to rest???


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)

kfarnham

A Trio of Java 8 Polls Blog

Posted by kfarnham Apr 18, 2014

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.

New poll: Java 8 new features

Our current poll also has a Java 8 focus. The poll asks: What's the most important new feature in Java 8? Voting will be open until Friday, May 2.

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)

If you missed the Java 8 Launch Live Webcast, or if you'd like to re-review the webcast, or if you'd like to view more in depth presentations about specific areas of Java 8 (including Java SE 8, Java SE Embedded 8, Java ME 8, and the Internet of Things and The Enterprise) -- then, you'll want to visit the Java 8 Launch site that Oracle has put together. The site is an excellent collection of Java 8 reference materials, including the Java 8 Launch Live Webcast.

For example, 12 Java SE 8 sessions are available:

  • Brian Goetz: Java SE 8

Filter Blog

By date: