Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 1,045 posts.
Chicken Scheme internals: the garbage collector
Hi, I'm Peter Bex, a Scheme and free software enthusiast from the Netherlands. See my user page on the CHICKEN wiki or my git server for some of my projects.
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.
How do I deal with memory leaks? (2022)
These are questions about C++ Style and Technique that people ask me often. If you have better questions or comments on the answers, feel free to email me (bs at cs dot tamu dot edu). Please remember that I can't spend all of my time improving my homepages.
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…
Don't Learn C the Wrong Way
Update : On Sep. 28, 2015, Zed Shaw wrote a rebuttal to this post. You can find the details here .
Condition Handling in the Lisp Language Family (2001)
This paper appears in Advances in Exception Handling Techniques , edited by A. Romanovsky, C. Dony, J.L. Knudsen, and A. Tripathi. This book, published in 2001, is part of Lecture Notes in Computer Science, Volume 2022 , published by Springer .
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).
Revisiting a 'smaller Rust'
A bit over a year ago, I wrote some notes on a “smaller Rust” - a higher level language that would take inspiration from some of Rust’s type system innovations, but would be simpler by virtue of targeting a domain with less stringent requirements for user control and performance. During my time of unemployment this…
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...
Functional options for friendly APIs
What follows is the text of my presentation, Functional options for friendly APIs that I gave at dotGo this year. It has been edited slightly for readability.
How to C in 2016
This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time.
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.
On Repl-Driven Programming
Once upon a time, someone with the handle “entha_saava” posted this question on Hacker News :
Go Concurrency Patterns: Pipelines and cancellation
How to use Go's concurrency to build data-processing pipelines.
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…
State of the Common Lisp Ecosystem
Personal website of Fernando Borretti.
Sealed Rust: A plan to bring Rust to safety critical software domains
Part 1 - The Pitch