views:

224

answers:

5

So.... we have a much better tool kit of design advice these days....

Design patterns have been around for years Agile TDD/Refactoring processes have helped hone pragmatic OO skills Domain Driven Design offers great advice on understanding a problem space Polygot programming allows OO / functional / Dynamic allows appropriate ways of solving different kinds of problems Reflection / Aspects have allowed much simpler composability Frameworks have evolved slowly to be very powerful

Where's the edge of how to design software now? What's up and coming?

A: 

Sometimes I think that there are people that would rather talk about designing things as opposed to actually designing (and implementing!) things.

Bernard
+3  A: 

In which direction? Different things are important to different people. For my money, though, it's object-capability design, as seen in E, Google Caja, Joe-E, and as described in this Google techtalk.

Basically, the object-capability model is about developing secure software via techniques derived from good object-oriented design, refined to provide security guarantees that are flexible and easy to reason about.

Allen
A: 

I'm curious whether software factories will become mainstream? They have potential...

DSLs seem to be more and more popular.

Keith Nicholas
A: 

I think Composite Oriented Programming as implemented in Qi4J is interesting.

binil
+2  A: 

Complex Event Processing (CEP) / Event Stream Processing (ESP)

Steven A. Lowe
Two underrated technologies, IMO. Very underrated.
Thomas Owens