password
username
Sponsored by CakeMail, an email marketing software
Newsletter preview

Javalobby logo image
Wednesday, October 03, 2007 
 Perspective


Be sure and
check out a
No Fluff Just Stuff
Java conference
coming your way!

10/5-10/7 Atlanta
10/12-10/14 Minneapolis
10/12-10/14 San Diego
10/19-10/21 Toronto
10/26-10/28 Dallas
11/02-11/04 Reston
11/9-11/11 Denver

Manning Special. Save 37% with code JLSP37

 
 A Developer's Perspective
 Next section
Geertjan Wielenga is a Java blogger, NetBeans staff writer, and co-author of the recently published "Rich Client Programming: Plugging into the NetBeans Platform"

Geertjan Wielenga Reflections on NetBeans Beta 6
Geertjan Wielenga

It's been a few weeks since the release of NetBeans IDE 6.0 Beta 1. A rewritten Java editor, full-blown Ruby and Rails tooling, JSR 295 Swing Application Framework, all these and more are great, of course. But let's look at a few of the underhighlighted features, features that have not hit the headlines, undeservedly so, in my opinion. Perhaps these are not so much features as they are enablers, allowing the features to exist. The level at which these enablers play out is the NetBeans Platform, which underlies the NetBeans IDE, in combination with a series of the latest and greatest JSRs. As a result, the NetBeans IDE is a beneficiary of these features and JSRs, but is really just one of many. In a sense, one can argue that the NetBeans IDE is a test bed for the barriers that the NetBeans Platform and the JSRs have been pushing of late.

First of all, and most importantly, because of the introduction of JSR 199 (Java Compiler API) and JSR 269 (Pluggable Annotation Processing API) in Java SE 6, The NetBeans IDE is able to interact with the structural information that javac extracts from source code. On top of that, the fact that javac's implementation has been enhanced and tuned for interactive and embedded use has further empowered the IDE's ability to work with ranges of coherently related code. Together, these enhancements enable semantic highlighting, vastly improved code completion (how I used to hate code completion in NetBeans IDE!), and similar injections of specificity in how the editor operates.

JSR 295 (Beans Binding) and JSR 317 (Java Persistence API), JSR 296 (Swing Application Framework), and the "Matisse" GUI Builder are integrated together to result in a coherent set of tools for creating prototypes and small to medium sized Swing applications, complete with toolbar and menus, out of the box. From a learning perspective, this could not be more ideal. When I want to understand how these JSRs work in practice, I need do nothing more than run through the "Swing Desktop Application" template. This gives me a "Matisse" design form, which displays a table with live data. I can then explore the underlying code and, with Java book in hand, compare the generated code to the text in the book. I need not even create the Swing application's framework itself, since that is generated by the wizard for me. To top it all off, I have the "Matisse" GUI Builder tooling for all my design work.

For the really serious Swing development work, I have the NetBeans Platform too, incisively enhanced with the APIs I had always wanted. The "Auto Update Services API" lets me interact with the newly designed Plugin Manager or even create my own Plugin Manager from scratch. It also lets me programmatically install, uninstall, enable and disable plugins, i.e., from within my own plugin. The "Command Line Parsing API" allows me to read user input from the command line. The "UI Gestures API", which is used in NetBeans IDE whenever an error is thrown in the IDE itself. It brings up a dailog, inviting me to enter a brief description of the problem, which is then sent to a "gesture collector" for analysis and resolution. The "NBPreferences API", lets me store user preferences in the NetBeans user directory, instead of the JDK's default location.

Special mention needs to be made of a project referred to as "Schliemann". Even now, while still in development, at least a dozen implementations of the API on which its is based, the "Generic Languages Framework API", are extant. In the past one would have to implement a multiplicity of obscure NetBeans APIs to create an editor on the NetBeans Platform, but now the approach is purely declarative, using a regex-like syntax. The brilliance of this approach lies in its philosophy. The typical developer interested in creating an editor is very knowledgeable about their language, but not knowledgeable at all in relation to the NetBeans APIs. Schliemann provides the editor's complete framework. The programmer brings their own knowledge to the the table, all the tokens and the grammar, which, once declared are applied by the framework to the features. It is exciting to see that scripting languages, in particular, have already gained from this approach. Editors for D, MiniD, TorqueScript, Python, JavaScript, PHP, Erlang, Groovy, FreeMarker, among many others, are currently in development, based on the Schliemann framework.

