[Opensource] Maturing Framework market

Michael Rimov rimovm at centercomp.com
Tue Jul 29 00:41:41 PDT 2003


At 09:23 AM 7/28/2003 -0400, you wrote:
>Sandra, my only concern about a product like expresso it that it would try
>to do too much. For example althought it supports Struts, it also has its
>own MVC framework. Perhaps if there was an easier way to understand what
>components do what, interdependencies, and the like. I have used expresso
>very lightly and these concerns would probably dissapear as you become a
>mature user of the product. However, my original thought about doing too
>much is still valid. Frameworks should frame specific problems, not try to
>address all (or a significant part of)

Alex,

You're right in that Expresso is a huge framework.  Because of that the 
learning curve can be rather steep.  However, by continuing to reduce 
component interdependencies within Expresso, we have the unique capability 
of providing much of what a developer needs to build a web app, while still 
giving them the flexibility to swap out Expresso components for other ones 
available.

While certain parts of Expresso [such as Download Controller and supporting 
files] could be moved out into a separate module. (And probably will), the 
first goal of Expresso is to provide a primary solution to the 
problem-space of 1 app server, 1 database server, and a concurrency base of 
probably up to, say a few hundred users at once.  No matter how 
'clusterable' we go, no matter how 'enterprise-ready' we go, that was 
Expresso's first job, and it continues to do well in that area.

But Expresso's assertions are that nearly every web app has certain 
needs.  And we try to provide at least basic implementations for the 
majority of those needs as I defined in the above problem space.

I would say the inability to understand who needs what in Expresso is 
primarily from documentation that has not made it clear.  I have been 
mentoring one developer with the partial goal of having him write down what 
I'm teaching him into an Expresso tutorial of some sort.  So, I'm still 
working on that part.  As Raul has mentioned, the documentation has 
definitely been growing in the last year, and will continue to do so.

So is a heavyweight architectural framework worthwhile?  I believe 
yes.  Many others will disagree.  Even if you do a light-weight framework, 
you're still going to have nearly the same learning curve since you'd first 
need (for example) to learn Struts, then PoolMan, then JDBC, then JSTL, 
then Quartz (job scheduling), then implement Security based off of your app 
server, then implement Registration and Login from scratch, caching, SQL 
injection protection, etc, etc, etc.  In the mindset of providing a series 
of services that are useful, I don't think I've implemented an application 
that didn't really use at least 1/2 of the Expresso code base.  In my mind, 
heavyweight has made a serious case.

So, in essence, each of the smaller "frameworks" is like a specialty shop 
and Expresso is the supermarket of frameworks.  Both have their advantages 
and disadvantages.  I certainly won't advocate Expresso as the "...end of 
all trials and tribulations in the Java programming world", (1 MikeRimov 
3:16) ;)

Thank you very much for your input, I appreciate you guys lurking on the 
list piping up.  I think that I still haven't addressed your comment 
however so let me back up:

By refactoring Expresso into series of components that are easier to "take 
it or leave it"... I believe we then will get the ability that you need of 
keeping things more focused in the core development, yet still allowing you 
to utilize the richness of the Expresso development environment.

Do you think that the basic design idea like that would get Expresso into a 
more palateable framework like you have mentioned?

                                                 -Mike





More information about the Opensource mailing list