By Peter Bell

Bottom Up Programming

I've come across this article by Paul Graham a number of times, but somehow never got round to blogging about it. It is a really good approach to architecting an application that will be easy to maintain . . .

The "it" I am talking about is bottom up programming where you grow your language to better fit your domain concepts (often using multiple layers). In ColdFusion this could be done using UDFs, Custom tags and/or CFCs providing an API or Domain Specific Language that is closer to your domain.

I'm sure you'll have found yourself doing a lot of what this article suggests, but sometimes it is nice to have a context to put your efforts within.

Comments
I like the term bottom-up programming. It's a lot like Dijkstra's observation that programmers tend to write the same number of lines of code per day, regardless of the programming language. Thus, the higher the level at which programmers can express themselves in a given domain, the more productive they are.

Question: I've been reading about your DSM and framework stuff. You're aiming to be able to produce web apps in hours instead of weeks. A web application itself is already a code generation tool, producing HTML. So why code-gen the code generator? Can a single codebase of back end not produce the variations needed?
# Posted By Ian Rae | 2/1/08 12:26 PM
The more layers, the more maintainable. It's like the difference between putting all of your code for big app into once script of having a colleciton of layers of APIs. Often you'll have multiple layers of generators, each stepping down the abstraction an appropriate amount and providing additional customization points.
# Posted By Peter Bell | 2/1/08 12:31 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.