Who We Are
In July 2004, there were almost 2700 subscribers to STRUTS-USER (including the digest version). It's the largest user mailing list at Jakarta, exceeding the TOMCAT-USER list of about 2400 subscribers. In addition to the regular subscribers, an unknown number of developers read the lists through newsfeed mirrors and through several list archives.
According to recently released statistics, Struts downloads range around 15,000 a month.
Project Management Committee Members
- Craig R. McClanahan (craigmcc at apache.org)
- Ted Husted (husted at apache.org)
- Rob Leland (rleland at apache.org)
- Cedric Dumoulin (cedric.dumoulin at lifl.fr)
- Martin Cooper, Vice President and Chair (martinc at apache.org)
- Arron Bates (arron at apache.org)
- James Holmes (jholmes at apache.org)
- David M. Karr (dmkarr at apache.org)
- David Graham (dgraham at apache.org)
- James Mitchell (jmitchell at apache.org)
- Steve Raeburn (sraeburn at apache.org)
- Don Brown (mrdon at apache.org)
- Joe Germuska (germuska at apache.org)
- Niall Pemberton (niallp at apache.org)
- Eddie Bush (ekbush at apache.org)
- James Turner (turner at blackbear.com)
- Hubert Rabago (hrabago at apache.org)
- David Geary (dgeary at apache.org)
- Luis Arias
- Pierre Delilse
- Michael Schachter
- Vincent Massol
- David Winterfeldt
- Oleg Alexeev
More About Us
Craig R. McClanahan -- PMC Member
I've been involved with servlet and JSP technology since around 1998. It started out that I needed a way to build some web applications for several projects, and liked Java a lot better than the alternatives. I also liked the price tag of open source software, and started using Apache JServ -- later, getting involved in the project (like many people, I was whining about the twelve months it took to get from version 0.9 to version 1.0, and my son said "Dad, you know Java -- go help them finish it!" -- so I did :-).
For quite a while, I was participating a lot the JSP-INTEREST and SERVLET-INTEREST mailing lists , especially the topic of good architectures for web applications. I was disgusted with the hash that many beginners created when they used (or abused) scriptlets in JSP pages, and built (for my former employer) a pretty comprehensive framework that could considered ("Struts 0.01 without the custom tags"). It was proprietary code, but I was able to describe the concepts, and there started to a feeling the lists that this "Model 2" thing was pretty cool -- but there were no good examples to look at, so it was mostly hand waving types of discussions.
Over the same time period, I got involved as an individual contributor in the Java Community Process , and joined the expert group that defined the servlet 2.2 and JSP 1.1 specs. Sun was impressed enough to offer me a job as the technical lead the team within Sun (currently five other individuals) that works Tomcat -- the architecture for Catalina, which is the servlet container part of Tomcat 4.0, is also mine -- so I am in the really nice position of getting paid to work open source software :-). And, participate the expert groups for Servlet 2.3 and JSP 1.2. And, speak at various conferences, including ApacheCon and JavaOne. And, talk to groups within Sun about using Struts and JSP/servlet technology. And ... (there's some really interesting things being considered for the future).
The original design of what came to Struts has been in my head for a long time, since those interesting mailing list discussions, but the first version of the actual code was written my laptop a Memorial Day weekend vacation trip (end of May, 2000) to the Oregon coast -- in between watching the surf and having the house shaken by a windstorm at night. Since then, it has gathered attention and popularity as we approach our first official release, and it delights me to see my "baby" grow up so well :-). Of course, it is no longer just me -- there have been incredible numbers of good ideas from all over, and a peek at the TODO list for 1.1 says that even more good stuff is coming in the future.
One motivation factor was Jason Hunter's article about the Problems with JSP. Jason and I get along fine, even though we have different preferences about presentation technologies. Besides being the author of a very popular book about servlets, with a second edition coming soon, Jason is also the representative for the Apache Software Foundation the Executive Committee of the Java Community Process.
Personally, I live in Portland, Oregon (even though my team at Sun is mostly in Cupertino, CA -- staying here was part of the job deal :-). I like to support Oregon sports teams (Oregon State Beavers, Oregon Ducks, Portland Trailblazers) and work cool software.
I figured out I was getting pretty old when I realized that 2000 was the 25th year I had been paid to work in some aspect of software development :-). I've got a son who is a full-time software developer (primarily in PHP so far, but I'm going to corrupt him with Java eventually :-), and a daughter in college. I'll happily let the other committers speak for themselves.
Mike Schachter -- Emeritus Committer
I'm currently a student of computer science at Drexel University in Philadelphia, PA. I've been working at HP Middleware, formerly Bluestone Software for 3 years programming in Java and recently J2EE technologies. I'm a full time worker from September until April and a student and part time worker from April until August. In my spare time I've been known to run monkey-knife fights in a shady south philly warehouse. Err... I mean... nothing.
Ted Husted -- PMC Member
Ted Husted is a developer, author, and mentor. He is a Member of the Apache Software Foundation and Struts Project Management Committee. Ted's books include JUnit in Action, Struts in Action, and Professional JSP Site Design. He has consulted with teams throughout the United States, including CitiGroup, Nationwide Insurance, and PepsiCo. Ted is currently working with the Oklahoma State Department of Environmental Services to improve their permitting system.
Cedric Dumoulin -- PMC Member
As a dreamer / researcher I have thought a lot about a framework like Struts. But, as a lazy developer I have first checked what already exists, and I have found Struts. Struts goals fulfilled nearly all I needed for my (now old) portal project, except the capability to reuse and assemble easily pieces of pages or components. So, I have proposed the Components framework. This framework can seen as a superset of the Templates tag library contributed by David Geary, and contains lot of interesting features.
From a professional point of view, I have a Ph.D. in computer science. I have worked for 3 years in the R&D department of a worldwide company developing Internet banking solutions. I am now a researcher at a university, and work European research projects. My main research interest is WWW, Distributed Systems and Object Oriented Design. When developing code, I always try to first propose reusable pieces of code.
Martin Cooper -- PMC Chair
Early in the year 2000, I was asked, by my employer at that time, to investigate the best way to develop a new web-based application for the administration and management of an existing product. After exploring a number of technologies, I settled on Java, along with servlets and JSP, as the way to go. Then I started looking for methodologies and "best practices", since others must surely have been down that path before me.
In addition to rummaging around on the web, I subscribed to the SERVLET-INTEREST and JSP-INTEREST mailing lists, along with several others, and monitored the discussions for a while. It was clear that others were seeking the same answers as I was, and it was also clear that many people were building their applications in truly horrible ways.
At some point -- I don't recall when, exactly -- the concept of "Model 1" versus "Model 2" applications came up, and there was a great deal of discussion around that. Model 2 seemed very much like A Good Thing to me, and I paid it close attention.
Then, in May of 2000, I saw a message from Craig McClanahan about a new framework called Struts that was designed to ease the process of building Model 2 applications, and provide solutions for some of the important issues at the same time. I hopped on over to the web site and took a look around. This was exactly what I had been looking for.
My first postings to the Struts mailing list were, of course, questions to help me understand how to do things and why Struts is the way it is. Over time, I became more involved in both the user and developer communities, started submitting bug reports, patches and change requests, and eventually became a committer. Not long after that, I volunteered to take on the release process, and became the release manager for Struts 1.0.1 and beyond. Little did I know what I was letting myself in for!
A large majority of the people who contribute to Apache projects are volunteers who are not paid for their contributions. Like most of those volunteers, I also have a "day job" to put bread on the table. Currently, I am a UI Architect at Informatica, where I work on the architecture, design and implementation of web applications. Working with, and on, Struts has provided me with an excellent perspective with which to do that!
David Winterfeldt -- Emeritus Committer
As I worked web based projects I started looking for something that would really help save time during development. I ran across Struts in the Summer of 2000 and decided it was a good solution for web development. As I used Struts it really helped to remove a lot of the repetitive work, but validation still seemed very repetitive. I had an idea to create validation rules in an xml file and have them easily integrated with Struts. It started out simple and continued to develop over time. The validation project was eventually incorporated into Struts and the core was moved to Jakarta Commons. I'm happy to see Struts continue to grow and develop.
I currently am employed at Forbes.com. I occasionally get to do some internal projects using Struts. The last interesting project was a publishing system using Message Driven EJBs in JBoss and Struts was used to display the status of each publishing process.
Rob Leland -- PMC Member
I have gone from Unix -to- Windows -to- Unix based development about ever 6 years now. When moving to Windows I was amazed at how primitive the OS was compared to Unix. While developing for Win32 I had the pleasure of discovering Delphi and developed many GUI/databases, telephony, Internet enabled applications. I remain impressed with its design. Delphi, always enabled development of a simple elegant solution, much like the language itself. I was convinced after 10 years of development with C/C++ that it was a kinder gentler language.
Then in July 2000 I decided to move into Java, and Web development. This is after using the Internet since 1985 and occasionally teaching classes about it. I was hired as a consultant to take over a JSP based application. I realized it had been written with the equivalent of "goto's"(Model 1) and had to be redesigned. I searched for a better way to design the code and by late August I had found Struts. It is also a simple elegant solution.
To date I have mainly served to pitch in where needed. I continue to amazed at the Struts committers' generous contributions of time, insight, and good will. I feel fortunate to part of the struts team.
David Graham -- PMC Member
I, like many others, discovered Struts when contemplating writing my own MVC Java framework for the web. Struts had everything I needed and more so I scrapped plans for my own and joined the mailing lists. After playing with it for several months I started submitting documentation and a few source patches. I'm excited about helping Struts evolve and am continually amazed by the framework and the community surrounding it.
James Mitchell -- PMC Member
James has been so busy answering users questions and adding test cases that he hasn't taken the time to brag about himself. I thought that I would add a place marker for him until and if he does decide to --blow his own horn-- ! -Rob :-D !
James Turner -- Committer
I discovered Struts somewhat by accident. In 2001 I began writing a book for SAMS on JSP web development (MySQL and JSP Web Development), and as part of it, I decided to write a chapter on Struts in the advanced section. In the process of learning enough about Struts to write about it, I realized that it could simplify some of the projects that I was working on for clients.
After a half a year of working with Struts, I was asked by SAMS to write another book, this time concentrating on Struts specifically. That book, co-authored with a former co-worker named Kevin Bedell, became Struts Kick Start.
In the process of writing that book, I began to realize that there were things I could do to contribute to Struts beyond writing about it. One thing in particular was to clean up and add some functionality to the Commons Validator project, which eventually led to me release-managing (with a lot of help!) the Commons Validator 1.0 release.
More generally, I've been a software developer for over 22 years, starting with work as a Research Specialist at the MIT AI Lab. I spent nearly a decade working in LISP, before moving on to C/Unix, a stint managing the Web Site for the Christian Science Monitor, and finally Java based e-Commerce development, which has kept me busy for the last five years.
In addition to the two books mentioned above, I also write for a number of publications, including WIRED and the aforementioned Christian Science Monitor. You can get a look at my portfolio here. I'm also working on a third book with a bunch of other folks for O'Reilly, which will cover Apache Axis. I also edit the OpenSolaris.org site for Sun.
Eddie Bush -- Committer
My first experiences with Java made me wince. The language was young-ish still and growing by leaps and bounds all the time. To me, it seemed unintelligent to invest any significant intellectual resources in learning it because I perceived it as such a "moving target". Of course, that has changed.
I'd been looking for a way to really do heavy-duty processing of web requests that was higher-level than CGI. In particular, I was on a quest to find somethiong that did not involve using Microsoft (tm) technologies. A friend of mine started chatting up the idea of Java servlets and JSP pages. I didn't really like the idea of using Java because of my previously formed opinion, but, having a great deal of respect for my friend's opinion, I set out on an exursion to delve into the world of Java-driven dynamic web page generation.
The language (and myself) had matured considerably by this time, and I found my previous inhibitions were no longer well founded. However, as much as I liked the technology, I was dissatisfied. There just had to be a better way! I loved the concept of having a controller servlet, but, lacking experience in building externally-configurable Java "thingies", I was hard-coding a lot, and, after a point, that started to really rub me wrong. At this point, I started buying books and really "studying" the technology more seriously.
I honestly don't recall where I stumbled onto Struts, but I do recall having toyed with a number of different frameworks - none of which I really recall now. I quickly fell in love with Struts -- partially because it was an Apache project, and partially because it was evident to me that the project had a really great user-base.
As time rocked along, I found myself becoming more deeply involved in the project. I studied the source and learned a great deal about architecting configurable Java "thingies", and learned a fantastic amount about actually using the framework.
In time, I got comfortable enough with how Struts was structured that I began submitting patches - mostly documentation, which Ted Husted "massaged" and applied. I enjoyed the feeling of gratification I got from helping to make Struts better, even if minorly.
My last patch submitted as a non-committer was for ActionServlet. This was back when Struts 1.1 was working toward GA release. It was the first patch I hadn't had applied within a few days of submission and I grew impatient. Modules did not work properly without it and they did with it! "How can they not apply that patch when it's so critical to Struts?" I thought to myself.
Well, to keep this book from becoming a novel, I started a campaign to have the patch applied which resulted in my gaining committer status and applying the patch myself! I should note that Steve Ditlinger and myself collaborated on the patch. I submitted a version, he made some suggestions and submitted an altered patch, and then we, collectively, decided to make a couple of other modifications, which I applied just before committing the patch.
Niall Pemberton -- PMC Member
I've worked as a developer since 1988 using various technologies/platforms. In the late nineties I kept meaning to learn java but never found the time until 2000. I bought a couple of books (Java in 30 Days and a Certification Study Guide), passed the Sun certification exam and got my first java job.
Early in 2001 I was investigating writing the first web app for the company I was working for and came across Struts - just before the 1.0 beta was released. After a while I came off the user list because of the volume of traffic and just monitored the developers list. Late in 2003 I migrated to Struts 1.1, re-joined the user list and started submitting a few patches. Was invited to become a Struts Committer in May 2004 and PMC member in September 2004.