Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
Inside cpyext: Why emulating CPython C API is so Hard
cpyext is PyPy's subsystem which provides a compatibility layer to compile and run CPython C extensions inside PyPy. Often people ask ...
Running JRuby on the Graal JIT
Hello, friends! Long time no blog!I'm still here hacking away on JRuby for the benefit of Rubyists everywhere, usually slogging through compatibility fixes and new Ruby features. However with the release of JRuby 9.2, we've caught up to Ruby 2.5 (the current release) and I'm spending a little time on performance.I…
Crystal 0.27.0 released
Crystal 0.27.0 has been released!
The Green Tea Garbage Collector
Go 1.25 includes a new experimental garbage collector, Green Tea.
500 Python Interpreters
As we approach the final release date for Python 3.13, I’ve seen an uptick in discussion regarding 3.13’s introduction of an optional GIL. While removing the GIL has been a long time coming for the average user (I’ve dreamt of this for nearly 20 years), there have actually been two concurrent efforts to improve…
Ruby 2.6.0-preview1 Released
We are pleased to announce the release of Ruby 2.6.0-preview1.
The Core of Rust
within Rust is a smaller language struggling to get out
Zig-style generics are not well-suited for most languages
A discussion of some of the downsides of Zig
Dylan: the harsh realities of the market
So, this is a little case study. I did everything for Dylan. And when I say everything, I mean everything . Here's my resumé: I got e...
Jane Street and the OCaml Compiler (2018) [video]
Jane Street is a quantitative trading firm and liquidity provider with a unique focus on technology and collaborative problem solving.
What Every C Programmer Should Know About Undefined Behavior #2/3
In Part 1 of our series, we discussed what undefined behavior is, and how it allows C and C++ compilers to produce higher performance applications than "safe" languages. This post talks about how "
Every language fixes something - a DiGraph - just for fun
Oh, and - added later - the original from PG is undated, but the "enhanced" version below it was on the C2 wiki in 2003/2004 and possibly earlier, so don't for one minute think it's supposed to be up-to-date, or refer to modern version of these languages.
My mental model of setf was wrong
Lisp lets programs define new setf forms for assignment. The most common example is from CLOS , where a class like this:
Such a Little Thing: The Semicolon in Rust
Look at a tiny syntax detail that shows up in current versions of rust that has profound implications on how the language deals with almost everything being an expression.
LuaJit 2.0 is out
LuaJIT is only made available as source code from a git repository. To access this repository, you need to install the git command for your operating system. Please refer to the git version control system documentation for details.
Haskelling My Python
Reimplementing Haskell lazy infinite lists using Python generators
Notes on Type Layouts and ABIs in Rust
Over the years I’ve found myself with a weird amount of knowledge about how types and ABIs in Rust work, and I wanted to write it all down in one place so that… it’s written down in one place. Much of this information can or should be found in the Rust Language Reference and the Rustonomicon .
What Template Haskell gets wrong and Racket gets right
Why are macros in Haskell terrible, but macros in Racket great? There are certainly many small problems with GHC’s Template Haskell support, but I would say that there is one fundamental design point which Racket got right and Haskell got wrong: Template Haskell does not sufficiently distinguish between compile-time…
Squeak 5 is out
From: Chris Muller, In the 17 months since Squeak 4.5 was released, a huge development effort took place to create the next generation virtual-machine for the Squeak / Pharo / Newspeak family of pr…
PyPy is the Future of Python
Currently the most common implementation of Python is known as CPython, and it’s the version of Python you get at python.org , probably 99.9% of Python developers are using it. However, I think over the next couple of years we’re going to see a move away from this towards PyPy, Python written in Python. This is going…
Crafting Interpreters: Calls and Functions
Any problem in computer science can be solved with another level of indirection. Except for the problem of too many layers of indirection.
Lambda Calculus Diagrams (2015)
The following table shows diagrams of identity, the booleans, some standard combinators, some Church numerals, the predecessor function on Church numerals, and Omega. term definition diagram alternative I/1 λx.x K/true λx.λy.x false/0 λx.λy.y S λx.λy.λz.(x z)(y z) Y λf.(λx.x x)(λx.f(x x)) 2 λf.λx.f(f x) 3 λf.λx.f(f(f…
My OTP 21 Highlights
The official home of the Erlang Programming Language
How we centralized and structured error handling in Golang
Handling errors in Go is simple and flexible – yet no structure! It’s supposed to be simple, right? Just return an error , wrapped with a message, and move on. Well, that simplicity quickly turns into chaotic as our codebase grows with more packages, more developers, and more “quick fixes” that stay there forever…