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”
Tag Archives: Dsl
Spoofax Talk
For the past month or two I’ve been working on [mobl](http://github.com/zefhemel/mobl), a [DSL for the mobile domain](https://zef.me/2693/lets-build-a-dsl). It is the first larger DSL to be developed completely using [Spoofax/IMP](http://strategoxt.org/Spoofax/) (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”
Using Screen Estate
One of the more interesting UI features that the iPad exposes is its use of screen orientation. A good example of this is in the e-mail application. In Portrait mode your screen is long and narrow, so you see one e-mail. This is convenient for reading longer pieces of text: However, when you’re more inContinue reading “Using Screen Estate”
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”
Let’s Build a DSL: Platform Research
Now that we decided on a domain and target platform of our DSL, it is time to explore our target platform. Although I have used HTML, CSS and Javascript for many years, I never looked that seriously into the possibilities of especially CSS and Javascript. To help me with that I’ve been reading a fewContinue reading “Let’s Build a DSL: Platform Research”
The Point of WebDSL
Jay asks in the comments: I don’t mean to be mean, because I really like your blog and I read it all the time… but could you just explain to me the point of WebDSL? I honestly don’t mean it in any kind of negative way, I’m just wondering why you’re dedicating your valuable timeContinue reading “The Point of WebDSL”
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”
Models are Programs
I hate the term modeling, it sounds so pretentious. Yuck. “Before we started to use models in our company, we wrote millions of lines of code, but now we just draw a picture and write some code in a few DSLs and all that stuff gets generated automatically for us!” — Model-Fanboys Inc. That’s great. That remindsContinue reading “Models are Programs”
When Scala DSLs Fail
The hot new contender in the space of interal DSLs (domain-specific languages as libraries) is Scala. Scala is, as is implied by its name, a language that is designed to scale from small one-off scripts to large enterprise applications. It is a statically typed language, and in many ways can be seen as a successorContinue reading “When Scala DSLs Fail”