YOUR FEEDBACK
Ubuntu Here We Come! - Java Finally To Become 100% Open Source
Reader wrote: Since November 206, wow! that is a long process.
SOA World Conference
Virtualization Conference
$200 Savings Expire May 16, 2008... – Register Today!

2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts

SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


A Better IDE: NetBeans 6.0 - New Core Features in Depth
A better IDE

Digg This!

Page 1 of 2   next page »

New features and improvements in the next release of NetBeans make it a better IDE for any kind of developer. From editing to browsing, versioning, building, debugging, profiling or visual design, there is great news for everybody.

It's that time again. A major, dot-zero release of NetBeans will be available soon - over a year and a half after 5.0, which introduced significant new features like the Matisse GUI builder, and extensive improvements in CVS integration, Web services and module development, to cite but a few. In contrast, version 5.5 focused outside the core IDE by supporting several new Packs that increased NetBeans' overall functionality to a level still unmatched by any other open source IDE. Now, is NetBeans 6.0 worthy of the bump in the major version number? You bet it is, and in this article we'll look at some of the most important and interesting new features in the core IDE.

A New Editor
Common sense says no product can be perfect in everything it does, but NetBeans is getting closer each day. Historically, NetBeans users have been proud of the IDE's complete coverage of Java platforms from ME to EE, its support of effective GUI building, and its intuitive UI and open architecture. On the other hand, the IDE lagged in certain areas, like in the code editor or refactoring. This could put off programmers very focused on source code…those who'll pick emacs over visual designers any day. Well, these problems are no more with NetBeans 6.0.

AST-Based Selection
Selecting words or lines is good enough for text editors, but when working with sources you often need to work with ranges of text that form coherent pieces of code. Say you want to copy all the code inside a for loop body in order to paste it in another loop with similar logic. Just place the cursor in any blank position inside the loop body, press Alt+Shift+Period, and you're done. The editor selects the innermost range of text that includes the cursor position and delimits a node of the source's Abstract Syntax Tree.

Pressing Alt+Shift+Period again expands the selection to the next outer node, in this case the complete for statement; then a new keystroke may select the entire method, and so forth. Alt+Shift+Comma will retract the selection to an inner node. Figure 1 shows this feature being used to select a multi-line statement easily and precisely. I bet you will quickly be hooked on this feature and forget about all the other selection shortcuts! There's nothing like a code editor that groks code, not text.

Semantic Highlighter
The editor's syntax highlighter was promoted to a semantics-aware highlighter. It can apply styles based not only on the types of tokens (like identifiers, operators or comments), but also based on different meanings that akin tokens may have - for instance, an identifier may be a class name or a local variable name, a parameter, a constant field, etc.

One benefit of semantic highlighting is that it helps you take extra care when assigning static fields (since many thread-safety and memory-leak bugs involve statics). Figure 1 shows this; notice that static fields (and references to these) appear in italics.

There are other powerful uses for the new highlighting engine:

  • Identifying usages: Select any identifier, and the editor highlights all its uses in the same compilation unit. Again, Figure 1 exemplifies this - click on a method name and all invocations to it are highlighted.
  • Flagging "Smelly code": The new editor highlights unused variables and imports, as well as usage of deprecated classes and methods. You don't need to perform a build or run a code lint tool to detect these simple (but frequent) problems anymore.
  • Exit and throw points: Selecting a method's return type will highlight all return statements. Selecting an exception in the method's throws list will flag all throws of that exception type. All invocations to other methods that may throw the same exception are also flagged.
