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.
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.
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. The NetBeans IDE and Eclipse
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.
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. Every time I read the blogs of Geertjan Wielenga, Gregg Sporar, Brian Leonard, or Roman Strobl, I come away with something new. 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.
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.
We also occasionally hear that the layout manager, Shifting From VB to Java Technology
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.
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. Keeping Up With Java Technology Pointers
I also have created a compilation of Swing toolkit-related links called Swing Pointers that can be linked to off the java.net desktop. I've been surprised by the popularity of both.
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.
_______ See Also
Charles Ditzel's Blog |
| |||||||||||||||||||||||||
|
| ||||||||||||