Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Introducing MLFE: ML-Flavoured Erlang
What ML-Flavoured Erlang is a statically typed language with basic parametric polymorphism (generics) for the Erlang VM that I’ve been hacking …
Compiling Lisp to JavaScript in 350 Lines of Haskell
λm.me - Compiling Lisp to JavaScript from scratch in 350 LOC
Compiling a subset of Python syntax to x86-64 assembly for fun and zero profit
A toy (but working) compiler that turns Python syntax into x86-64 assembly using Python's built-in AST module.
Rails Has Turned into Java
I am a software engineer, Manager, and architect in Seattle, WA. Read my articles.
Why CoffeeScript Isn't the Answer
CoffeeScript is an open source project that provides a new syntax for JavaScript. I have to say that I have a lot of respect for CoffeeScript and it got a lot of things right. The “golden rule” of CoffeeScript is “It’s just JavaScript” . That means there is a straightforward equivalent to every line of CoffeeScript…
Shell Has a Forth-Like Quality
This post takes a short break from ASDL to expand on one of my Hacker News comments.
Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
At a recent Clojure Berlin Meetup , Veit Heller gave an interesting talk on Macros in Clojure. The meetup was very enjoyable, and the talk...
Implement a programming language from scratch
Implementing a programming language is an experience no programmer should go without; the process fosters a deep understanding of computation, and it's fun!
Fibers are the right solution to improve Ruby performance
The majority of performance improvements in modern processors are due to increased core count rather than increased instruction execution frequency. To maximise hardware utilization, applications need to use multiple processes and threads. Servers that process discrete requests are a good candidate for both…
Rust for Web
RESTful API in Rust, impressions
What would it take to add refinement types to Rust?
A few years ago, on a whim, I wrote YAIOUOM. YAOIOUM was a static analyzer for Rust that checked that the code was using units of measures correctly, e.g. a distance in meters is not a distance in centimeters, dividing meters by seconds gave you a value in m / s (aka m * s^-1). YAIOUOM was an example of a refinement…
Past, present, and future of Sorbet type syntax
A discussion of how Sorbet's type syntax came to be, the problems it solves, and how it could improve.
Things that make Go fast
Anthony Starks has remixed my original Google Present based slides using his fantastic Deck presentation tool. You can check out his remix over on his blog, mindchunk.blogspot.com.au/2014/06/remixing-with-deck .
K&R C (2014)
I was recently reading the C99 rationale (because why the fuck not) and I was intrigued by some comments that certain features were retired in C89, so I started wondering what other weird features …
Julia, I love you (2012)
Julia is a new language for scientific computing that is winning praise from a slew of very smart people, including Harlan Harris, Chris Fonnesbeck, Douglas Bates, Vince Buffalo and Shane Conway. As a language, it has lofty design goals, which, if attained, will make it noticeably superior to Matlab, R and Python for…
Functors, Applicatives, and Monads in Plain English
Functors, Applicatives, and Monads in Plain English - This is a no-bullshit zone
Haskell in Production: 12 Months Building ApiEngine
Web development in Haskell is efficient, contorting, rewarding, frustrating and elegant all at the same time. 12 Months building production quality Haskell has taught many lessons, and in this talk we will discuss the amazing, with the downright painful, and hope to provide a glimpse at what it is like building real…
Dependent Types for F#
F# DependentTypes
List out of Lambda
If you ignore the practical issues of computers like size, weight, cost, heat, and so on, what do you really need in a programming language? Let's play around with this question.
An alternative Haskell home page
The web site has since been through various iterations and changes, therefore I include some screenshots below for posterity (because my design is much more beautiful than what is now online ;-).
A brief introduction to OCaml
A couple of weeks ago I did an introductory presentation on OCaml at our local meetup groups @GotLambda . The material is in the form of one long interactive session, in a style similar to learnxinyminutes.com .
Teaching Programming Languages by Experimental and Adversarial Thinking
After we published this paper, Matthias Hauswirth kindly pointed out similarities between this work and the PL-detective , a body of work that is very closely related that we did not previously know. Less similar but also related---and entertainingly written up---is smeagol . Since we published the paper, we have…