Why OCaml GADTs matter for performance
When GADTs (Generalized Algebraic Data Types) landed in OCaml, I wasn’t particularly happy about it. I assumed that it was the kind of nonsense you get when ...
The latest blog posts to take off on Hacker News. 325 posts.
When GADTs (Generalized Algebraic Data Types) landed in OCaml, I wasn’t particularly happy about it. I assumed that it was the kind of nonsense you get when ...
“ Everything is an expression ” is an informal slogan of several programming languages, particularly those descended from the Lisp family. It is meant to contrast with languages that distinguish statements from expressions , such as Python, JavaScript, and C.
Asynchronous programming is everywhere – user interaction, network access, file I/O. Dart simplifies and enhances these scenarios with the...
We interview Russ Cox and Sameer Ajmani, two CS PhDs behind Google's development of the Go programming language.
Just so you know, x86 machine-code is now a "high-level" language. What instructions say, and what they do, are very different things. I m...
Source code can be found at: https://github.com/dyoo/brainfudge . The latest version of this document lives in http://hashcollision.org/brainfudge .
In 2001, my favorite programming language was Python. In 2008, my favorite programming language was Scheme. In 2014, my favorite programming language …
Longer answer: it depends on what you mean by "equivalent". Pointer arithmetic and array indexing are equivalent. In other aspects, pointers and arrays are different.
The first Go challenge is over. So by now, I can take my Erlang solution and write about how you would go around solving the challenge in…
It's likely no secret that I really dig Clojure . It's the first unityped language I've used since Objective-C in the early 90s that I really like. Yes, I still love Scala , but I think Clojure is pretty much the best designed computer language I've ever used... and maybe that's because Clojure is mostly "less is…
When I (George) started to write CIL I thought it was going to take two weeks. Exactly a year has passed since then and I am still fixing bugs in it. This gross underestimate was due to the fact that I thought parsing and making sense of C is simple. You probably think the same. What I did not expect was how many dark…
Over the past year, I've been rewriting large portions of the Middleman codebase to better reflect how I like to write code (as opposed to the silly version of me who did the original version 6 years ago). I've learned a lot since then, spent pretty much every day writing mostly Javascript and trying to find any…
I spent the last weekend working through the amazing guide for Make a Lisp , writing a Lisp interpreter in Nim. The final result just made it into the repository.
Handling Integers with Swift is not the easiest task. Especially when I need the generic function that can do some work on any kind of Integer. There are 11 Integer types that can be considered as Integers: * Int8 * UInt8 * Int16 * UInt16 * Int32 * UInt32 * Int64 * UInt64 * Int * UInt * Bit (I'll
Cross compilation is one of Go’s headline features. I’ve written about it a few times , and others have taken this work and built better tooling around it.
Creating a programming language is apparently all the rage these days, and it’s got me thinking about what I would really like to see in one. I’m starting to suspect the things I want are either impossible or mutually incompatible, so I’d better write them down and let smarter people tell me why I can’t have…
Between the coming release of ES6 and unrelenting competition for JIT performance, these are exciting times for JavaScript. But an area where JS still lags ...