The title of this post is inspired by the syntax of Lisp. This is my small tribute to that great programming language. Because lists are - as we all know - one of the most advanced data structures out there.
Add a little bit of prefix notation to the mix and quickly you realize: OOP considered harmful.
But let me start from the beginning.
Prof. Dr. Scheme
My job as a TA in Informatik I introduced me to Scheme for the first time. What can I say: It was skepticism on first sight; that absurd prefix notation and the ))))-orgies. Ouch!
The advantages of functional programming in general and Scheme in particular were not quite to me in the beginning. What fascinated me though was the uncompromising enthusiasm of Sperber and folks for this way of software development. I really wanted to understand why exactly they are so excited about it. Don’t wanna miss out on something :-)
After weeks of dealing with Scheme, I came across, among other things, a very illuminating lecture recording from 1986 about Lisp. Highly motivated and inspired by the elegance of the problem solutions presented there, I really wanted to do something with Scheme.
Design, one level more abstract
A very promising lecture title. Software architecture. Or SWA. A handful of more or less large software projects are to be worked on in Java. Starting with things like a calculator, the complexity increased quite quickly. The last project we finished was a minimal spreadsheet.
At the end it devloved into mad hacking which we wanted to avoid next time. The next project: a formula editor. Like MS Word or Openoffice have it.
With Matze’s new Extreme Programming philosophy, Fabian’s and Hansen’s complete integration and other everything-will-be-better-this-time-strategies, everything will be better this time.
That’s why I had a small prototype ready right after the first session.
Programming language used: Scheme! My first useful Scheme project.
As luck would have it…
… when I wrote this blog entry I realized that I still wanted to add a stylized frame/shadow to the screenshots I made. Take a closer look at the above pictures.
Well - The GIMP makes it possible. A little script written to do the work and that’s it.