Scripting on Java SE 6.0 (Mustang)

JSR223 adds support for scripting languages to run on the Java platform. Any script engine the complies with the 223 spec will be able to run on top of the Java VM.

Why is this important? Think of script as your ‘glue’ – sometimes you need to get component/system/class A to work with B – scripting is an ideal and quick way to integrate and tie together code. It’s also a great quick approach to prototyping apps quickly. By being able to run scripting languages on the Java VM platform, you get the benefits of a statically typed compiled language with the ease of use of a dynamically typed script language.

See this article for further info on JSR223, and check here for a list of 10+ script engines currently supported by JSR223.

Sun’s SwingLabs – pushing Swing to the max

Want to see what the guys at Sun are doing with Swing to push the limits of Swing to the max? SwingLabs is a collection of projects to produce a collection of Swing Components and related frameworks that enhance Swing and enable you to produce some very slick looking UIs for your Java applications.

Head over to their site at swinglabs.org and check out the current projects and screenshots. There are some very interesting screenshots of very cool looking UI widgets that will make you say ‘wow, I can do that with Swing?’…

One of the subprojects looks particularly interesting – the Java Desktop Integration Components project (JDIC) – they are working on APIs to enhance Java’s ability to interact with the operating system’s desktop. Some of the APIs they currently have enable desktop wallpaper manipulation, SysTray integration (available now in SE 6.0 beta), access to System Info, and native music player access. Check out their introductory page here at javadesktop.org.

Overview of using Aspects – java.net

I believe Aspect Oriented Programming (AOP) will eventually have a huge impact on simplifying large systems development, but first it needs to gain wider understanding of it’s capabilities so people can start to take advantage of it. It’s one of those tecnhologies that has such a huge potential to simplify development through the introduction of aspects to implement cross-cutting concerns, but it still has not yet made it into the mainstream.

java.net have an introductory article illustrating how aspects can be used to simplify the development of Internationalization, which is a good example of a cross cutting concern for an application.