Bottom-Up Programming

by Derek Sivers

Related link:

A nice thing to look forward to in re-writing from scratch: Bottom-Up Programming. I like the way he describes this:
  • the higher you build up the language, the less distance you will have to travel from the top down to it
  • changing the language to suit the problem
  • build the language up toward your program
  • As you're writing a program you may think "I wish [I] had such-and-such an operator." So you go and write it.
  • Language and program evolve together.
  • In the end your program will look as if the language had been designed for it. And when language and program fit one another well, you end up with code which is clear, small, and efficient.

Look at a great example in Ruby, here. Extending the core library. Beautiful. Another one of the things I love about Ruby.