Our Java Stack: Introduction
It's amazing how things have changed since I entered the programming field back in 1993. In our first database project, my business partner at the time wrote a hierarchical set of index and flat files. Everytime I pulled up DOS Edit and fixed an indexing problem in the production database, he cringed and sometimes with good reason. The fixes often made the problem worse, not better. When the limitations of our first database caught up to us, we moved into real database territory by consulting the Programmer's Paradise catalog and finding CodeBase by Sequiter Software. Back then, before many software companies even had web sites, companies working in PC software often took that approach. There were several catalog sites selling 3rd party SDKs and APIs in addition to those available through the major operating system vendors. When you found what you needed, you ordered it, consulted the documentation, and wrote the code.
Now, the game is much different. Orphaned operating systems caused us to pull away from platform-specific code...orphaned SDKs/APIs caused us to pull away from commercial solutions. Our only gamble would be the survival of Sun and Java.
When we first made the leap to Java, we did not use any 3rd party tools. At the time, not many were available, and those that were available weren't on our radar. In our first Java web application, we used servlets to a fault making a huge, tangled mess of Java classes. In fact, that was before a lot of the servers on the market supported JSP so the servlets were full of out.println( "..." ) statements.
On the next project, we learned a bit from past mistakes and implemented what could best be described as Struts 0.01. We had never seen Struts, but we ended up creating an architecture with some similarities to Struts Actions but lacking the other pieces of Struts like tag libraries, configuration, and filters. As luck would have it, it has served us well and still runs today. However, it's impossible to look at the code without seeing its shortcomings.
Beyond the web application architecture, we were also reinventing the wheel in other areas. As a result, applicatons were taking too long to design, develop, test, and debug so we set out to find a set of tools to improve our productivity, increase application stability, and simplify code. This series of articles will review the tools we have chosen and discuss a few of the tools we rejected along the way.
Posted at 04:25PM Dec 13, 2006 by Jason Koeninger in Java | Comments[0]