I'd like to +1 the sentiment that we have too many layers and too many options for each layer.

I'll resist the temptation to try to list various layers and options -- there are just too many.

What I'd like to add to the discussion is the theory that there is a natural selection/evolutionary force that causes there creation of lots of layers and options.

Consider an open source product, say, Struts 1. To do its job, it had to perform multiple functions. I consider it primarily a controller, but it had view parts, data transfer parts, database pooling, etc.

In abstract terms, it performed functions W, X, Y, and Z. But it was *good* at function X -- the others were just needed to fit the pieces together.

Along comes another developer, who likes Struts 1. But he thinks function W could be revamped, so he creates a new product that performs function W (arguably) better than Struts 1. Assume it is popular, and the best practice, what-every-body-does is use Struts with the replacement W.

Then the same happens to function Z.

Then someone realizes that function W really could be split into functions R, S, and T. She creates a replacement that is really good at function T, but R and S aren't that good.

And the process repeats in a Darwinian pool of evolving goo.

I'm not the best historian, but isn't this is exactly what happened to Struts 1? It had tags (that got replaced with JSTL). It had database pooling that got replaced with container-managed persistence. It had actionforms that got replaced with POJOs. (Evolution is occasionally backward!)

This isn't a Struts problem directly. It is an open-source problem. Java seems worse because by its structure it encourages developing thin layers of objects that call objects that call objects.

In conclusion, the bad news is that we're in an evolutionary period. The good news is that we're in an evolutionary period.


Dave Newton wrote:
--- On Fri, 6/20/08, Antonio Petrelli <[EMAIL PROTECTED]> wrote:
IMHO it's the presence of too many layers of applications.

+1

The most productive environment I've worked in is Lisp (and Smalltalk, I 
guess). Config, code, HTML, everything was generated from Lisp. I had usable 
IDE assistance *everywhere*, including across layers.

I'm now playing games with annotations, even *more* games with code generation 
(both during build and runtime; codegen has always been one of my guilty 
pleasures), and ways of doing the development itself (literate programming with 
cross-language weaving) to reduce the amount of time I have to spend switching 
paradigms, but it's ultimately still in my face on *some* level, even when I 
don't have to think about it all the time.

The other big issue? The sheer number of options for essentially every single 
layer :(

Just my 2 eurocents

Yanno, with the current exchange rate...

Dave


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
Neil Erdwien, [EMAIL PROTECTED], 785-532-4905
Acting Associate Director / Web Technologies Manager
Computing and Telecommunications Services, Kansas State University

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to