Tuesday Apr 14, 2009

Multiple JVM Languages at JavaOne 2009

It's a good thing that the work to turbo-charge the JVM for multiple languages will make it into the JDK 7 builds in time for JavaOne, because as Roberto blogs, there's another scripting showdown planned. Last year they duked it out over a Twitter client (JRuby took the prize), what should it be this year ?

There are also great sessions planned each of the contestants in the Script Bowl 2009: representing Clojure, Jython, Groovy, JRuby, Scala.

And, to better understand how these all run, and can run better on the JVM, in a dual play on 'rebirth' and a period in european history starting in 15th century Italy, where scholars were noted for their pursuit of multiple skills, as typified by Lenonardo DaVinci, John and Brian are lining up an interesting talk on the Renaissance JVM.

(Check out the JavaOne session catalog yourself here)

Monday Apr 13, 2009

JDK 7-watch: NIO2

One of the features on the plate for JDK7, and incidentally, one of the features that has already made it into the weekly builds is the new NIO2 API.

NIO2 speclead Alan Bateman blogged late last week in some detail about features like the new filesystem api, and how the bread and butter of this new API is the Path class and the DirectoryStream interface for operations on file directories, like for performing a file search efficiently. And at last there is a way to get notifications when something in the filesystem changes.

Tuesday Mar 31, 2009

JDK and JRE Watch

Latest in a regular series from Java SE-land is a roundup of goodies from the last week.

You probably saw that Java SE 6 Update 13 shipped last week. Despite some wild headlines, this was bugfix release with some important security issues addressed. And a notable fix of this bug in the draggable applets feature, a sign that this feature is getting more of a workout.

Next Java SE 6 Update is 14, in early access, which most notably includes the Garbage First collector to play with.

This more predictable garbage collector is one of the features of the upcoming JDK 7, of which Martin did a nice overview, including the modularity work of Jigsaw (see API doc here).

As is the multi-language support: John posted a patched Java compiler and Netbeans for people to try out dynamic types, method handles, and invokedynamic features of the DaVinci Machine Project which are due to be put into JDK 7 builds for JavaOne.

Project Coin closed its slot today. Joe has been posting regular updates on the proposals for small changes to the Java language for this project. It's a much quicker way to get up to speed than the lively mailing list.

In other language news, there's an update to the Checker framework, which is a great way to try out the current state of the Annotations on Java types JSR 308.

Alex posted an update on the bugs fixed in the Swing App Framework, and is looking for input from Swing developers. SAF is due to go into JDK 7 late August.

And, did you want to come to JavaOne for free ?

Wednesday Mar 25, 2009

JDK 7: What to expect and when

Today, Mark posts a major update to the plan for JDK 7 reiterating the feature list first announced in December, and providing a milestone by milestone plan for when to expect each of the new features to make it into the builds for you to try out.

We're currently at milestone M2, which includes the new G1 garbage collector (with some new bug fixes) and JSR 203 aka New IO APIs 2.

There should be a nice package to play wth in M3 in time for JavaOne, which will add JSR 292, with the Java language changes in Project Coin and Swing App Framework coming by fall this year.

There are some features in the feature list that have not yet been scheduled into the plan (like the modularity work in Project Jigsaw) but stay tuned, because they will get pegged to a milestone soon.

Tuesday Mar 24, 2009

Finding Files in Java

No sooner than the latest iteration of the upcoming FileSystem API makes it into the latest JDK7 build than someone is trying it out. Today, Sharon illustrates the use of the API to walk a file tree to look for files (including following any symbolic links) that match a given search criterion.

And if the file you need isn't on your laptop, maybe its on your Java ME phone. Just last week, Vikram did a detailed walk-through of how to use the Java ME Bluetooth APIs (standard API in the current MSA Java ME platform), to hookup to your laptop and push over the file to where you need it.

Monday Mar 23, 2009

Planet Cast One: JSR 292, DaVinci Machines and Multiple-languages

