| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| |
| <head> |
| <title>Netbeans Platform Interview: ThinkingRock and Getting Things Done</title> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
| <meta name="author" content="lloyd.dunn@sun.com"> |
| <meta name="description" content=" |
| Interview with Jeremy Moore, lead developer of ThinkingRock on the NetBeans Platform |
| "> |
| <meta name="keywords" content=" |
| NetBeans, IDE, Platform, integrated development environment, interview, ThinkingRock, Getting Things Done |
| "> |
| <link href="../../../netbeans.css" rel="stylesheet" type="text/css" media="screen" /> |
| <style type="text/css"> |
| .photobox { |
| float: left; |
| padding: 0 1em 1em 0; |
| } |
| .photobox p.caption { |
| margin: 3px 0; |
| font-size: smaller; |
| } |
| |
| .lead { |
| margin: 1em 0; |
| font-size: 1.2em; |
| } |
| |
| .callout { |
| font: 1.5em/1.5em serif; |
| color: #ee6b00; |
| border-left: 1px solid #d1d1d1; |
| width: 180px; |
| float: right; |
| padding: .25em 1em .75em 1em; |
| margin: .5em 0 .5em 1em; |
| } |
| |
| .infobox { |
| width: 180px; |
| border-left: 1px solid #d1d1d1; |
| float: right; |
| padding: 0 1em .75em 1em; |
| margin: .5em 0 .5em 1em; |
| } |
| .infobox p { |
| color: #ee6b00; |
| margin: .7em 0 .3em 0; |
| padding: 0 0 3px 0; |
| border-bottom: 1px solid #d1d1d1; } |
| .infobox li { margin: 0 0 0 -2em; } |
| |
| hr { |
| clear: both; |
| border: 0 none; |
| height: 1px; |
| border-bottom: 1px solid #d1d1d1; |
| margin: .25em 0 1em 0; |
| padding: .25em 0 1em 0; |
| width: 100%; |
| } |
| |
| h1, p { line-height: 1.5em; } |
| |
| q:before { content:"“";} |
| q:after { content:"”";} |
| |
| |
| </style> |
| </head> |
| |
| <body> |
| |
| <h1>NetBeans Platform Provides the Pre-invented Wheel <br>So You Can Get Things Done |
| </h1> |
| <h3>An Interview with Jeremy Moore, Software Developer of ThinkingRock</h3> |
| <p class="lead"> |
| The time management book "Getting Things Done", by |
| David Allen, promises to help readers handle work-life tasks more |
| productively through a simple five-step plan: collect, process, |
| organize, review, and do. The book's approach has become a popular |
| model in the personal management and productivity industry, and has |
| earned an eponymous acronym: GTD<sup>®</sup>. Now, a two-person |
| development |
| team in Australia has repurposed the GTD concept for the digital set, |
| creating a software application to help the tech savvy but disorganised |
| get things done. The application, <a href="http://www.trgtd.com.au/">ThinkingRock</a>, |
| was built on the <a href="http://platform.netbeans.org/">NetBeans |
| Platform</a> and has been getting rave reviews. We spoke to the lead |
| developer of ThinkingRock, Jeremy Moore, to learn about his team's |
| experience using the NetBeans Platform. |
| </p> |
| |
| <div class="photobox"> |
| <img id="thinkingrock" src="../../../images_www/articles/interviews/thinkingrock.jpg" |
| alt="ThinkingRock development team" title="ThinkingRock development team" /> |
| <p class="caption">The ThinkingRock development team out on a rock, er, thinking</p> |
| </div> |
| |
| <p><b>What drew you to NetBeans?</b></p> |
| <p> I first started using NetBeans back around 2000 when I was learning |
| Java. I think it was NetBeans 3.0 or something. The |
| non-commercial and open-source nature of it was a big draw for me |
| and there were no problems getting at any of the code. The |
| documentation back then was lacking a bit, but there was always a good |
| vibe with the NetBeans community. There was always help via the email |
| lists. |
| </p> |
| <p> <b>As a long time NetBeans user, what changes have been the most |
| striking or useful for you |
| over the years?</b> |
| </p> |
| <p> NetBeans has come a long way and now has good documentation. I |
| can't remember exactly what functionality was or was not there when I |
| first started using it, but I do remember having all sorts of problems |
| building an application on the Netbeans Platform, just trying to get |
| the things that were supposed to work to actually work. |
| </p> |
| <p> Now it is very easy to build a Rich Client Platform application |
| (although the platform is not quite as separate from the IDE as I would |
| like). There was not a lot of documentation back in those days and you |
| really had to get your hands dirty. Now it's much better and there are |
| blogs and lots of info on the Web as well as the NetBeans web site. |
| </p> |
| |
| <div class="callout"> |
| <q> We first just built ThinkingRock without using any platform at all, |
| but soon realized that we were re-inventing the wheel in many aspects. |
| </q></div> |
| |
| <p><b>Did you evaluate other platforms?</b></p> |
| <p> Yes. We first just built ThinkingRock without using any platform at |
| all, but soon realized that we were re-inventing the wheel in many |
| aspects. For example, there was no need for us to implement our own |
| drag-and-drop when that problem had been solved already. We then looked |
| at various platforms, with the main contenders at the time (just over |
| two years ago) being Eclipse and NetBeans. |
| </p> |
| |
| <p> We first looked at using Eclipse, but found it lacking. Our main |
| reason for discarding it was their poor implementation of the Standard |
| Widget Toolkit. Basically, it worked great on Windows, but not so great |
| on the Mac. And, support for SWT was either buggy or non-existent on |
| some platforms. (In fairness, the situation is probably a bit better |
| today). |
| </p> |
| <p> We wanted our application to work on as many platforms as possible, |
| therefore we felt we needed a 100% Java solution. We also evaluated |
| other platforms, but most were just getting started. They either lacked |
| some functionality we really wanted, such as a plug-in architecture. |
| Either that, or they were not mature enough. |
| </p> |
| <p><b>What did you like about the NetBeans Platform?</b></p> |
| <p> It's 100% Java, and has the plug-in architecture that we needed, |
| for starters. Also, it's now a mature IDE. I like the fact that it's |
| open source and it's continually improving. Also, the NetBeans |
| community spirit is a real plus. |
| </p> |
| |
| <div class="callout"> |
| <q> NetBeans is now a mature IDE. I like the fact that it's open source |
| and it's continually improving. |
| </q></div> |
| |
| <p><b>Earlier you said you found the NetBeans documentation particularly valuable to you?</b></p> |
| |
| <p> The documentation has gotten much better and the tutorials help a |
| lot. For example, the |
| Selection Management tutorial was a great help when we were working on |
| that functionality.<br> |
| </p> |
| <p>Also, the e-mail lists, especially openide-dev, proved very |
| useful. I would have to also say that the <a |
| href="http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802/ref=sr_1_2?ie=UTF8&s=books&qid=1227622445&sr=1-2">Rich |
| Client Programming book</a> |
| has been really helpful in understanding the NetBeans architecture. </p> |
| <p><b>What about NetBeans' plug-in architecture? How was it valuable to |
| you?</b></p> |
| <p>Our rich client application consists of many modules which we can |
| easily update and deliver via our update center—without making the |
| user download the whole application. We are also adding new |
| functionality which, because of the platform, we can deliver as plug-in |
| modules. It's also nice that users have the flexibility to choose to |
| add or remove functionality and modules. </p> |
| <p>Because NetBeans is open source, a main benefit is the fact that |
| anyone can get the source, see what it actually does, and change it if |
| they need to. So the developer is not totally reliant on some company |
| to provide a solution that might be missing—usually for a fee and on |
| their time schedule.</p> |
| |
| <div class="infobox"> |
| <p><b>What is ThinkingRock?</b></p> |
| <ul> |
| <li>ThinkingRock, a time-management application based on the principles laid out in David Allen's book "Getting Things Done"</li> |
| </ul> |
| <p><b>How do I get it?</b></p> |
| <ul> |
| <li>Download ThinkingRock <a href="http://sourceforge.net/project/showfiles.php?group_id=194713">here</a>.</li> |
| </ul> |
| <p><b>Operating systems?</b></p> |
| <ul> |
| <li>Windows, MacOS X, Linux</li> |
| </ul> |
| </div> |
| |
| <p><b>What APIs did you like?</b></p> |
| <p>The Lookup mechanism is probably one of the most useful. One of the |
| things we use it for is with the service provider scenario. We can |
| define a service API and then we, or anyone else for that matter, can |
| provide service implementations and deliver them as plugin modules. |
| </p> |
| |
| <p>For example, we have a text component which allows the user to enter |
| notes. They can also enter URL-type links to web pages and other |
| things. |
| We want this to be extensible so that we can easily handle new types of |
| links or protocols so that, when the link is selected, the appropriate |
| application will be fired up and take the user to the linked resource. |
| We accomplished this by having a Service Provider API. Then we can look |
| up all the provider instances to see if any can handle the selected |
| URL, |
| and if so, we call the provider application to handle it.</p> |
| <p>But there are other APIs I like, too, such as the windowing system, |
| the explorer, the module system. ...</p> |
| <p style="font-weight: bold;">How many people are developing |
| ThinkingRock? Does NetBeans offer you |
| any advantages in working collaboratively with other programmers?</p> |
| <p>There are mainly two of us developing ThinkingRock, although we have |
| had various contributions from our users. We haven't really needed |
| collaboration tools apart from having our source in a subversion |
| repository on SourceForge. For that, we use the NetBeans plugin for |
| subversion, which works very well. </p> |
| <p><b>Any closing words about the NetBeans community?</b></p> |
| <p>You are always treated with respect when you ask questions on |
| the email lists. I've seen that people go to a lot of trouble to help |
| you. People have put a lot of effort into Netbeans over the years and |
| not for financial reward (even though some are Sun employees). I think |
| that the members of the NetBeans community really believe in what they |
| are doing—and it shows.</p> |
| <h2>Additional Resources<br> |
| </h2> |
| <ul> |
| <li>Learn more about <a href="http://www.trgtd.com.au/">ThinkingRock<br> |
| </a></li> |
| <li><a |
| href="http://sourceforge.net/project/showfiles.php?group_id=194713">Download |
| ThinkingRock</a> at SourceForge</li> |
| <li>Learn more about <a href="http://platform.netbeans.org/">NetBeans |
| Platform</a><br> |
| </li> |
| </ul> |
| </body> |
| </html> |