On top of all these enablers, there is a range of tools I am quite excited about seeing in NetBeans IDE. For example, GlassFish v3 tooling is already available and is going to give Tomcat a real run for its money! In today's build, I noticed first-class support for MySQL and PostgreSQL. This has been a long time coming and is great to see for the first time. Personally, my interest lies in the underlying NetBeans Platform, however. Being the owner of one or two applications on the NetBeans Platform, I continue to be impressed how much I am able to focus on the domain knowledge of my application, while the NetBeans Team continues to extend its underlying infrastructure! Long may they continue to do so. :-)

Until next time,
Geertjan Wielenga
geertjan@dzone.com

 
 DZ Top Links
 
 DZone Top Links
 Next section
 Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week

 
 Popular at JL
 
 Popular at Javalobby
 Next section
 Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.
Improving OpenJDK: Is the process optimized?

I wonder if we couldn't get to a more efficient process which refactors and integrates the best open source libraries back into OpenJDK?

Full Discussion Posted By: Andrew McVeigh - (60 Replies)

Bean-dependent or Bean-independent Properties? Lets Battle it Out!

Properties can either contain a reference to the bean it is a property of, or not. How properties will be implemented differs greatly between the two approaches. I list the differences.

Full Discussion Posted By: Mikael Grev - (29 Replies)

Is Java ready for use in safety critical systems?

Last week, I was invited at the Space 2007 conference to introduce Javolution to rocket scientists. This might seem like good news for Java. But is Java ready for use in safety critical applications?

Full Discussion Posted By: Jean-Marie Dautelle - (28 Replies)

Java SE 6 Update N Early Access (build 04) is now available for Download!

Want to test the Consumer JRE? Part of it is available in the form of Java SE 6 Update N Early Access. Quick Starter, Graphics Hardware Acceleration, and much more.

Full Discussion Posted By: Daniel MD - (26 Replies)

7 Top Tips for Quality Java Software

I'm not going to recommend you read all the books you can get your hands on, though you could if you wanted to. These are the tips they don't teach you in books or in school.

Full Discussion Posted By: jasonk - (25 Replies)

 White Papers & Announcements
 
 Product Announcements
 Next section
 Back to top
Product and service announcements for Java developers.
Super CSV, v1.10, added speed and processors

We are very excited to present yet another release of Super CSV, version 1.10. There are a lot of goodies in store this time!

Full Announcement & Discussion Posted By: Kasper Graversen - (0 Replies)

Validate, Search and Transform XML with XML Hammer 1.0 rc-2

The XML Hammer tool makes it easier to execute basic XML functionality like checking for well-formedness, validation, transformation and XPath searches using any JAXP implementation.

Full Announcement & Discussion Posted By: Edwin Dankert - (0 Replies)

MyDoggy 1.3.1 - My Java Docking Framework

This is the release 1.3.1 of MyDoggy, an open source Java docking framework to be used in cross-platform Swing applications. MyDoggy is an IntelliJ Idea like docking framework.

Full Announcement & Discussion Posted By: Angelo De Caro - (3 Replies)

QuipuKit 1.2.2, component library for JSF, released

QuipuKit 1.2.2 provides enhanced internationalization support, performance improvements and more .

Full Announcement & Discussion Posted By: Tatyana Matveyeva - (0 Replies)

MagicDraw 14.0 Adds New Report Engine

No Magic has just released a new version of MagicDraw that improves documentation capabilities. The new version of MagicDraw now supports C++ code engineering for Visual Studio 2003 and 2005.

Full Announcement & Discussion Posted By: Saulius Zukauskas - (0 Replies)

Web Server Plug-in Analyzer for WebSphere

Discover improper or ill-advised WebSphere Application Server plug-in configurations and corresponding HTTP request/response failures with IBM Web Server Plug-in Analyzer for WAS.

Full Announcement & Discussion Posted By: Ida Momtaheni - (0 Replies)

Technical tip for loading a web image to an Excel worksheet

Aspose Newsletter for October 2007 highlights new features by Aspose.Pdf for Reporting Services, Aspose.Words for Reporting Services, Aspose.Network, Aspose.Pdf, Aspose.BarCode and Aspose.Cells.