Tune in to the first Planet Cast with John Rose from Sun's Hotspot JVM group for an in depth conversation (about 40 mins) with the Janitor all about dynamic languages on the JVM, JSR 292, and the work to make them easier to bring onto the JVM and run faster there than anywhere else. And what's John's favorite language other than Java ?

Tune in here.

Friday Mar 20, 2009

Planetarium goes global !

The Planetarium is now available in Russian !

Wednesday Mar 18, 2009

JDK 7-watch

For those of you who track these things, we are on Java SE 6, Sun's JRE is at version 6 Update 12.

The next JRE update of note will be 6u14 (in early access), which includes some handy performance impovements, the G1 collector (for use, but not yet the default collector), and some preparatory changes like loading anonymous classes which will turbo-charge dynamic languages in JDK 7.

And of course the next major update will be JDK 7, so you may be tracking the latest JDK 7 builds, which have been including API additions ahead of the release for some time. Like changes to the language model as Joe summarizes here. Or the new ability to close() a URLClassloader since b46 that Michael blogged about here.

Or, more significantly, the inclusion of latest draft version of JSR 203, in particular the new filesystem API, one of the larger features on the list for JDK 7.

Thursday Mar 12, 2009

The Planet Cast: what do you want to hear ?

<script language="JavaScript" src="http://www.micropoll.com/akira/MicroPoll?id=148470"></script> The Planetarium recently had a new delivery, so its time to announce the Planet Cast.

The Planet Cast is a new podcast series devoted slavishly to technical conversations with the expert engineers who help bring you Java SE, JavaFX, Java ME and JavaCard. (No marketing !)

What Planet Cast would you like to hear ?

Wednesday Mar 11, 2009

Java SE Traffic Management

Think of concurrent programming as nothing more than traffic management.

You may have been lucky in your programming work so far only to have to think about a single lane of traffic, relying on the road authorities periodically to raise the speed limit to allow your vehicles to go faster. But as hardware makers lay wider freeways with multiple lanes, and as your traffic gets heavier, you may need to start worrying about how to use the capacity better to get everyone where they need to be on time.

Perhaps building a thread gate, the equivalent of a traffic signal. As this article shows, and as applied to a prime number generator, a thread gate let you manage the execution of tasks where there are dependency on the completion of some of the tasks on others in your program. Just as traffic at a four-way intersection is regulated by a rule, albeit at intersections, a simple one: each two way direction takes it in turns to avoid collisions.

Or using a BlockingQueue, already part of Java SE. A BlockingQueue is something akin to the kind of smart traffic signals that tracks waiting vehicles to decide when to allow them to pass. This blog illustrates its use in bridging the gap between two intensive tasks: parsing large amounts of data from heterogenous sources, and persisting it.

Or, looking ahead to JDK7, a variant on the BlockingQueue called the TransferQueue, described in detail here. Although not a perfect anaogy, its smarter kind of traffic signal you have have seen metering traffic entering freeways, which takes into account both waiting vehicles and the flow of traffic on the freeway.

So if you're tiring of life in the single lane, maybe its time to experiment with the Concurrency Utilities in Java SE, and look further down the freeway to those coming in the future.

Update: Do check out Brian's talk about parallelism in Java from Devoxx here (How could the Janitor forget, he was in the audience). Thanks Patrick for the tip.

Tuesday Mar 10, 2009

Today's multi-language JDK

It can be too easy as you reach out for the next thing, to forget what's already in your hand.

This excellent detailed article on the Scripting Framework for Java, which is already part of Java SE 6 is just such a reminder, of what we already have, even as work continues apace to turbo-charge other langauges on the JVM for JDK 7. The Scripting Framework allows engines for other languages (like the one for JavaScript in JDK 6) to plug into the platform, and provides APIs for developers to evaluate code written in other languages.

In fact, the recently released Groovy 1.6, which includes a number of new language features (like optional returns from if/then and try/catch blocks, multiple assignments) as well as some handy peformance improvements, includes this pluggability layer into the JDK built-in.

And Python 3.0 has been turning the handle on new features. It's one of the 3 official languages of Google (the language of the Google App Engine, for example), and even runs in your hand today, on certain mobile phones.

