## Static Dynamic Programming

From: "andrew cooke" <andrew@...>

Date: Tue, 16 Jan 2007 12:08:15 -0300 (CLST)

(not in the technical - overlapping subproblem - sense!)

I think we're seeing a real shift in how programs are being written - it
really feels as thought things are "coming together" to transform
"mainstream" (ie Java and the like) programming.

This seems to build on two things:
- untyped (or dynamically typed if you prefer) languages
- "academic" languages

I don't think those necessarily overlap (by the first I mean languages
like Python and Ruby), although the first has perhaps drive the popular
resurgence of the second.

But what's cool is how these are driving Java.  I'm not sure how direct
this is.  Sometimes the cause/effect relationship is obvious, like
generics - http://www.acooke.org/andrew/writing/compjava.html#generics -
or continuations - http://www.acooke.org/cute/HowToMakeP0.html - but I
think there's also an overall attitude to take things like reflection,
bytecodes and aspects, and see how far they can be pushed.

It feels a bit like when the penny dropped with C++ templates - suddenly
everyone saw that a whole pile of stuff was possible.  The same seems to
be happening with Java.

Maybe this is just a personal thing.  I was reflecting on how I wouldn't
have come up with the POJOworkflow idea -
http://www.acooke.org/cute/HowToMakeP0.html - a few years ago, but now it
seems "obvious", even though it needs reflection and bytecode manipulation
to work.

Anyway: good times.

Andrew