Clojure vs. Scala
Last week, someone posted a question on the Clojure group asking for a comparison between Clojure and Scala. Since my most popular blog pos...
PyPy.js: First Steps
I've been spending a lot of time in JavaScript land lately. It's not totally unexpected – when I first applied for a job with Mozilla, I was warned only semi-jokingly that "they hire all the best Python programmers and then force them to write JavaScript". I've no deep love or hate for it as a language, but JavaScript…
Write Yourself a Haskell in Lisp
For me, the best way to understand something is usually to implement it myself. So when I first started getting serious about Haskell, I implemented (in Common Lisp) a simple lazy functional programming language that used graph rewriting for the interpretation. Then, years later, I mentioned this implementation in a…
Things Java Programmers can learn from Clojure
I was trained in Java at University. The OOP matrix was firmly implanted in my thinking. I wanted to share some things that I have learned from Clojure that were certainly possible in Java but never became fundamental to my programming practice.
Big Programming, Small Programming – Glow, the language
Programming is complicated. Different programs have different abstraction levels, domains, platforms, longevity, team sizes, etc ad infinitum. There …
Bytecode
What is the most commonly used bytecode language in the world? Java (JVM Bytecode)? .NET (CLI)? Flash (AVM1/AVM2)? Nope. There’s a few that you use every day, simply by turning on your computer, or tablet, or even phone. You don’t even have to start an application or visit a webpage.
Destructuring Assignment in ECMAScript 6
I have seen this question come up a few times, and unfortunately, people usually don't find an answer, give up, and don't test their source maps. However, testing source maps isn't too hard if you are using Node.js and the mozilla/source-map library. If you aren't using Node.js and the mozilla/source-map library, you…
Clojure's core.typed vs Haskell
I compare code between typed clojure and Haskell implementations of project euler solutions to examine the differences and similarities.
Logic Programming is Underrated
Mark Engelberg wrote a very interesting post titled Logic Programming is Overrated . I take issue with a quite a few points made in that post and I would like to address a couple of them here.
C and C++ Aren't Future Proof
My hope would be option 1 for application code (as opposed to the “systems code” that you have there): fewer and fewer people use these languages to write application code. Moreover, I think that’s probably happening to some extent.
Clojure from the ground up: Macros
In Chapter 1 , I asserted that the grammar of Lisp is uniform: every expression is a list, beginning with a verb, and followed by some arguments. Evaluation proceeds from left to right, and every element of the list must be evaluated before evaluating the list itself. Yet we just saw, at the end of Sequences , an…
Clojure from the Ground Up, Part 2: Basic Types
We’ve learned the basics of Clojure’s syntax and evaluation model . Now we’ll take a tour of the basic nouns in the language.
Announcing pqR: A faster version of R
pqR — a “pretty quick” version of R — is now available to be downloaded, built, and installed on Linux/Unix systems. This version of R is based on R-2.15.0, but with many performance im…
Writing HTTP Middleware in Go
In the context of web development, "middleware" usually stands for "a part of an application that wraps the original application, adding additional functionality". It's a concept that usually seems to be somewhat underappreciated, but I think middleware is great.