Full Announcement & Discussion Posted By: aspose_seo - (0 Replies)

Asbru Web Content Management 6.6

In this latest release of the Asbru Web Content Management system an advanced workflow engine to manage the publication of website content has been added.

Full Announcement & Discussion Posted By: David Fisher - (0 Replies)

eoSense 1.6 adds WebSphere support

eoSense for WebSphere combines new dynamic modelling techniques with detailed WebSphere knowledge to visualize Java EE operation and automatically detect performance and reliability problems.

Full Announcement & Discussion Posted By: gordon cruickshank - (0 Replies)

Colorspace 1.6, Layout 3.3, FX 3.3 and Darkstar 20070930

This is a library update with some compatibility fixes. Substance 4.0, Rhino Javascript 1.6, BSF 2.4.

Full Announcement & Discussion Posted By: Jan Erik - (0 Replies)

Screencast showing new Test Framework for Canoo UltraLightClient

6m 15s long screencast showing how to create functional tests for Canoo's UltraLightClient using the new test framework.

Full Announcement & Discussion Posted By: Sandra Wendland - (0 Replies)

FlatPack 3.1.0 released

FlatPack 3.1.0 has been released, formerly known as PZFileReader! FlatPack allows easy parsing of delimited files (CSV/etc) or FIXED-LENGTH files. This release also allows EXPORT.

Full Announcement & Discussion Posted By: Benoit Xhenseval - (0 Replies)

Build and share protoypes online, fast

When you want to build an app prototype of a concept or idea, use Simunicator, the fastest way to build, share and deploy an app protoype via the web ...generate doc's and take the code with you

Full Announcement & Discussion Posted By: Bryan MacLean - (0 Replies)

UmlGraph version 4.9

The new version offers improved invocation scripts and corresponding documentation on installing and invoking UmlGraph. This release also includes some small bug fixes.

Full Announcement & Discussion Posted By: Diomidis Spinellis - (0 Replies)

XINS 2.1 Web Services framework released

XINS 2.1 has been released. XINS is an open source Web Services framework. The specifications are in simple XML and code and documentation are generated from it. It also accepts several protocols.

Full Announcement & Discussion Posted By: Anthony Goubard - (0 Replies)

Dynamic Application Virtualization

Reduce the time required for performing large calculations such as options pricing (for example, Monte Carlo simulations) with IBM Dynamic Application Virtualization.

Full Announcement & Discussion Posted By: Ida Momtaheni - (0 Replies)

LiquiBase 1.3

LiquiBase 1.3 has been released. Major features include new "custom", "executeCommand", and "createProcedure" refactorings, dbdoc documentation generator, and more.

Full Announcement & Discussion Posted By: Nathan Voxland - (0 Replies)

Flexjson 1.5 is live!

Flexjson has made another release adding some important new features. Flexjson is a Java to JSON serialization library with an elegant DSL like syntax.

Full Announcement & Discussion Posted By: Charlie Hubbard - (0 Replies)

SuperWaba 5.83

SuperWaba is a VM for PDAs and Smartphones. Because of the way SuperWaba was written, you can use Java to develop for it. Can run in PalmOS, Symbian, Windows CE; BlackBerry comming soon!

Full Announcement & Discussion Posted By: Guilherme Hazan - (0 Replies)

YourKit Java Profiler 7.0 Released

YourKit, LLC is pleased to announce the general availability of YourKit Java Profiler 7.0

Full Announcement & Discussion Posted By: YourKit Team - (0 Replies)

 Your Account
 
 Your Account
 Next section
 Back to top
Manage your account info for this and other Javalobby publications.
Manage your Javalobby membership details

Click on the following links to:


 Contact Info
 Next section
 Back to top
Here's how to reach us, we love to hear from you.
Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
Call us
Our number is (919) 678-0300. We'd love to hear from you!

 Legal
 Back to top
The fine print we'd rather avoid completely.
Feel free to redistribute this newsletter in part or in full to your friends.

Javalobby News is a service mark of DZone, Inc.
Copyright ©2001-2007 DZone, Inc.

Thank you for your continued support of Javalobby. If you prefer not to receive the Javalobby weekly newsletter, send an e-mail to ***-jlnews@javalobby.org and please ensure the actual email address to be removed is present.
Javalobby.org, 113 Legault Drive, Cary NC 27513 USA