Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,707 posts.
Why I Don't Like Golang (2016)
When I first started programming in Go, my summary of it was, “The good things are great and the bad things are weird and I can live with them.” After another three years and a few large projects in Go, I no longer like the language and wouldn’t use it for a new project. Here are 10 reasons why, in no particular order.
C99 doesn't need function bodies, or 'VLAs are Turing complete'
The 1999 revision to the C programming language brought several interesting changes and additions to the standard. Among those are variable length arrays, or VLAs for short, which allow array types to have lengths that are determined at runtime. These can show up in different contexts, but for the purposes of this…
The Path to Rust
About six months ago, I started my first large-scale Rust-based project. I’d dabbled with the language in its early days, but back then it was a different beast, and not particularly approachable. I decided to try again, and I’m glad I did. Rust is quickly becoming my favorite language for all systems work (which is…
Why I never finish my Haskell programs
From the highly eclectic blog of Mark Dominus
When Rust hurts
Why I am not enjoying programming in Rust.
The Roots of Lisp
(I wrote this article to help myself understand exactly what McCarthy discovered. You don't need to know this stuff to program in Lisp, but it should be helpful to anyone who wants to understand the essence of Lisp � both in the sense of its origins and its semantic core. The fact that it has such a core is one of…
A look at Unison: a revolutionary programming language
Unison is a pure functional programming language that comes with a few revolutionary ideas. Seriously, it makes everything we’re used to, like long builds, dependency version conflicts, tests that run every single build even when nothing checked by them has changed, manual encoding and serialization of data, and lots…
Sick of Ruby, dynamic typing, side effects, and object-orientation (2014)
This has been a long time coming. I had meant to write this post around the New Year, before the wave of death of Ruby stuff and before DHH’s “ TDD is dead ” ruckus:
Why Common Lisp is now the best programming language
just a diary
QBE vs. LLVM
Both QBE and LLVM are compiler backends using an SSA representation. This document will explain why LLVM does not make QBE a redundant project. Obviously, everything following is biased, because written by me.
Surprising result while transpiling C to Go
Experimenting transpiling Uber h3 library with ccgo.
Impossible Java
My private corner for sharing thoughts about programming, computers and everything.
How many lines of C it takes to execute a + b in Python
Understand the mechanics of dynamic dispatch implementation in CPython
A Review of Perl 6
[ Update , Feb. 5, 2020: Perl 6 is now called Raku. I’ve updated the review title, but left the review body intact. ]
Ruby's Proposed STM
There’s a proposal to add Software Transactional Memory , or STM , to the Ruby programming language. This is part of a wider effort to add better support for concurrency and parallelism in Ruby, and in particular the idea of ractors . A concept has been proposed and implemented by Koichi Sasada.
Learning Haskell is no harder than learning any other programming language
It has still often been difficult to find answers to my questions. I think this is largely due to the fact that when discussing things with the average Haskell programmer, I feel like I have a fourth-grade education.
What .NET 10 GC changes mean for developers
.NET 10 GC tuning shows how stack allocations, DATAS, and region sizing cut allocations, improve latency, and reduce your cloud cost.
Rob Pike's simple C regex matcher in Go
Translating Rob Pike's simple and elegant C regex matcher to Go.
Why Go is doomed to succeed
Golang was explicitly engineered to streamline projects built by large groups of programmers with different skill levels, and there is no larger such group than the open source community.
The Rust calling convention we deserve
I will often say that the so-called “C ABI” is a very bad one, and a relatively unimaginative one when it comes to passing complicated types effectively. A lot of people ask me “ok, what would you use instead”, and I just point them to the Go register ABI , but it seems most people have trouble filling in the gaps of…
Go 1.24's go tool is one of the best additions to the ecosystem in years
Why I'm very excited about `go tool` landing in Go 1.24.
Python vs. Rust for Neural Networks
Comparing a simple neural network in Rust and Python
Compiling Rust to Web Assembly
So you are intrigued what WebAssembly is and want to try it? Since December 22 it’s possible to compile Rust to WASM. If you don’t know…
Learning Parser Combinators with Rust
This article teaches the fundamentals of parser combinators to people who are already Rust programmers. It assumes no other knowledge, and will explain everything that isn't directly related to Rust, as well as a few of the more unexpected aspects of using Rust for this purpose. It will not teach you Rust if you don't…