On Language Design: Semicolons or no semicolons?

(This is a cross-post from the mobl blog) When should I use semicolons (;) and when shouldn’t I in mobl? It’s a common question. Here’s the reasoning behind requiring semicolons in one context and none in the other. In mobl, semicolons signify imperative execution, i.e. execution from top to bottom. For instance: var n =Continue reading “On Language Design: Semicolons or no semicolons?”

On Language Design: Magic Variables in Compojure

The Perl language is riddled with special variables. Consider the following example: open(FILE, “bla.txt”); while(<FILE>) { print; } In case you don’t speak Perl, this is equivalent to: open(FILE, “bla.txt”); while(<FILE>) { print $_; } Still unclear? Alright, once more: open(FILE, “bla.txt”); while($line = <FILE>) { print $line; } Perl is developed by linguist LarryContinue reading “On Language Design: Magic Variables in Compojure”

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”