Reactive Programming

For the past two days I’ve been looking into [reactive programming](http://en.wikipedia.org/wiki/Reactive_programming). Wikipedia defines it as follows: > Reactive programming is a programming paradigm oriented around data flows and the propagation of change. This means that it should be possible to express static or dynamic data flows with ease in the programming languages used, and thatContinue reading “Reactive Programming”

Javascript: the Scope Pitfall II

Hello, and welcome to the second part of [“Javascript: The Scope Pitfall”](https://zef.me/2843/javascript-the-scope-pitfall). Let’s get started, shall we? What does the following code print? ~~~~~~~~~var n = 0;function add() { var m = n + 1; print(m);}add();~~~~~~~~~ That was easy, right? The answer, of course is `1`, because `0 + 1 == 1`. Alright, a slight variation onContinue reading “Javascript: the Scope Pitfall II”

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](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”

Javascript: the new VBA

Somewhere at the end of the eighties, my dad started work at his [local university](http://www.rug.nl) where he became the [WordPerfect](http://en.wikipedia.org/wiki/WordPerfect) expert, which was the dominant word processor at the time. Beside acting as a helpdesk and laying out documents, he also spent a lot of time writing [WordPerfect macros](http://www.shkatz.com/macrotut/tofc.htm). WP’s macro language allowed you toContinue reading “Javascript: the new VBA”

Pubsubhub-frickin’-bub

[pubsubhubbub](http://code.google.com/p/pubsubhubbub/) — I’m not kidding — is an actual existing thing. Yeah, I too would have killed to be a fly on the wall when they decided to call it that, but there you go. So let’s dissect this piece of art of a name: * `pubsub`, i.e. pub/sub, i.e. [publish/subscribe](http://en.wikipedia.org/wiki/Publish/subscribe), which is a common pattern in, well, theContinue reading “Pubsubhub-frickin’-bub”

10 Things You Hadn’t Expected HTML/Javascript Would Do

About 14–15 years ago my uncle took me to the university at which he was studying at the time. He had something to show me. He sat me behind a computer in the computer room and started a program called “Netscape”. He typed in an internet address ending with `.au`. I saw my first websiteContinue reading “10 Things You Hadn’t Expected HTML/Javascript Would Do”

Javascript: OOP Style Performance

I have been watching parts of [Douglas Crockford’s talks on the history and future of Javascript](http://yuiblog.com/crockford/). In his third talk Douglas talks about functions. If you are somewhat familiar with Javascript you know that functions are, somewhat oddly, used to create new objects. The original “intended” way (which Douglas calls the _pseudo-classical_ way) of doingContinue reading “Javascript: OOP Style Performance”