Tuesday, September 4, 2007

Netbeans 6.0 - The IDE to own

I have just qualified to the NetBeans IDE 6.0 Community Acceptance Testing program (NetCAT) and before I begin giving some feedback, I thought... how about sharing some info about the NetBeans 6.0. What it is all about and how it has improved and how it can become the IDE for all programming languages.

Any programmer will tell you how much he/she loves the IDE. How much time of their lives they spend looking at the IDE screen? and how much the IDE is part of their creative exploration (programming)? These days with so many programming languages, a developer in my organization comes across a minimum 3 IDE or WYSIWYG Editors. We use Zend, netBeans, Visual Studio 6, VS2005, Dreamweaver, Eclipse, MS Expression Web, Anjuta, KDevelop ... and even after that I'm sure I missed something that we use. You see what I mean when I say there are zillions of IDEs.

Since, I have been programming a lot in Java, netBeans has been with me since version 4 and I always thought it had promise. Initially though eclipse was better! But I believe netBeans 5.5 was awesome and 6.0 is gonna beat a lot of other IDEs out there. Im currently doing a short preview of netBeans 6.0 Vs Visual Studio 2008 (my next post), both IDEs from different worlds, but then they still are IDEs right!! I know its apples vs oranges, but then netBeans 6.0 is not just a Java IDE, its got a lot more to it... Its a platform as well but I'm looking at it as an IDE for many languages. The templates to build Ruby on Rails blogs is just an example how much netBeans 6.0 team is trying to make it an all-language IDE.

The following are some of the new features to netBeans 6.0:

1.) Improvements to the Code Editor:
a.) Smarter & Quicker Code Completion - Faster and better options & methods shown.
b.) Highlighting - common variables are highlighted

2.) Language Support:
a.) JRuby/Ruby/Ruby on Rails Support - Excellent template, auto-structuring of folders. Great Ruby Debugger. Nice RHTML file editing and highlighting. Example Video
b.) Improved Javascript and CSS Editing - Although dreamweaver is better, its gotten better than the previous versions.
c.) Schielmann language support - Its a technology that allows anyone to add support to new languages. Php and Jython plugins are available.
d.) C/C++ Support: Greatly Improved support for programming in C/C++. Libraries are easily accessed and also has pretty good code editing.

3.) Swing GUI:
a.) Swing database applications - Probably the single-most awesome feature from netBeans 6.0. Great for making RAD for people who want to make fast database application.
b.) Beans binding: You can now bind beans and control their behavior from the GUI. You don't need the BDK (Beans Developement Kit) as a GUI for looking at beans behavior and property editing.
c.) Swing Application Framework (JSR 296): Awesome support of application state saving. The state of the application is saved as default. You don't have to worry about the size of the window of your application. It'll come up at the same size that you closed last time, and for all this you dont have to write a single line of code. netBeans does it for you.

4.) Profiling:
a.) Integrated Profiler - The profiling tool within netBeans is elegant and perfect. May be you can compare it to LaodRunner yet, but then it does most things perfectly.

5.) Web & Java EE:
a.) Improved Visual Web (JSF): After Sun decided that Studio Creator will be netBeans, you find that there's no better tool for making JSF web applications that netBeans 6.0. Just drag-drop the components, write some business logic as EJBs and you have a well made web app.
b.) Support for AJAX-enabled JSF components
c.) Great Javascript editing, with error and debugging, not found in other WYSISWYG editors. CSS support is improved.
d.) Brilliant flow management for Web application. You can now make nice design for page flows in netBeans 6.0

6.) Java Mobility Support:
a.) No other J2ME/Java ME IDE has the ease of use and quick drag-drop MIDlet developement like netBeans. Fast and feature rich. You can make flow diagrams with it. Designing mobile apps were never easier.
b.) Support for APIs: JSR-172 stub compiler, JSR-226 SVG support is worth a wow!!
c.) Game Builder: Easy tiling allows nice design of game screens and sprites

7.) SOA:
a.) Graphical WSDL editor: Don't we all love interoperable WSDL documents?? But hate the binding. netBeans has great visual tool to do all the binding work for you.
b.) Easily edit the transformation on XSLT editor
c.) Improved interoperability with .Net through WSIT

8.) UML:
a.) Enhanced code generation: Lesser difference in your designs and code. I love it!!
b.) Don't we architects love design diagrams. Making them from the IDE, is just a boon. Brilliant UML editing improvements, although some standalone tools do a better job, its still a great thing to have in your editor

9.) Misc:
a.) Improved graphing in the platform API
b.) A new lexer in the netBeans seems to make it faster for code editing

There's a lot more to netBeans 6.0... You can read about all the improvements here

See you on my next post, when I compare the upcoming IDEs Visual Studio 2008 and netBeans 6.0, with references to few other IDEs


Anonymous said...

I find it funny that you grouped the web services features under "SOA".

Saptarshi Purkayastha said...

I'm not sure why you find it funny! Web services are a common example of SOA. The web services may be described using WSDL and communication protocol by SOAP.

Further read on the topics could be:
1.) Here
2.) SOA - Wikipedia
3.) XML.com
4.) IBM

Please comment on whether you find the above funny as well??

KiLVaiDeN said...

Hello Saptarshi Purkayastha !

Very cool that you took time to tell us about the new netBeans features and your opinion about them.

I on my own use the latest eclipse 3.3 with WTP2 integrated at work instead of netBeans, even though I love netBeans. I find this version of eclipse particularly good, no more conflict between internal packages, and very nice new features.