As can Ruby, via the JRuby (Ruby on Java) project. Ruby's latest feature release (1.9) in January is one of the big ticket items for the next JRuby release.

Monday Mar 02, 2009

JDK 7: Language, the penny drops, Swings back

Small changes to the Java language can have a powerful effect. How many of us remember Java SE 5 as the release that included the for each loop ? Sometimes, the biggest doors are opened by the smallest keys.

As shown in number of informal polls a large number of ideas have been rattling about in our pockets for some time, but now the formal call for proposals for small language changes for JDK 7 is open for the whole of March, as Joe announces. And you can see the proposals (see this, for example) are already tumbling into the slot of the Project Coin mailing list and the subject of detailed discussion.

And, in other news, Alex just posted an update on where things are with the Swing Application Framework, and is looking for input on some remaining issues SAF could solve for JDK 7.

Friday Feb 27, 2009

Coming to JavaOne 2009 ?

Ahh, San Francisco in June. It has much to recommend it, in particular the JavaOne conference (cheaper if you sign up now). If you've never been before, this gives you a taste (or maybe this: illicit yet effective ?).

With more than 4 submitted proposals for every talk slot, its taken a couple months for the review teams, made up of people inside (your own Janitor included) and outside Sun, to work through the abstracts. With odds like that, and most of the talks or BOFs submitted in the four categories of: Core Technologies, Mobility, Services, and RIA looking very much like the kind of thing you'd want to go to (and even fill out the comment form for), its grim work to have to say no to so many.

This week, most of the emails got sent to let submitters know if they got lucky. If you were one of them, now's the time to start getting those slides and demos done !

Thursday Feb 26, 2009

Java ME, Java SE, JavaFX from the horse's mouth

As you probably know, there's a growing number of regular podcasters on various aspects of the Java Platforms. A great way to stay on top of what's going on in the Java world, and hear a few stories you might not see written down.

Like the latest episode of the Java Mobility Podcast, where Terrence and Roger do a great in depth interview on the new Java ME SDK, in early access. You probably know that it's the single, unified successor to today's two SDKs, one for CLDC and one for CDC app development. So it brings together all the APIs, tools and emulators for development for apps on anything from a mass-market phone to a Blu-ray disc. Simpler is definitely better, and this new consolidated SDK also includes a new, optimised CLDC runtime, a new runtime profiling tool (based on the one used in VisualVM), on-device debugging, and LWUIT support.

On the JavaFX front, the JavaPosse interview of the JavaFX team at Devoxx (including the back story on how the launch-day glitches on javafx.com got fixed), and Josh's recent, detailed interview all about JavaFX 1.1 on the RIA weekly with Cote.

And just for fun, try the recent This Ain't your Dad's Java cast (here, or here) our highly caffienated uber-geeks-turned marketing-execs-gone-wild talk on a variety of topics, including Swing versus JavaFX, Java SE 6u12, and the inside story on the winding road to release for JavaFX Mobile.

Wednesday Feb 25, 2009

JDK 7: Checking in

Whether or not you are coming to JavaOne this year, you should count having a preview of JDK7 ready for you to try. So let's check in on where the larger features on the plate are at since Mark talked about JDK7 at Devoxx in December. (And since Alex gave one of his updates).

Modularity work is progressing with proposals up for comment in Project Jigsaw.

Good stuff coming in the VM with the support to turbo-charge Java SE for multiple languages, and the new garbage collector, which made it into the latest build of Java SE 6u14.

Though not enough for some Swing developers (who might be interested in this project), we'll bring some important improvements to Swing.

Java language-wise, Joe is sifting through the small Java language proposals as part of Project Coin. Opinions still welcome. And you check out the project that will add annotations to (all) Java types by trying out the latest Checker framework.

NIO2 is tuning the new APIs for scalable IO, including the new FileSystem API, which you can get in the latest build.

A blog all about Java in all its flavors on all client platforms from smartcards to desktops and everything inbetween.


« April 2014