Topics /

Programming Languages

The most popular blog posts about programming languages on Hacker News. 3,709 posts.

Any year
3211

Crafting Interpreters: Strings

“Ah? A small aversion to menial labor?” The doctor cocked an eyebrow. “Understandable, but misplaced. One should treasure those hum-drum tasks that keep the body occupied but leave the mind and heart unfettered.”

3218

The Joy of The Joy of Clojure Closure

It’s has been an absolute pleasure 2 working with Chouser 3 and our army of Manning 4 editors and proofreaders. I would also like to thank Christophe Grand for his excellent 5 technical review. Additionally, I would like to thank Steve Yegge for writing the foreword and providing insightful feedback 6 that I believe…

3220

Lambda Calculus and Lisp, part 1

The first of a series of envisioned blog posts on lambda calculus, and Lisp. It’s unclear exactly where to start: there is a whole heap of interesting issues, both theoretical and in terms of concrete implementations, which tangle and interconnect. A particular application of lambda calculus is a very salient…

3221

Shipping Const Generics in 2020

It’s hard to believe that its been more than 3 years since I opened RFC 2000 , which defined the const generics for Rust. At the same time, reading the RFC thread, there’s also been a huge amount of change in this area: for one thing, at the time the RFC was written, const fns weren’t stable, and consts weren’t even…

3222

The Power of Lifetimes

The execution of a program unfolds over some interval of time. The lifetime of every temporary resource (e.g., variable or object) is the time span between that resource’s “creation” and “destruction”. This lifetime is wholly contained within the typically-longer lifetime of the program.

3224

The Expression Problem and its solutions (2016)

The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…

3226

Even in Go, concurrency is still not easy

You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…

3230

Latches in C++20

Latches and barriers are coordination types that enable some threads to wait until a counter becomes zero. You can use a std::latch only once, but you can use a std::barrier more than once. Today, I have a closer look at latches.

3237

Graham’s Guide to Learning Scala

From The Archives: This article is one of the all-time most popular posts from my previous blog Graham Hacking Scala. I thought it worth updating and re-printing it here. It’s a pretty widely-accepted view that, as a programmer, learning new … Continue reading →