Top posts

Every blog post that took off on Hacker News, ranked by the votes of its best submission. 5,635 posts.

Programming Languages
Any year
1501

How I Start: Nim

Nim is a young and exciting imperative programming language that is nearing its 1.0 release. My main motivation for using Nim is its performance / productivity ratio and the joy of programming in Nim. In this guide I’m going to show you how I start a Nim project.

1502

Dijkstra on Haskell and Java (2001)

In 2001, Edsger W. Dijkstra wrote a letter to the Budget Council of The University of Texas. A PDF is available here , I’ve typed it up so that everyone can read it. Sadly, the curriculum was changed to Java . Relatedly, the algorithmic language Scheme was replaced by Python in MIT’s The Structure and Interpretation…

1503

Why Rust?

I've been a programmer for 20+ years, and few things excite me as much as Rust. My background is mostly in C++, though I have also worked in Python and Lua, and dabbled in many more languages. I started writing Rust around 2014, and since 2018 I've been writing Rust full time. In my spare time I've developed a popular…

1515

Cider 1.0

You can’t really know where you are going until you know where you have been. – Maya Angelou CIDER started its life as an effort to replace a hacked version of SLIME1 with a proper environment for Clojure development on Emacs. Many of you probably don’t remember those days, but initially almost everyone was using a…

1516

C’s Biggest Mistake (2009)

C is arguably the world’s most successful programming language. Its success has, of course, endlessly tempted people to improve upon it. Thus, C is probably the patriarch of the longest list of languages. Notable among these are C++, the D programming language, and most recently, Go. There are endless discussion…

1517

Go generics are not bad

When programming, we often need to write 'generic' functions where the exact data type is not important. For example, you might want to write a simple function that sums up numbers. Go lacked this notion until recently, but it was recently added (as of version 1.18). So I took it out for a spin. In … Continue reading…

1523

Codebase Refactoring with Go

Go should add the ability to create alternate equivalent names for types, in order to enable gradual code repair during codebase refactoring. This article explains the need for that ability and the implications of not having it for today’s large Go codebases. This article also examines some potential solutions…