Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,708 posts.
Brian Harvey: Why SICP matters
In 2011, to celebrate the 150th anniversary of MIT, the Boston Globe made a list of the most important innovations developed there. They asked me to explain the importance of SICP, and this is what I sent them:
Clojure Concurrency Tutorial
In this tutorial, you'll learn 16 ways for doing concurrency in Clojure including how to start threads and how to communicate between them.
Why we need Lisp machines
A personal mind dump on operating systems
C will never stop you from making mistakes
Short answer: because we said so.
JavaScript is Not Web Assembly
Writing and Stuff from Isaac Z. Schlueter
Ruby's Creed
Every programming language has some fundamental idea(s) that drives its design and evolution. For Haskell that’s functional purity and state-of-the-art static typing, for Erlang that’s distributed programming and fault tolerance, for Clojure that’s simplicity and stability. What all these examples have in common is…
Some C habits I employ for the modern day
Despite it being the first “proper” programming language I learned—by reading K&R front-to-back no less—I don’t write C too terribly often nowadays. Playing resonite has gotten me into writing a load of C# for modding the game, and most of what I do day-to-day is automating the tedium on my computer, which gets…
Things that Idris improves things over Haskell
The 1.0.0 of Idris has been released just a few months back, just enough to start trying out the language and some of the possibilities dependent typing offers. But this post is not about dependent…
The CPython Bytecode Compiler Is Dumb
Due to sheer coincidence of several unrelated tasks converging on Python at work, I recently needed to brush up on my Python skills. So far for me, Python has been little more than a fancy extension language for BeautifulSoup , though I also used it to participate in the recent tradition of writing one’s own static…
Writing a website in Rust
I wanted to create a website for a personal project. This is usually the great opportunity to learn - no time pressure, no external requirements, etc. That meant I could choose the language I wanted to try out in anger (Rust) and take it for a spin. Here’s a short summary of the experience.
Go’s hidden pragmas
This is an article about compiler directives; or as they are commonly known, pragmas. It’s derived from a talk of a similar name that I gave last year at GopherChina in Shanghai.
A Quick Comparison of Nim vs. Rust
Arthur’s thoughts on coding, software engineering, and other interesting things.
Objectivist C
Although academic computer scientists have generally dismissed Objectivist-C, it has a zealous following among self-taught programmers and college sophomores.
Haskell's kind system: a primer
In this post we’ll explore Haskell’s kind system, the similarities between types and kinds, and show how these can be leveraged to write safer and more reusable code.
How to learn compilers: LLVM Edition
A collection of resources to start learning compilers (with a focus on LLVM)
Why Python Is Slow: Looking Under the Hood
When I teach courses on Python for scientific computing, I make this point very early in the course, and tell the students why: it boils down to Python being a dynamically typed, interpreted language, where values are stored not in dense buffers but in scattered objects. And then I talk about how to get around this by…
Breaking java.lang.String
Let's abuse a bug in java.lang.String
LLMs pose an interesting problem for DSL designers
The most exciting part of Programming Languages (PL) research for me has always been in Programming Language Design.
Syntax Design (2014)
A programming language gives us a way structure our thoughts . Each program, has a kind of internal structure, for example:
Advanced programming languages (2009)
Students often ask for a recommendation on what language they should learn next. If you're looking for a job in industry, my reply is to learn whatever is hot right now: C++, Java and C#--and probably Python, Ruby, PHP and Perl too.
Why Concatenative Programming Matters
Introduction There doesn’t seem to be a good tutorial out there for concatenative programming, so I figured I’d write one, inspired by t...
Why I still recommend Julia
Yuri Vishnevsky wrote that he no longer recommends Julia. This caused lengthy discussions at Hacker News, Reddit and the Julia forum. Yuri argues that Julia shouldn't be used in any context where corr...
The combined power of F# and C#
Where C# is the most dominant language in the .NET world, other languages are built on top of the Framework that deserves their respective place. F# is strong when it comes down to functional programming! In this blog post, we will leverage the power of F# and C# to showcase where both excel!
The Promise of Firefox OS
“But how is it going to beat Android or iOS?” That’s the reaction many people have when I tell them that I am working on Firefox OS, the new mobile operating system from Mozilla. It is a logical rea
Lisping at JPL Revisited
It has been over 20 years since I wrote " Lisping at JPL ", half memoir and half geeky screed (and all of it half-baked) about how an obscur...