Better Code Completion
The bewildering amount of APIs you have to use these days makes code completion one of the most critical features of any modern code editor. NetBeans 6.0 has learned many new tricks here:
  • Keyword completion: If you've just typed a package declaration in a new source file (for example), Ctrl+Space will bring only the keywords that are legal in that position: abstract, class, enum, final, import, interface, and public. Figure 1 shows another example: after the opening parenthesis of a method declaration, the preferred completions are all primitive types.
  • Type-based variable names: Completing at "ConfigurationFile _", the editor will offer the variable names cf, configurationFile and file. (I'm using "_" to represent the cursor position.)
  • Generics-aware completions: When assigning a variable with a generic type to a new expression, the editor will offer all compatible types, including generic arguments. For example, at "Map<String, Integer> m = new _", code completion lists all implementations of Map, each with the same <String, Integer> parameters.
  • Annotation-aware completions: When completing after "@", you'll be offered all the annotations that can be used in the given scope. If the selected annotation requires parameters, the editor will provide completions for these too.
  • Passing parameters: At "x = m(_", the top completions will be values in scope that are compatible with m()'s first parameter. If the method's parameter names are available and there are variables with similar names in scope, this is used to sort the completions further. You'll also be offered full completions with the parameter list filled with those variables.
  • Common constructors: When you invoke code completion with the cursor positioned between class members, you'll be able to create a constructor without arguments and one that receives initial values for all fields (if these constructors don't already exist).
  • Catching exceptions: Completion at "catch (_" will only offer exceptions that are thrown in the corresponding try block, but haven't been handled yet by previous catch blocks.
New Browsing Views
The editor introduces several new views for source code browsing. The members' view shows the members of a Java type together with their javadocs, making it easy to find a particular method, field or inner class. The Hierarchy view shows the inheritance tree of a Java type. Figure 1 demonstrates this view; notice the filter buttons that let you toggle between supertypes or subtypes and between simple and fully qualified class names. You can also choose whether or not to show inner classes and interfaces.

The Declaration view summarizes the declaration of the selected Java element (type, method, or field). Despite its name, this view also shows the inspected element's source code if it's available. The Declaration View is especially useful when invoking code still under development, not yet documented with javadoc. Finally, the Javadoc view shows the javadocs for the selected Java element.



Page 1 of 2   next page »

About Osvaldo Pinali Doederlein
Osvaldo holds an MSc in software enginnering and works as technology architect at Visionnaire S/A, developing J2EE technology-based applications.

LATEST OPEN WEB DEVELOPER STORIES
Verizon Becomes a Counter-Android Linux Convert
Verizon Wireless is snubbing Google's Linux-based Android initiative to go with the LiMo Foundation's mobile Linux spec for its next wave of mobile phones expected next year. Along with Verizon, Mozilla signed up - giving the consortium its first major open source ISV - and a key
Zoho Invites Google & Yahoo Users to Login
Zoho announced that it is welcoming Google and Yahoo users with a unified login designed to encourage those users to try Zoho applications. Now, Google and Yahoo users who visit Zoho can simply log into Zoho using the usernames and passwords associated with their Google and Yahoo
Enterprise Web Security Added to Google Apps
Google has taken its Postini investment and turned out Google Web Security for the Enterprise, which is supposed to protect against spyware, viruses and zero-hour threats in real-time whether the user is on the corporate network or working remotely like at a hotel or in an airpor
Borland Finally Dumps CodeGear Tools Division
It's only taken Borland two years but it's finally dumped its CodeGear tools division, responsible for Borland's hereditary JBuilder, Delphi and C++ Builder lines as well as its new web ventures into PHP and Ruby, said to be used by 7.5 million developers. Embarcadero Technologie
Microsoft, Unisys, Yahoo and Vista
Microsoft, which spent $6 billion on aQuantive and was chasing Yahoo for its ads before it came to a dead stop, has been supporting - as in helping write - legislation in New York and Connecticut that would regulate the data that companies like Yahoo and Google collect for target
Yahoo! How Like the Virgin Mary!
So how does it feel to have witnessed one of technology's little miracles this week? I mean Yahoo's stock price successfully defying gravity. It's as close as any of us will ever get to an apparition of the Virgin Mary floating on a cloud without any visible means of support. App
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING OPEN WEB DEVELOPER NEWS
High River Gold Reports First Quarter 2008 Results
(All currency figures are in Canadian dollars unless otherwise noted)