I still believe that SWT is faster than SWING, even though SWING tends to get faster with each JDK. Just simply the fact that SWT is JNI with native widgets is an argument for adopting it.

I'll for sure though take a look at netBeans 6 and see how it behaves :) For now, thank you again for this nice "report" about netBeans 6 and keep up the good work ^^


fluminis said...

interesting post.

maybe you can make a comparison between netBeans and eclipse before making one between netBeans and VS 2008.

Saptarshi Purkayastha said...

@fluminis: Both eclipse and netBeans are equally good... and the IDE wars between them is really not there anymore. Im half-way down the comparison between VS2008 and netBeans... After I finish that, will surely do a comparison with eclipse!!

Saptarshi Purkayastha said...

@KiLVaiDeN: Completely agree with you, when u say that SWT tends to be faster due to the native stuff, but Swing is getting faster. The GUI creation tools of netBeans for swing apps and JavaME puts it above the other IDEs.
In my organization we use both eclipse and netBeans on different projects because when developers use their loved IDE, they tend to be more productive.

Anonymous said...

Hey saptarshi , your article is great.i am currently using netbeans6.0 and facing a problem, plzz help me out..
i am getting an error while running a web application using sun java system application server.it is as below:"Starting Sun Java System Application Server 9.1 (build b41d-beta2) ...
A conflict occured on port 8080 . Server is shutting down."

Other messages i am getting are:

D:\ebooks\ebooks\nbproject\build-impl.xml:500: Deployment error:

other messages are:

Starting Sun-Java-System/Application-Server.
Starting Sun-Java-System/Application-Server HTTP/1.1 on 8080
Starting Sun-Java-System/Application-Server HTTP/1.1 on 8181
Starting Sun-Java-System/Application-Server HTTP/1.1 on 4848 Self Management Rules service is enabled

i have IIS server other than this and i am using oracle 10g as database and i dont have tomcat installed, how should i know which server is taking which port??
please help me asap......

Saptarshi Purkayastha said...

The error you are getting is generally shown when the port is already in use, which means sme other application is using port 8080. Before starting netBeans 6.0, do you see any java.exe process running. If yes, then close it and then start netBeans and then run your application. Generally it happens if your application crashed or the server did not shutdown properly the last time. I would recommend u use the beta1 which will be released today!!

lalit said...

Application Server

Saptarshi Purkayastha said...

Step 1: Start netBeans 6.0
Step 2: Click the Services Tab
Step 3: Right-click on Servers, and select add server
Step 4: From the list select Sun Java Application Server and Next
Step 5: Select the folder where server is installed and register a default domain. Leave it if u dont wanna change it! Click Next
Step 6: put in the username/password that u used when installing the server!!

That's it!! You have your server installed to be used with your web applications.

If you don't have Sun App Server already installed then netBeans 6.0 comes with GlassFish(new App Server from Sun & Community) bundled!

Anonymous said...

I am getting this error while running a web application:
Access to Tomcat server has not been authorized. Set the correct username and password with the "manager" role in the Tomcat customizer in the Server Manager.
See the server log for details.

How do i set them?

Anonymous said...

Nice work on the review. Netbeans 6 is doing pretty good!@!

kishore kumar said...

How can i add the items to dropdown list box in JSF in Visual Environment.I'm using NetBeans 6.0 and i'm not able to add the items to dropdown list,but in non visual environment i'm getting it by using tags ,
but how can i add items to the list in visual environment please give me suggestion,

Budy said...

Hi,im using NetBeans6.0,its quite user friendly...however,i do encounter some rare problems...Im seeking guidance on how to populate "text fields" and "JxTables"...please share some advice and code...thanx!!!!

Anonymous said...

hi..ive just browsed this site and i just tried to ask some help from those who can be a heaven sent..im just new in using netbeans 6.0 in doing a library system for a project..Im really having a hard time in doing the database sql codes.. i dont know how to do the coding of the sql database and i cant find a sample database program in netbeans6.0 to use as a guide,,Im really desperate and i badly needed to learn how to do it..I only have few weeks to finish
the project and its already defense
week..T_T Can anyone of kind heart would help me even in the simplest way? E-mail me at huskies24_7@yahoo.com.. I'd really appreciate any reply from you guys..Thanks in advance..


Anonymous said...

One small correction: It's spelled Schliemann.

Biju B said...

Hey saptarshi plzz help me out..
we r doing a project in jsp using netbeans 6.1.
v r using apache tomcat server & ms sql server 2000.
i am getting an error report while running it...the error msg is...

Domain domain1 failed to startup. There is a conflict on port 8080.
Deployment error:
The Sun Java System Application Server could not start.
Possible reasons include:
- IDE timeout: refresh the server node to see if it's running now.
- Port conflicts. (use netstat -a to detect possible port numbers already used by the operating system.)
- Incorrect server configuration (domain.xml to be corrected manually)
- Corrupted Deployed Applications preventing the server to start.(This can be seen in the server.log file. In this case, domain.xml needs to be modified).
- Invalid installation location.
See the server log for details.

----plzz help me..we hav 2 submit the project on 4/5/10....so pls....
my id is:bj.bnair@gmail.com

Diva said...

hey can i use netbeans for ruby programing???

Saptarshi Purkayastha said...

@Diva: yes, you can look here: Quickstart or Ruby Wiki for ways to program in Ruby using Netbeans