+
On May 31st, I delivered a talk on the "Grand Unified IDE"'s newest. most cherished version till date - Netbeans 6.1 at the Bangalore Open Java User Group. BOJUG is one the most active java communities in India, with 379 members at present. It has a mailing list for discussions, troubleshooting java related problems, and news, tips, etc revolving around the world of Java, and has monthly meets where Java Developers from eminent companies in Bangalore show up to share their interest and have a voice, companies like CISCO systems, Wipro, Infotech, etc. BOJUG is sponsored by Sun Microsystems. The May monthly meet had been scheduled after a long time (last one being way back in December), at the India Engineering Center (IEC), Sun Microsystems, Bangalore in the Himalaya Conference Room. It was sheer pleasure for me to be able to attend this meet, as I am here, working at IEC as an intern at this point of time. 15 other campus ambassadors are also during their summer internship projects here.
The BOJUG meet had 3 sessions in total:
- NetBeans 6.1: New and Noteworthy (talk, demos)- Angad Singh, 11 am
- xSocket - Client/Server apps over HTTP - Harish Singh, 12 am
- Test Driven Development (Demos) - Ranganath.S, 1 pm
My talk was about the IDE that I love with all my heart, and swear by for all my development work: Netbeans. The 6.1 release was more than just a minor revision increment and I had been looking for an opportunity to talk about it, and I got that at BOJUG. With 6.1, Netbeans enters entirely new grounds: primarly the land of JavaScript and PHP development. Honestly speaking, with these 2 additions there's just no piece of software which atleast, I can't write in Netbeans (apart from some obviously unsupported stuff ;)..
Netbeans 6.1 is not all about new language support though. It is primarily about "performance" and "quality". Netbeans 6.1 has made a groudbreaking
performance increase in the IDE, with a whooping 40% faster cold startup time. There have been various optimization in the I/O subsystem and file access, the all new incremental parsing in it's java editor, speeding the code completion magic, improvements in the JSP parser and thus the visual web experience. Faster IDE, Lower memory usage, fixed memory leaks, and a lot more!
The
Javascript support is based on the
Generic Scripting Framework and provides features like semantic highlighting, quick fixes as you type the code in the Tasklist window, documentation for the javascript API, browser compatibility "awareness", and most of all automatic heuristics-based type inference (something you don't
usually get in any other javascript IDE). In the Javascript demo I did the exact demo done in
Roumen's screencast.
The new
PHP support in Netbeans Early Access for PHP is as good as it can get. Project type support, cool editor features like semantic highlighting, navigator, automatic code completion, parameter hints, smart indent, etc. Not to mention the ability to debug PHP applications with the IDE using Xdebug, etc. In my PHP demo I ran the sample project, showing them how easy it is to setup your project in the IDE, how to import the SQL using the brand new in-built MySQL support and tell Netbeans to automatically deploy the sources to your webserver's htdocs folder. Neat! There were 2 more demo's I did: MySQL support and Sharable Projects. Honestly, there was much more new stuff in there to show off, but I had to adjust my talk to complete on time. I talked about the new UI enhancements, RESTful web service plugin, Spring Framework support, Rails 2.0, Mercurial support and other enhancements. Phew!
Harish presented their company's open source project
xSocket which is an easy to use NIO-based library to build high performance, scalable network applications. It supports writing client-side applications as well as server-side applications in an intuitive way. Issues like low level NIO selector programming, connection pool management, connection timeout detection are encapsulated by xSocket.
A few laptop-projector incompatibility woes apart, Ranganath's talk was captivating. His talk was focused on the importance of test-driven development in an agile development project. His talk was entirely demo-based and he chose to not follow a slideset at all, as he wanted to make the talk interactive instead of a one-way conversation, and he did succeed at that. He explained that no matter how much we as programmers tend to think that our code is perfect, we can never foresee errors in our code without external help, and the best way to do so is to write comprehensive tests which try to break or so to say, "hack" the code by all means. So, with that done, whenever we add to or modify the code, we just have to run the tests we wrote and we'll be sure that it will work fine. He gave excellent examples to demonstrate the capability of the unit testing concept and gave demo's of how exactly it is done in Netbeans by writing JUnit tests.
At the end of the meet, Ranganath organized a small coding event. He gave us a case study to implement in Java. I won the contest and received a "I Love Java Code" mug as first prize :D. Also got goodies for being the first one to come to the meet.
A few words about BOJUG from its
wiki:
"The purpose of this JUG is to provide a forum to share ideas, discuss and to promote Java. Anybody with an interest in Java is encouraged to join. We meet once a month. The meetings will include tech talks on various topics related to Java. In addition to the meetings, we plan to have code jams, workshops and bof sessions on a regular basis. Visit the home here and the mailing list here. We are a group of Java developers in Bangalore, engineers (to say the least) we hope to create a thriving Java community in Bangalore. Java being open sourced is easily one of the greatest piece of news in recent memory for us developers. Now, Java will be adopted even more widely than it was. Part of being open source means to build communities. Communities of developers,users, experts and beginners, which are needed for the greater adoption of Java. These communities are the life-line of any open source product, and as users, it is our responsibility to strengthen Java's life-line."