assembly would by definition be THE most flexible programming language for any given architecture because the limits of the language represent the limits of the architecture you're using.

To name a language in common modern usage like everyone else has - I'd have to say Ruby. It combines a clean, elegant syntax with a REAL object system a-la smalltalk and this concept of blocks from CLU resulting in a tool that purrs like a kitten but roars like a lion.

One readily demonstrable aspect of Ruby's flexibility is its dynamism. Any class can be modified/augmented at any time unless it has been explicitly locked (or frozen in Ruby parlance). So if for instance the suits in charge of the statistics app you're developing decide on a whim that "XML is GOOD" and move to web-based output, you can simply augment Object (The common ancestor of every Ruby object - Java uses the same convention like so:


class Object
  def to_s
    # Code to spew XML tags for each property
  end
end

And that's it, now whenever any of your objects are asked to return a string (e.g. they're being printed) they'll do the right thing.