If you ever tell someone you like Lisp and that Lisp is a more suitable language for the work you are doing most of the time you’ll get weird looks and comments like:
Some people say everything is an object. I used to too but these days I think everything is actually a function.
When I first heard about lazy evaluation I thought it was cool but not of much practical use, that is until I thought about it a bit harder.
So how does lazy evaluation make your code easier to read, write and maintain?
I’ll illustrate with a program I wrote to convert Javadoc comments to JSON. I started writing the…
How does one write software that can be extended?
I think many developer’s first instinct is to set up some form of inheritance hierarchy. Inheritance is a step in the right direction but it is very restrictive. The problem with inheritance is that relationships between your components and their extensions are rigidly defined at…