|By Janice J. Heiss, October 2006|
Charles Ditzel, a partner area architect at Sun Microsystems, has worked with Java technology for ten years, focusing on the Java Platform, Enterprise Edition (Java EE), and on Sun Java Enterprise System architecture (formerly Sun ONE). He concentrates on helping Sun's partner companies implement Java platform applications and is passionate about Java tools. He conducted sessions at the 2006 JavaOne Conference on both the NetBeans integrated development environment (IDE) -- the original open-source, free IDE -- and the Sun Java Studio Creator 2 IDE. Before joining Sun in 1989, Ditzel worked at Boeing for 10 years. Among other things, he worked on software for robot work cells and programmed robot subsystems.
We met with him to get an update on the challenges of helping partners migrate to Java platform software and to discuss recent developments in Java tools.
You spend a fair amount of time helping partners integrate Java technology and Java Enterprise System software into their solutions. What are the challenges in doing this?
In Sun's partner area, we participate in various projects with partners ranging from system integrators, to resellers, to consultants, to ISVs. The biggest challenges are often more cultural than technical. A partner may be entrenched in a non-Java technology solution -- for example, such as Microsoft -- and my job is to help them cross the cultural divide.
"Sometimes in the Java software culture, we forget that other developer cultures see things through a different lens."
Partner Area Architect, Sun Microsystems
Sometimes in the Java software culture, we forget that other developer cultures see things through a different lens. Think about it: We are so used to terms such as servlets, applets, Swing, Jini technology, application servers, POJOs, NetBeans, Eclipse, JXTA, and EJBs -- and even then, we talk about EJB 3.0 versus EJB 2.0. The Java technology nomenclature itself can create a real communications divide.
Ten years ago, tools to ease migration simply didn't exist. I remember in 1998 walking into a very large Fortune 500 company that had Visual Basic and COBOL programmers who were interested in tools to facilitate migration. I had little to offer them.
Today, we have tools that are familiar and easy to use -- even conversion tools. And migration is much easier. Today, a .NET developer can grasp Java tools much more comfortably than could developers in 1995. For example, they can use the refactoring in the NetBeans IDE and take advantage of the NetBeans IDE GUI Builder, of UML, SOA Visual Designer, collaboration and mobile tools, and profiler. And they also realize that the Java programming language now offers higher-level infrastructure pieces dealing with identity, portal, security, and application deployment, along with a wealth of enterprise features.
Sixteen Reasons to Use the NetBeans IDE
Some developers who don't use Java technology still think in terms of 1995 Java software and believe that Java platform applications are slow and don't scale well, but this is not the case. Just look at the widespread use of Java applications. Java software is being used to develop both fast-paced video games like Tribal Trouble and to develop large, critical enterprise applications. Enterprise Java applications have spawned a multibillion dollar industry in which Sun, IBM, BEA, JBoss, and other companies compete.
You presented a session at the 2006 JavaOne Conference in which you explored reasons to use the NetBeans IDE. How is NetBeans doing now, compared to Eclipse?
NetBeans is on fire. I've been at Sun for more than 17 years, and I've never seen such fast innovation in such a short period of time. Not to take anything away from Eclipse -- they certainly have done some cool stuff in the past as well. But the NetBeans IDE is really transforming our expectations about development environments and rich-client platforms, as well as offering high-end sophisticated enterprise features. The NetBeans IDE 5.0 and the upcoming 5.5 release are changing everything. This year at the 2006 JavaOne Conference, we talked about 12 reasons to use the NetBeans IDE -- in reality, we gave 15 reasons. The NetBeans IDE can be viewed in various ways: as a development environment, a rich-client platform, and of course, as a community. The NetBeans IDE is a simple download. It's relatively small, 36 to 58 megabytes, depending on the version, but it contains a ton of stuff. Comparing NetBeans with Eclipse on download size and features leaves you wondering how the NetBeans IDE developers put so much into so little space.
"NetBeans is on fire. I've been at Sun for more than 17 years, and I've never seen such fast innovation in such a short period of time."
Partner Area Architect, Sun Microsystems
The basic Eclipse 3.1 download gives you an editor, debugger, compiler, and the underlying rich-client substrate. The NetBeans IDE provides these features and more. For example, to build a graphical user interface (GUI), NetBeans provides the NetBeans IDE GUI Builder, the best free Java technology-based GUI builder. Eclipse 3.1 requires you to download Visual Editor Project, which is another 7 or 8 megabytes, and has nowhere near the features of the NetBeans IDE GUI Builder.
If you want to build a Struts, JavaServer Pages (JSP), or JavaServer Faces technology-based web application with the NetBeans IDE, it's already included, whereas with Eclipse, you have to download a 180+ megabyte Web Tools Platform (WTP) project that lacks Struts support and requires yet another module for JavaServer Faces technology support.
The same is true of the web services baked into the NetBeans IDE. Eclipse requires the big WTP download. Recently, Eclipse 3.2 has tackled some of its compatibility problems by introducing Callisto -- a simultaneous release focused on compatibility. The jury is still out on this, but it is still very big. The NetBeans IDE has reliably released compatible downloads of profiler, mobility, enterprise, collaboration, and other projects for quite a while, not to mention the NetBeans platform itself.
Switching to the NetBeans IDE
Many developers who are migrating their applications to NetBeans from other IDES have interesting stories to tell.
The out-of-the-box features in the NetBeans IDE are one of the strongest reasons to use it. Some Eclipse developers have pointed to this as a big reason for switching. Why should you have to download a myriad of plug-ins to get the basic features you need? NetBeans has a healthy plug-in ecosystem, but the basics -- and a lot of advanced features for, for example, the Java EE platform -- are right there in the standard NetBeans IDE release. The NetBeans IDE comes with "batteries included." Adding features in the NetBeans IDE is easy through an Update Center that allows quick and transparent download and install.
Also, the NetBeans IDE has a sophisticated profiler, so you know what's going on in your application. And the new Jackpot project offers a nice rule-based approach to transforming source code. The NetBeans IDE also offers developer collaboration tools, which allow remote code walk-throughs and remote pair-programming. Building mobile applications for cell phones is a breeze when using the visual development tools that the NetBeans IDE offers in its mobility pack. The enterprise pack, which was recently announced and is now in public beta, offers support for some of the most sophisticated XML Visual Schema tools and SOA Visual Design tools.
At NetBeans Software Day, the NetBeans IDE team previewed the Sun Java Studio Creator IDE features inside of the NetBeans IDE. What is now being called the Visual Web Pack is pretty exciting. And in the past few months, a lot has happened. Java SE platform lead Danny Coward's NetBeans plug-in takes C# and VB.NET and transforms them into Java technology sources. NetBeans IDE developer Tim Boudreau has shown a Java Web Start software app, BeanNetter, that takes components based on JavaBeans component architecture and turns them into NetBeans IDE plug-ins, which, when loaded into the IDE, populate the NetBeans IDE GUI Builder component palette with new visual components.
NetBeans is hot, and developers are recognizing this. The Java Developer Journal just awarded the NetBeans IDE an Editor's Choice Award.
Then just when I think things are cooling down, something big happens like the NetBeans IDE Enterprise Pack or the NetBeans IDE Native Compiler modules or Tor Norbye's app that allows Visual Basic (VB) sources to be compiled into Java bytecodes.
Besides the out-of-the-box features of the NetBeans IDE, what other reasons do Eclipse users -- or you -- give for making the switch?
Simplicity. The NetBeans IDE offers simplicity in its advanced features and in existing Java technology standards. It also offers simplicity in integrating and using existing Java technology-based open-source and commercial projects in developing. The profiler, the mobility pack, enterprise UML modeling, enterprise SOA Visual Designer, full Java EE 5, Jackpot with its next-generation refactoring on steroids, new subversion support, collaboration, and of course, the NetBeans IDE GUI Builder are just a few examples of what the NetBeans IDE offers.
Stay tuned for the next wave of innovation, such as the upcoming Visual Web Pack, new fast 6.0 editor features in the NetBeans IDE, which will make web application development radically easier.
You mentioned in your blog that NetBeans and NetBeans technology adoption is now happening among Eclipse corporate members such as JBoss, Lattix, and Genuitec, to name a few. Tell us about this.
JBoss made a big announcement at the 2006 JavaOne Conference endorsing the NetBeans IDE. If you look at the JBoss site and the NetBeans site, there is a nice bundled JBoss Application Server Bundle. Lattix has offered its Lightweight Dependency Modeling tool within the NetBeans IDE, while Genuitec now offers the NetBeans IDE GUI Builder to its Eclipse customers through MyEclipse IDE. I expect to see more Eclipse members use NetBeans IDE technologies in different forms.
Are there any misconceptions about NetBeans and Eclipse that you would like to dispel?
"One big misconception is the idea that Eclipse and NetBeans should
somehow merge, or that all parties should build one IDE."
Partner Area Architect, Sun Microsystems
One big misconception is the idea that Eclipse and NetBeans should somehow merge, or that all parties should build one IDE. The Java technology ecosystem needs competing development environments to stimulate innovation. Some in the Java community have an idealized view of the world and think that if everyone joined one project, we would produce the best software. But look at what's happened in the past five years: The existence of competing development environments such as NetBeans, Eclipse, JDeveloper, IntelliJ IDEA, and others has been great for the developer. The tools have become better and better at a faster and faster rate. Eclipse and NetBeans have been mutually beneficial to each other.
What is the primary fear, uncertainty, and doubt (FUD) about the NetBeans IDE?
One item of FUD is that Swing toolkit-based apps are slow, which might have been true a while back, but today Swing performance is quite good and getting better. Java 2 Platform, Standard Edition 5.0 (J2SE 5.0) has all sorts of improvements that make Swing not only faster but better. And Java Platform, Standard Edition 6 (Java SE 6) is even better. The argument that a native toolkit like SWT (Standard Widget Toolkit) is faster has lost steam because Swing has become quite fast and offers great GUI fidelity.
We also occasionally hear that the layout manager,
GroupLayout, which the NetBeans IDE GUI Builder uses to create its great user interfaces (UIs), causes some sort of lock-in or is proprietary. It's in JDK 6 and included as a library for use in JDK 5.0 and 1.4. As you can see, it's neither a lock-in nor proprietary.
You presented a session on the Sun Java Studio Creator 2 IDE at the 2006 JavaOne Conference. What would you say to Microsoft VB developers who are considering shifting to Java technology?
Please, come in and get your feet wet -- you will find the Sun Java Studio Creator 2 IDE familiar and productive. You can drag and drop a web service or database table onto a component to visually lay out your web application, and select a button to deploy it to an application server. There are new Web 2.0 Ajax components and new JavaServer Faces components that make building advanced web applications much easier and much more sophisticated. We demo'd a mapping component built into our web application.
It's hard not to be impressed with the ease of use and power available in Creator, which is free and provides easy ways to build web apps. Creator is based on the NetBeans IDE, and I encourage VB developers to try the current Sun Java Studio Creator IDE and the upcoming NetBeans IDE Visual Web Pack. Both will be familiar and useful to developers who use VB.
What should developers understand about the relative virtues of .NET and Java technology? Why should C# and VB.NET developers consider moving to Java applications?
Originally, Java software was about "Write Once, Run Anywhere." It still is, and it's also about a community evolving the platform and creating the most compelling development and deployment environment available. As a result, there are now lots of powerful tools from open-source and commercial projects. The entry costs with Java technology approach zero -- free design tools, free IDEs, free profiler, free app servers, and free databases, to name a few. I hope .NET developers look at the Java programming language's underlying power in building applications that can run on many hardware platforms and across many operating systems.
I invite them both to leverage what the community has already created and to help evolve the platform. The language evolves and is driven by the community, resulting in a dynamic influx of innovation and concepts that continuously improve the platform. Java technology developers are building fast-paced games, mobile apps, large enterprise applications for critical functions, smart-card identity applications, graphical apps that deal with stock transactions, advanced scientific applications that simulate Mars Rovers, applications that deal with financial transactions, Jini technology-distributed applications that transact on the majority of airplane ticket sales, and much more. The Java programming language is not about a single company but is a large community that continues to evolve the platform around the fundamental concept that software should be able to run without boundaries. For a .NET developer, this has to be empowering.
Java Sun readers may know you best for your Java Technology Pointers web site. How did that site come about?
Early on, I realized that I was unable to easily keep up with changes in Java technology, so I started keeping a list of interesting articles and trends. Other developers in my local Java User Group had similar concerns, so I started sending out Java Technology Pointers, a compilation of Java technology-related links that has since migrated to Java Sun.
What has impressed you in monitoring developments in Java technology?
Java technology performance in game development has advanced. The improvements in the speed of Java technology-based graphics and Swing is very good news. I also saw a video browser done in a Java technology-based app -- very impressive. In addition, my jaw dropped when I recently saw the size, scope, and financial implications of some new Jini technology applications.
Do you have any reflections on the open-sourcing of the Java programming language?
I've always been a bit cautious on this front. Java software is a multibillion dollar industry. I'm sure that open-sourcing will be done thoughtfully with a strong focus on keeping compatibility intact. Think about it: Compatibility is the critical core feature of the Java programming language.
Do you have any closing thoughts?
The new scripting APIs in Java SE 6 open up a lot of possibilities. Two talks I attended at the 2006 JavaOne Conference on Groovy/Grails and JRuby were very interesting. They both are languages on top of the Java virtual machine. * Just as Eclipse and NetBeans improve on each other, projects like JRuby make Java platform applications better. Sun has hired two JRuby developers, which is good news.
Recently, I've been experimenting with Solaris Zones partitioning technology, and I've found it very useful. With a single Solaris OS machine, you can create zone partitions that allow you to isolate your efforts. For instance, it's possible to run your app server in one zone, a database in another, development work in a third, and so on. Each zone resembles a completely separate machine with different root passwords. I also have been looking at Grails, a Groovy-based web framework -- also very powerful. I am looking forward to the many new technologies and projects emerging -- Java SE 6, GlassFish, NetBeans IDE 6.0's new editor features, visual web app features in the visual web pack, new NetBeans IDE GUI Builder features, enterprise pack, and a lot more.
Though I know it can sound clichéd, the computing industry -- both hardware and software -- never stops evolving. It's so fascinating and exciting to watch and be a part of. What most excites me is that what we do can so positively affect the world at large, possibly save lives or make life easier for some people, lead to the discovery of new knowledge and information, and allow us to look at things in new ways. I'm jazzed! This is very exciting work.