Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 383 posts.
My Future with Elixir: set-theoretic types
We announce and explore the possibilities for bringing set-theoretic types into Elixir.
Tom Duff on Duff's device (1988)
I normally do not read comp.lang.c, but Jim McKie told me that `` Duff's device '' had come up in comp.lang.c again. I have lost the version that was sent to netnews in May 1984, but I have reproduced below the note in which I originally proposed the device. (If anybody has a copy of the netnews version, I would…
PEP 634 – Structural Pattern Matching: Specification
This PEP provides the technical specification for the match statement. It replaces PEP 622, which is hereby split in three parts:
PEP 554 – Multiple Interpreters in the Stdlib
CPython has supported multiple interpreters in the same process (AKA “subinterpreters”) since version 1.5 (1997). The feature has been available via the C-API. [c-api] Multiple interpreters operate in relative isolation from one another, which facilit...
Using Pointers in SPARK
In this blog post, I will present one of the most interesting additions to the community 2019 version of SPARK: pointer support. One of the core…
PEP 3104 – Access to Names in Outer Scopes
In most languages that support nested scopes, code can refer to or rebind (assign to) any name in the nearest enclosing scope. Currently, Python code can refer to a name in any enclosing scope, but it can only rebind names in two scopes: the local scope...
Clojure - Deps and CLI Guide
In all the above scenarios you might want to use other Clojure and Java libraries (dependencies or 'deps'). These may be libraries you are writing locally, projects in git (e.g. on GitHub) or, commonly, libraries available in the Maven ecosystem and hosted by central repositories like Maven Central or Clojars.
Better Language Models and Their Implications
Stay up to speed on the rapid advancement of AI technology and the benefits it offers to humanity.
Using Go Modules
An introduction to the basic operations needed to get started with Go modules.
Go GC: Prioritizing low latency and simplicity
Go 1.5 is the first step toward a new low-latency future for the Go garbage collector.
Object Oriented Programming is Inherently Harmful
“ Object-oriented programming is an exceptionally bad idea which could only have originated in California. ” – Edsger Dijkstra
The Cost and Complexity of Cgo
Cgo is an important part of Go: It's your window to calling anything that anything that has C bindings. But while cgo works for us, it hasn’t come for free.
JEP 454: Foreign Function and Memory API
Introduce an API by which Java programs can interoperate with code and data outside of the Java runtime. By efficiently invoking foreign functions (i.e., code outside the JVM), and by safely accessing foreign memory (i.e., memory not managed by the JVM), the API enables Java programs to call native libraries and…
The Implementation of Functional Programming Languages
“The Implementation of Functional Languages” is a book about implementing functional programming languages using lazy graph reduction, and it divides into three parts. The first part describes how to translate a high-level functional language into an intermediate language, called the lambda calculus, incuding detailed…
Clojure - Getting Started
Clojure is a dynamic development environment where you interact with your program while you write it, growing and adding to it while it’s running. To work with Clojure you need an editor that supports evaluation in source files and structural editing (working with nested forms in addition to character editing).
PEP 289 – Generator Expressions
This PEP introduces generator expressions as a high performance, memory efficient generalization of list comprehensions PEP 202 and generators PEP 255.
PEP 557 – Data Classes
This PEP describes an addition to the standard library called Data Classes. Although they use a very different mechanism, Data Classes can be thought of as “mutable namedtuples with defaults”. Because Data Classes use normal class definition syntax, y...
Taking PHP Seriously
Slack uses PHP for most of its server-side application logic, which is an unusual choice these days. Why did we choose to build a new project in this language? Should you? Most programmers who have only casually used PHP know two things about it: that it is a bad language, which they would never use if…
Fixing for loops in Go 1.22
Go 1.21 shipped a preview of a change in Go 1.22 to make for loops less error-prone.
Go Concurrency Patterns: Pipelines and cancellation
How to use Go's concurrency to build data-processing pipelines.
Sealed Rust: A plan to bring Rust to safety critical software domains
Part 1 - The Pitch
Fighting spam with Haskell at Meta (2015)
Visit the post for more.
Modern JavaScript Explained for Dinosaurs
Learning modern JavaScript is tough if you haven’t been there since the beginning. The ecosystem is growing and changing so rapidly that…
Clojure Rationale (2008)
Customers and stakeholders have substantial investments in, and are comfortable with the performance, security and stability of, industry-standard platforms like the JVM. While Java developers may envy the succinctness, flexibility and productivity of dynamic languages, they have concerns about running on…