Wednesday May 17, 2006
NetBeans Day 2006 and the Future of Tools
So on Monday, I attended the NetBeans Day conference, an all-day event that was held the day before the main JavaOne event. The NetBeans event was an absolutely fantastic experience as usual, with attendance over-capacity (I noted someone who appeared to be a fire marshall counting heads at one point) and a lot of developers who were there to learn about the latest in NetBeans technology as well as related information from Sun developer tools and partners.
I was on the ticket to close the initial keynote and introduce the tracks however because we started late, what was a 10 minute slot became a 1 minute slot (try at cram 7 slides into that!) and I had to go through my presentation (which I had down to a well-timed patter prior to the presentation BTW) about as rapidly as I have ever had to do (so I don't believe I communicated well everything that I felt I needed to). As I mentioned up-front to the audience, I would post (essentially) my presentation here so the full effect would be captured. So here we go ...
The Sun Tools portfolio
The Sun Tools portfolio currently consists of 5 primary tool products, one being NetBeans, one being an add-on "pack" and the remaining three products as Sun-branded "Studio" tools which were built on or using NetBeans technology (this distinction is important ... save it for later). Before I talk about where we are going, a discussion about where we are today will provide some context to understand where we're going.
NetBeans. The core (and most significant part) is NetBeans. This, of course, is the open source and community-supported application which consists of a robust RCP (Rich Client Platform) and a set of plug-ins which transform the platform into the rich and extensible IDE (and foundation for other IDEs) that is NetBeans.
Java Studio Enterprise. This product was originally designed to be the "enterprise" toolset for Sun and initially focused primarily on J2EE (yes, that's not a typo) and then web services development and deployment. As we have made the transition from J2EE to Java EE, much of the functionality necessary to do Java enterprise development has been shifted to NetBeans which has allowed the Studio Enterprise (I'll refer to it as JSE) team to focus on Service Oriented Architecture (SOA) development tools.
Java Studio Creator. This product has a special place in my heart reserved for it as this was a project I initiated, designed and architected (I have to admit, for the first release I was a bit of a dictator ... ask any of the old project team ... but it was worth it in the end). Creator ("Project Rave") was originally designed to meet the needs of the audience of developers who were either new to Java or needed to be able to easily and rapidly create rich web applications consuming existing data and services.
Sun Studio. Unique in that this product is the only non-Java IDE product from Sun, Sun Studio exists for the developers trying to build native (meaning C, C++ and Fortran) applications for Solaris and Linux.
NetBeans Mobility Pack. The Mobility Pack is not a stand-alone IDE in the same sense as the others. It is designed as an add-on to an existing IDE installation (NetBeans) and adds the features necessary for developers to create rich MIDP (and soon CDC) applications in the Java ME space. It includes both some of the same rich visual experiences you get with Creator but also adds the ability to leverage the Wireless Tool Kit (WTK) from Sun, including the use of rich emulators for various devices.
It should be noted (and note that this is historical data) that while all of the above were built using "on" NetBeans, they were built (exception: Mobility Pack) on NetBeans source (as opposed to being simply binary plug-ins on top of an existing NetBeans installation). The issue here is that as a result, frequently features which existed in one tool (ex: Creator) were not usable in another (ex: Enterprise or NetBeans). The end-result is a series of non-interoperable products (except at the generated source level) which (understandably) led to the "big question" that I (and others) get asked wherever we go an showcase the Sun developer products.
The "big question": Why all these tools ? Why not one ?
Historically, the answer is pretty simple. Last year, I (somewhat) covered our strategy and rationale in an earlier blog ... as our overall Sun strategy around open source and tools has now become more publicly available, I can elaborate a little (or a lot!) more on what we're doing and why.
There is value (to the customer, which is a primary imperative) to have tools which are tightly aligned and delivered with the deployment environment (in our example this would include things like the Java Enterprise System, Solaris and/or individual runtimes or platforms like Java SE, EE or ME. There is also value in delivering tools for specific audiences. NetBeans fits somewhere in between (we wanted to align with the needs of the Java community as well as an open source community). So NetBeans and the Forte/Studio tools served different audiences and different platforms/runtimes (NetBeans the "community" audience/platforms, the Forte/Studio products the "Sun" audience/platforms).
For good reason, we wanted to keep this new "open source IDE thing" at arms length, untainted by any Sun-specific initiatives or products ... in short we wanted to give this project a fighting chance as an open source IDE and make it attractive externally without any Sun bias (or even the perception of such baggage). As a result, while we did indeed build commercial products from the NetBeans source, it was a decidedly one-way street ... we used NetBeans technology as the foundation for our tools, but sharing was limited to either the assignment of Sun resources to the open source NetBeans project or very infrequent contributions to the community from our commercial products.
History has proved that these goals aren't mutually exclusive. Face it, there is little value in an IDE that you charge money for. And the value of creating and delivering open sources and standards far outweighs the value in any proprietary system. The commercial value isn't the tools themselves (or even the runtimes), it's the applications that run on them as well as the associated services.
We have reached an inflection point, both in terms of an understanding and realization of how the industry and economy of software systems works and as well one where the underlying technology is ready to adapt to the new model. It has taken 2-3 years of work within the NetBeans and Sun tools group to reach a point where a strategy I initiated to build on a common binary NetBeans foundation has reached the point where we can now reverse the order on how we build and deliver our software.
The new model
In the old days (and, in fact, what we're doing today), the model was that technology and products were delivered in closed source and periodically (rarely in the past, more frequently today) that code was donated to NetBeans. It started with such initiatives as the collaboration technology contribution in June of last year and a more recent example of that was what is known as the NetBeans Enterprise Pack. This is a collection of the technology present in Java Studio Enterprise (UML modeling tools, service orchestration tools, etc.) which was bundled as a "pack" (plug-able into a given installed NetBeans binary). With this pack, a NetBeans user now had access to technology which used to be only available to someone who used or paid for a copy of the JSE product.
As time goes on, more and more of what has historically been proprietary or "closed" source will be contributed to NetBeans. Recently, you've seen announcements to that effect for such technology as C/C++ development and the contribution of Creator technology (WYSIWYG designers for rich web application development).
This is only the beginning. The only real barrier to all of the Sun tools technology from becoming part of the general NetBeans technology base is logistical in nature (legal, coordination and usability/workflow model standardization). I would expect that by this time next year, the majority of all code will be completely shared... which leads to the next step ... reversing the order (instead of contributing to NetBeans from what was closed-source, proprietary code-bases, develop in open source and use that common code for point products use).
Once we have created this centralized "repository of development technology" which is NetBeans, when we need to create those custom point products (the need to have tightly aligned tools which ship with specific runtimes like Java Enterprise System hasn't gone away), we will instead pull what technology from the repository we need, brand it appropriately, test it rigorously with the deployment environment, perhaps add features specific to that runtime and ship it with that runtime.
As shown here, the process of delivering Java Studio Enterprise will now be a process more of one extracting the relevant bits from a common NetBeans technology repository (which is developed in open source) rather than delivering that technology into NetBeans at a later date (which likely over time would lead to more logistical nightmares since the code wasn't developed in concert with the NetBeans source). As before, this process would and will apply to the other products as well.
The interesting and powerful result here is that the technology now shared between all of these products is now re-useable in all of these products (where before it was impossible, for instance, to re-use a module from Creator in say, NetBeans). The advantage here will be, for instance, the ability to create custom environments for specific vertical applications or specialized needs (the example here is perhaps contrived, but I hope it makes the point).
Over the next month or so I hope to describe some of the specific plans and vision of how this strategy will be realized in terms of timing and roadmap.
Enjoy JavaOne!
Posted by brewin May 17 2006, 12:23:59 PM PDT Permalink
The land of OZ
As mentioned the last time here, I'm heading to Australia and New Zealand at the end of the month for the Developer Days conference being put on down under.
The Sun Developer Days take place over 3 consecutive days. The first day is a half day on Solaris and the rest of the event occurs on the following days in the same location. Obviously, check the site regularly for any updates (after you register of course :-)
Wellington
| Monday 27th March BONUS Solaris Half Day in the morning. Tuesday 28th - Wednesday 29th March Sun Developer Days Conference. |
Location: Copthorne Hotel, Wellington Corner Glimmer Terrace and Boulcott Street Wellington |
Sydney
| Wednesday 29th March BONUS Solaris Half Day in the morning. Thursday 30th - Friday 31st March Sun Developer Days Conference. |
Location: Willoughby Civic Centre 409 Victoria Ave, Chatswood |
Melbourne
| Tuesday 4th April BONUS Solaris Half Day in the morning. Wednesday 5th - Thursday 6th April Sun Developer Days Conference. |
Location: Rydges Melbourne 186 Exhibition Street Melbourne |
So I'll look for you down under ... and yes, of course I'm bringing a surfboard with me ...
Posted by brewin Mar 06 2006, 10:59:59 AM PST Permalink
Time to Rave ... about Creator 2.0
Hey folks! It's time to Rave ... about Sun Java Studio Creator 2, now available for download (and it's available for free as well). If you need the best tool for the rapid development of standards-compliant JavaServer Faces web applications built on the Java platform, Creator 2 is exactly what you need.
For those who have been following Creator since it's inception, you may not be aware of some of it's early history. Years and years ago (I believe it was early in 2001) there was a convergence of ideas among folks like Graham Hamilton and I around the need to create a new set of tools to both promote ease-of-development (this being done at the same time we were investigating ease-of-development improvements in the Java platform itself ... but that's a story for another time). In very short order we (along with Rich Green and Ken Wallich) launched the project and under my technical guidance (some might even say totalitarian oversight :-) ), we gathered a cadre of the best and brightest folks we could attract and built "Project Rave", the first incarnation of Sun Java Studio Creator.
A historical or hysterical note: The name "Rave" doesn't mean anything today (other than still being a wonderfully cool name), but one day Ken and I were brainstorming on possible names and I came up with R.A.V.E. -- Rapid Application Visual development Environment (I'll bet you that all but a few ... if any ... of the old hands in the current Creator team will remember that little detail) ... The next time we talked to Rich, he said not to bother with the acronynm ... Rave by itself was perfect and we agreed ... Project Rave was born.
The vision behind Rave (gotta keep calling that ...) was to create something unique in the Java developer tool space, a tool designed for the rapid development of Java applications by those either new to Java or domain experts who needed an easy way to leverage the power and portability of Java without enduring the steep learning curve needed by other IDEs. The result, Creator ... with it's easy-to-use WYSIWYG design tools, simple service and data binding and it's unique and powerful roundtrip to source code facilities. With Creator 2.0, the result is a complete and well-rounded solution, with added support for such features as JSR-168 compliant portlets, a suite of new, robust and powerful JSF components, support for the Sun Application Server PE 8.1 and support for AJAX-enabled components, thus opening up the world of the rich web-client to the corporate developer.
So if you've never used Creator, if you use Creator 1.0 today or used Creator but found it wanting, I strongly suggest you download Creator 2.0 today ... give it a try, I know you'll be impressed with it's power, it's ease-of-use and the depth and breadth of it's feature set, supported systems and innovative technology. It will meet your needs (and more) ...
It's something to Rave about ... Posted by brewin Jan 25 2006, 06:02:52 AM PST Permalink
In Beijing
So I've been absent of late ... that's a bad thing, I need to make a new years resolution (but perhaps not on the new year ... now seems like a good time). That resolution is to blog more often even if it's only to make a brief note of something ...
Anyway ... this week I'm in Beijing at Java China ... it's (I believe) the largest ever Java conference outside of JavaOne ... certainly here in Asia. I had the pleasure of doing the technical keynote this morning in front of a packed house (actually, make that houses as the keynote was being held in Beijing, yet there were events being held in 8 other cities with a satellite link-up so folks at the "spoke" sites could see and hear the event from the "hub". (In case you wonder, the other cities were Shanghai ... which was uncomfortably close to a typhoon in the area, Guangzhou, Nanjing, Chengdu, Xi'an, Dalian, Shenzhen and Hong Kong).
I've heard the numbers were somewhere between 6 and 10K developers total ... which is huge ... meeting these folks here on-site is always a thrill and you could see that everyone was excited and ready to get a brain dump from the scores of Java experts who were on-hand to talk about everything from SOA to Swing (there are something like 100 conference sessions in this two day event). I'm looking forward to tomorrow, when James Gosling is supposed to do his keynote and then the next round of tech sessions begins ...
Can't forget NetBeans, which is undergoing a "World Tour" ... part of which included another NetBeans Day here in Beijing. Unfortunately, I missed it ... which is a bit of a drag since I was supposed to moderate and speak at it ... long story there, but the short story is that as I was coming in to land at Narita (after which I had the short hop to Beijing), a severe thunderstorm (according to the pilot) parked itself right over the airport and shut the place down ... I ended up at Nagoya (and long story made short) didn't arrive in Beijing until after my talk would have finished ...
That being said, James (bless his soul) filled in for me and I hear that NetBeans day was a resounding success. I'll have to try again at the next one ...
Until next time, this is Radio Beijing ... signing off ... Posted by brewin Sep 13 2005, 01:09:51 AM PDT Permalink Comments [0]
Developers, developers, developers ...
We're just around the corner from JavaOne 2005 and if you take a look at the tracks and agenda, it's very obvious that Sun is paying homage to that most valuable of software resource: the Developer...
Normally, everything would kick off on Monday, but this year there is something special for those "in the area": netBeans Day... a free conference specifically targeted at developers and anyone interested in finding out about the latest and greatest developments in netBeans and products built on it (like Java Studio Creator). It's also a great opportunity to rub elbows with folks like James Gosling, Tim Bray, Rick Ross, Hideya Kawahara ("Mr. Looking Glass") and a cast of thousands (if you include the attendees ... think "networking"). All in all, an event which shouldn't be missed.
Monday morning, of course, it's time for JavaOne ... but before the Big Show(tm), take a moment Sunday to drop by netBeans Day at the Argent Hotel ... I'll see you there! Posted by brewin Jun 22 2005, 02:26:09 PM PDT Permalink
Services in action
Stumbled across the following today ... it's worth a read. The essence of the story is that developers have discovered (in this case) ways of accessing / manipulating the Google mapping service engine and are coupling the results with other data / services sources to construct new applications for special purposes.
For instance, go to the following location and look at the results of merging Chicago crime statistics (which include location information) with a Google map.
Granted, it seems that some of the sites listed (the predator page is particularly scary) are unofficial in nature but perhaps that's the whole point... businesses will soon (if not already, look at the number of RSS feeds out there) be providing their data as services and it won't take very much for an enterprising developer to cook up an app which has never been seen before, one that provides value in new an interesting ways. Unfortunately, the "for fee" bit could very likely stifle the innovation needed in this new world of building applications from loosely coupled services; the challenge will be figuring out how businesses and entrepreneurs can monetize their creation(s). It's likely not hard, but does require thought (it's banner ads all over again ... hopefully not!).
Building these applications will be a challenge looking forward as well ... with relatively simple applications, it's a pretty straightforward task with basic web design tools and an IDE today. But as the applications become more complex (where complexity is defined not in the usual lines-of-code manner but rather number-of-services * complexity-of-the-service-interaction), radically new design tools which promote visualization of those services and their relationships will be needed. This is the world of SOA and the tools that will be needed to build, deploy, maintain and manage SOA projects.
All in all, a big challenge (and some cool stuff beginning to materialize that hint, at least to me, where things are moving).
Until next time ... Peace ... Posted by brewin Jun 09 2005, 11:07:43 PM PDT Permalink



