I recently started working with a company that had very little in way of a standard development architecture. It is a large, decentralized organization that had consulting agencies make recommendations on eComm strategies, but no one in the company new how to follow through on them. They weren't/aren't stupid, just a big legacy shop trying to make it in a new world. Like a lot of other companies in this field, they are a big IBM shop. So, for no other reason then comfort, they chose to use VAJ 3.5 and WAS 3.5. I don't want to spark a WAS vs. BEA debate, I think that ping-pong game is going on in another thread, but I do have a question about IDEs.
I'm working to standardize our development architecture across this decentralized organization and one of the things to tackle is creating a standard development environment. This was my first exposure to VAJ. I spent time learning and using the tool and really did not like it for the following reasons
1. This is a subjective point, but the repository is not an intuitive way of dealing with Java files. I want to see the whole file and directory structure. From different conversations I think the repository is a love it or hate it issue.
2. The nature of the reposity makes dealing with Source Code Control difficult. I'd like to be able to automate my build process and have not been able to find a way to do this yet. Especially when building EJBs (more on this later).
3. VAJ ties to WAS. We upgrade to WAS 4.0 then we have to upgrade to VAJ 4.0.
4. You have to use IBM JDK 1.2.2.
5. J2EE developers have to learn how to become IBM J2EE developers. I've found it much easier to go between BEA and JBoss then between BEA and WAS.
There were some good points to WAS 3.5. The compile on save, WebSphere Test Environment and debugging capabilites are good.
Part of the dev arch environment is a standarization on the level of documentation an application needs. I played with Rose 2001, VAJ 3.5 and the varoselink. It was very cumbersome working between the two to model and build an application.
I spent some time over the summer performing the same series of tests with TogetherSoft Control Center. Then version 5.0 and now version 5.5. TCC addresses all of my concerns about VAJ/Rose and brought several new things to the table.
1. VAJ is vendor neutral and realizes on standards and customer feedback to drive new functionality.
2. My files and directories are back.
3. The modeling environment is write there. Also the modeling objects a logical links to the source code. Change the code and the UML changes.
4. TCC does not tie me to any particular Application Server. I built an Session Bean and deployed it to WAS 3.5, WL 4.51, WL 5.1, WL 6.0 without changing a line of code. Also, (I haven't tested this yet) TCC creates a command file of each step taken to build and deploy and application. I should be able to play back this file to help automate the build and deployment process.
5. JUnit integration
6. Hot deploy and remote debugging are there and work well. Remote debugging capabilities made available by the JVM spec are taken advantage off, even for WAS.
7. I'm not tied to an particular JVM.
8. TCC is a great learning tool for developers. It provides many GoF and J2EE pattern implementations along with documentation on how to use the pattern properly.
Now, in the same breath, VAJ after version 4.0 is suppose to address some of these concerns. The repository is gone. Projects will have CLASSPATHs again (unless I'm missing something now). I don't know if VAJ and WAS will still move hand in hand. Also, TCC doesn't come with a EJB container and Naming Service. It does ship with Tomcat though. For developers to build and test the Beans we'll need a WAS Runtime on their desktop. For WAS 4.0, this won't be a proplem. For WAS 3.5 it is more of an issue. From what I've been told from IBM, we'll have to purchase Websphere Studio to get a WAS runtime for development purposes.
The development environment is a fuzzy problem and I'm not trying to find a perfect solution. To people out there that have used these tools I'd ask for any pluses, minuses and suggestions.