| Recent Entries |
For years I've been asked why I wrote a particular piece of code a certain way, and I've often responded with "Oh, I've studied a lot of Lisp and it influenced the way I write code."
Now, after asking how to port some code to an upcoming release of chicken (A Scheme compiler, Scheme being a dialect of Lisp), I've been asked why I wrote a particular piece of code a certain way.
This is either a new low or a new high.
I never thought the lisp community would grow so quickly that the way they wrote code would perceptively change. I could have guessed I would like it better the way it was though. damn kids schemers.
|
i have a software tree that monolithically includes all of my software projects. if i need to move one project to another computer i tar up the whole rat's nest and move it over. since i work on too many things, this source tree is really large.
i do enjoy working in the small, so sometimes i work on a project outside of the main tree, not worrying too much if it is going to eventually integrate into the main branch.
because my main branch exists for a reason, when i don't use it i have to resolve all the problems it is designed to solve. often this reinforces why i have a main branch in the first place, but rarely i am fortunate enough to see some solution in a new light, and develop something completely new.
i spent way (way) too much of my time this weekend working out of tree, ironically on a lisp interpreter (simultaneously the quintessential weekend project *and* canonical waste of time). this is my third lisp interpreter, and i'm getting pretty damn good at writing them.
this project originated as a bootstrap program to replace certain tools in my tree, and it will eventually fulfill that role. since it is a bootstrap program, it needs to be extremely small. just enough code to bring up the larger system.
in finishing the interpreter this weekend, i had to solve a lot of the same problems i do in my larger lisp interpreter. but, many of the solutions i have in the larger interpreter are way too heavyweight for boostrap.
but, working out of tree with a new perspective, i was able to code up ways of solving these problems in the small, and many of them will eventually make it into the "real" interpreter.
many of these solutions were forehead slapping simple, but i couldn't see them working in a larger codebase. i've done something of this sort many times, but never realized the process at work until this weekend. time to throw away some code.
|
|
|
|
| Top of Page |
Powered by LiveJournal.com |