Code Generation and Vendor Lock-In

When you build a code generator you have two basic options: 1. Generate code to be read, complemented and possibly modified by humans2. Generate code purely as a convenient intermediate step toward bytecode/machine code compilation The first approach seems to be the most common. It is the most pragmatic option. “Hey, I keep writing theContinue reading “Code Generation and Vendor Lock-In”

Spoofax Talk

For the past month or two I’ve been working on [mobl](, a [DSL for the mobile domain]( It is the first larger DSL to be developed completely using [Spoofax/IMP]( (site is down at the moment, due to a power outage at the TU Delft). Spoofax is our new tool for developing domain-specific languages complete withContinue reading “Spoofax Talk”

Task Switching and Open Development on the Apple iPad

In case you missed it, Apple launched the iPad yesterday. Essentially it’s a beautiful looking giant iPod Touch running the iPhone/iPod OS, slightly adapted to take better advantage of the bigger 10″ screen. It’s available at a remarkably (for Apply, and the hardware you get) low price starting at $499. Not only does it lookContinue reading “Task Switching and Open Development on the Apple iPad”

On Asynchronous Programming

MSDN: Asynchronous operations are typically used to perform tasks that might take a long time to complete, such as opening large files, connecting to remote computers, or querying a database. An asynchronous operation executes in a thread separate from the main application thread. When an application calls methods to perform an operation asynchronously, the applicationContinue reading “On Asynchronous Programming”

On Language Design: My Problem With ClojureQL

Update: Since this post, ClojureQL has been completely redesigned, my criticism in this post no longer applies. You can find more information about the new ClojureQL on its new website. Every programming language comes with a certain syntax, a certain feel for what feels like native use of that syntax, and the semantics of theContinue reading “On Language Design: My Problem With ClojureQL”