| By Ajit Sagar | Article Rating: |
|
| November 1, 2002 12:00 AM EST | Reads: |
21,122 |
When I first started programming, it was with a small company. Life was simple. I understood all the requirements, and knew all the aspects of the application and how to pull everything together. If I was working with a team of programmers, the projects were small enough that the team knew each other's code thoroughly. Mi code es su code. Software engineering was easy to follow; code and design walkthroughs involved everyone, and, given time, any person could pretty much handle the whole project on his or her own.
I moved on in my career and, in the last decade, as technology started to grow at a phenomenal rate, the process of "pulling it all together" became far more complex and had a lot more nuances than a single person or team could handle. Distributed computing, by its very definition, requires distributed components to work together as an integrated application. This introduces the need to independently test and deploy the components, to provide an appropriate level of abstraction, and then to test the application as a whole.
The J2EE platform's purpose in life is to facilitate the development and integration of distributed components. Sun provides the APIs and the framework. However, the actual tools for testing and deploying an application are provided by IDE tools vendors. Fortunately, J2EE IDEs have come a long way in offering features that support the design and testing as well as deployment of J2EE-based applications.
As distributed programming platforms have evolved over the last decade, so too have the design methodologies. About four years ago, you got the J2EE APIs (which were not yet "J2EE") from Sun, the J2EE implementation and container for distributed components from your app server vendor of choice, and the development environment from your favorite IDE. To coordinate between development, testing, and deployment, you had to manually make these different environments work together.
Over the past few years, several things have happened to make the development of J2EE applications both easier and harder. It's harder because the complexity of APIs has grown to an extent that the developers can concentrate on only a part of the big picture. The architect who designs the solution has the big picture in mind, but had to leave the details of subsystem design, testing, and deployment to the individual subsystem designers. Development of J2EE-based applications has become easier because the tools have become more integrated and alternative, less heavyweight methodologies have become very popular.
eXtreme programming has gained a lot of popularity in the J2EE universe overall because it offers a practical and efficient way to manage large or small projects without getting bogged down in an overly complex design and an unmaintainable development cycle. And XP has become very popular in the Java environment because it addresses the needs of distributed J2EE application development in a palatable way. IDE and app server vendors have added support for J2EE tools using XP as well as support that enables teams to develop software based on XP principles. The leading app server and IDE vendors typically include support for tools, such as Ant for building and deploying software and JUnit for testing, and editing support for refactoring. The XP principles apply well to a distributed development environment by reinforcing simple design and continuous integration, refactoring coding standards, and code sharing through pair programming. While these principles apply well to all projects, the supporting Java tools make the application of these principles pragmatic.
It would be nice to have a tool that enforces pair programming. Maybe that's coming soon. Speaking of eXtreme J2EE, there are a couple of good books I'd like to recommend on this subject: Java Tools for eXtreme Programming by Richard High-tower and Nicholas Lesiecki (Wiley), and Java Development with Ant by Erik Hatcher and Steve Loughran (Manning Publications).
Published November 1, 2002 Reads 21,122
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Ajit Sagar
Ajit Sagar is a principal architect with Infosys Technologies, Ltd., a global consulting and IT services company. Ajit has been working with Java since 1997, and has more than 15 years experience in the IT industry. During this tenure, he's been a programmer, lead architect, director of engineering, and product manager for companies from 15 to 25,000 people in size. Ajit has served as JDJ's J2EE editor, was the founding editor of XML Journal, and has been a frequent speaker at SYS-CON's Web Services Edge series of conferences, JavaOne, and international conference. He has published more than 125 articles.
![]() |
Jenn 11/12/02 05:20:00 PM EST | |||
- Patterns for Building High Performance Applications
- It's the Java vs. C++ Shootout Revisited!
- 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
- Patterns for Building High Performance Applications
- It's the Java vs. C++ Shootout Revisited!
- 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?





















