| By Joe Winchester | Article Rating: |
|
| March 6, 2004 12:00 AM EST | Reads: |
13,886 |
Other initiatives like JSR 198, whose goal is to describe a common API for extending IDEs, will benefit from interoperability. I hope I've seen the last newsgroup fan war between people who fight about which toolkit is superior. For those of you who are still arguing, Figure 1 shows an SWT shell with an SWT button on the left and a Swing button on the right. Or is it the other way around?
For everyone who isn't already doing so, let's all focus back on the real job of building killer apps for our users. This segues into my next subject - the buzz at EclipseCon around the rich client project. It's a concept seeded by Todd Williams of Genuitec and others in the community to strip Eclipse bare of all things that are related to its being an IDE, while leaving behind enough of its framework to allow wider-ranging end-user applications to still be built. In a way it has already begun, because SWT, which was built to be the GUI toolkit for Eclipse, is being used by some developers in their end-user Java applications. The rich client idea, however, is to go even further and allow programmers who are trying to create business applications to benefit from core Eclipse concepts such as perspectives, viewers, editors, toolbars, menus, wizards, and workbench state. I believe there is a huge potential for this to affect desktop software development.
The programmers who created NetBeans, JBuilder, IntelliJ, Eclipse, or whatever your favorite IDE is are some of the most skilled developers in Javaland and have undoubtedly created a whole set of class libraries and solved application problems that are applicable to anyone building a functional Java desktop program. The best frameworks come not from design committees architecting grandiose solutions buried in specware, but instead are harvested from successful real-world applications. These programs have proven their mettle by solving specific problems and then becoming refactored so that when similar issues are encountered again, the programmers don't have to start from square one and can benefit from the previous efforts. They will reuse the best parts of the original concepts and code and, in turn, provide feedback into the framework so it grows organically, with only the fittest parts surviving.
Michael Tiemann from Red Hat gave a keynote at EclipseCon where he discussed Moore's Law and the industries where it had been successful, as well as lamented why similar productivity gains hadn't occurred with software. In areas where Moore's Law worked, one of the key ingredients was that the output of a process was able to push back into itself, thereby creating an exponential feedback loop; for computer performance, once the transistor was put onto semiconductor programs that could then be written to allow chip designers to design the next generation of hardware, which then helped to speed the design of systems to build the next set of chips, and so forth.
Anyone building a business application for an IT department is unlikely to just start every time with the basic JFC (or SWT) class libraries. Instead they'll create frameworks that deal with navigation, validation, customization, user security, and other areas of program-ming as it doesn't make commercial sense to reinvent them each time a new department wants something built. I know programmers who, when leaving a company, try to negotiate a deal where they can take their class libraries with them. They view these libraries as part of their value-add that allows them to be productive elsewhere, the same way a skilled craftsman has a favorite set of tools. Some companies even create special framework groups to support their development efforts, although this has its dangers.
Why not have people building line-of-business applications just start with a set of high-level frameworks, and what better place to harvest this than from developers who have created the best-of-breed IDE tools? A colleague of mine once said that the best framework doesn't solve users' problems, rather it allows them to spend more time solving their real issues. In other words, it lets them focus on building their business application instead of on view management or implementing a weak observer pattern.
I hope all of the IDE developers take up this challenge and start to farm their neat stuff back into rich client product offerings. Perhaps then we can begin to achieve Moore's Law for software productivity.
Published March 6, 2004 Reads 13,886
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Joe Winchester
Joe Winchester, Editor-in-Chief of Java Developer's Journal, was formerly JDJ's longtime Desktop Technologies Editor and is a software developer working on development tools for IBM in Hursley, UK.
![]() |
Ramón Jiménez 03/24/04 12:17:51 PM EST | |||
Thanks a lot, Joe. I totally agree with this perspective, indeed Grady Booch (in Object Solutions) warns that you never get frameworks right before their third version, something that in my limited experience seems to be true. Thank you very much! |
||||
![]() |
Joe Winchester 03/22/04 07:23:44 AM EST | |||
Ramon - For me the danger in the "special framework" group is that it becomes immersed in creating general purpose frameworks and tools to solve problems that aren''t directly required. The framework group can create something almost akin to a new 4GL with metadata definitions for the application, and it also can tie up the best programmers who see themselves as a buffer zone between the raw language and their users. The mistake is that the group ends up hiding too much of the language and just becomes an extra chain in the link of people to get work done. Rather than have a group of special people sit down and build the perfect framework, it''s better to build a good application and then when moving onto the second one harvest the common code (using refactoring) to get shared code. Kent Beck talks about frameworks growing rather than being built and this is why a framework should be created by the front line programmers working with the users, and not a disconnected group of teccies who wish they were rather working for a tools company, rather than an IT shop. |
||||
![]() |
Ramón Jiménez 03/17/04 12:01:59 PM EST | |||
Excellent article. I think we could argue the same about Web applications. In a best case scenario, you can invest obscene amounts of time in bringing together lots of low-level, technology-centric frameworks to somehow boost your productivity. But we are nowhere near of a high-level, line-of-business *standard* framework (I''d wish to be proved wrong! :)) A question for the author: what are the dangers you envise in having a company have its own special framework group? Many thanks in advance! |
||||
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?
















