New
The latest blog posts to take off on Hacker News. 5,635 posts.
Nim 2.0.0 RC2
The second release candidate (RC2) for Nim version 2.0 is ready for testing.
Visual programming with Elixir: Learning to write binary parsers (2019)
Visualize binary protocols by building parsers in Elixir.
APL: An Array Oriented Programming Language (2018)
APL was invented by Ken Iverson in the early 1960s as a notation for array oriented calculations. It was precise and useful enough, so it…
Making Python faster with Rust
Update: I gave a talk on this topic at P99 CONF 2023 and at PyCon IL 2024 (Hebrew). A while ago at $work, we had a performance issue with one of our core Python …
Type system of Fortnite's Verse language
Epic Games released an initial public implementation of the Verse programming language. Verse has been designed by some people who really know what they’re doing:
Rust Is a Scalable Language
In my last post about Zig and Rust, I mentioned that Rust is a scalable language. Let me expand on this a bit.
Interaction Nets, Combinators, and Calculus – HVM
Experiments, technology, and thoughts on life.
Rust's Golden Rule
I find myself thinking about a particular design principle of Rust today. I’m not sure I’ve ever seen it named specifically before, but it gets referred to from…
Zig and Rust
This post will be a bit all over the place. Several months ago, I wrote Hard Mode Rust, exploring an allocation-conscious style of programming. In the ensuing discussion, @jamii name-dropped TigerBeetle, a reliable, distributed, fast, and small database written in Zig in a similar style, and, well, I now find myself…
Zig Quirks
Little things you'll notice and need to learn when learning Zig
My experience crafting an interpreter with Rust (2021)
Last year I finally decided to learn some Rust. The official book by Steve Klabnik and Carol Nichols is excellent, but even after reading it and working on some small code exercises, I felt that I needed more to really understand the language. I wanted to work on a small project to get some hands-on experience, but…
Java 20 Is Out!
This release is the Reference Implementation of version 20 of the Java SE Platform, as specified by JSR 395 in the Java Community Process.
Why use Rust on the back end?
I don't care about avoiding GC or about maximum performance. I treat Rust as a high level language.
a[low:high:max] in Golang – A Rare Slice Trick
Full Slice Expressions in Golang — A Rare Slice Trick
TypeScript 5.0
Today we're excited to announce the release of TypeScript 5.0! This release brings many new features, while aiming to make TypeScript smaller, simpler,
GPT-4 Designed a Programming Language
When the machines make machines, we're in a new world.
Python-based compiler achieves orders-of-magnitude speedups
Codon is a new tool that compiles Python code to run it more efficiently and effectively while allowing for customization and adaptation to various domains.
Top-Down LR Parsing
This semester, I am teaching Compilers , and I'm quite happy with how I covered parsing this year. Specifically, I taught students to build a top-down LR parser and it seemed to go relatively well.
Emitting Safer Rust with C2Rust
In this post, we will discuss recent results from Immunant and Galois in extending C2Rust to emit memory-safe Rust in certain cases. With this work we aim to shift a meaningful part of the translation burden from the human to the machine. Up until now, C2Rust has only been able to translate C to unsafe Rust that is no…
Switching from C++ to Rust
Ferris meme Discussion on HackerNews and Lobsters. I have been writing C++ professionally for the last 4 years and 3 months ago I started a new job in Rust....
Overhead of Returning Optional Values in Java and Rust (2021)
Some programming languages like Java or Scala offer more than one way to express a concept of “lack of value”. Traditionally, a special null value is used to...
How Python virtual environments work
After needing to do a deep dive on the venv module (which I will explain later in this blog post as to why), I thought I would explain how virtual environments work to help demystify them. Why do virtual environments exist? Back in my the day, there was no concept
Getting Past “Ampersand-Driven Development” in Rust
A little mental model for ownership and borrowing
JavaScript and TypeScript features of the last 3 years
This article goes through almost all of the changes of the last 3 years (and some from earlier) in JavaScript / ECMAScript and TypeScript.
Single File Elixir Scripts
Experiment and debug with Elixir Scripts!
Code coverage for Go integration tests
Code coverage for integration tests, available in Go 1.20.
The Registers of Rust
It’s been nearly two and half years since I was an active contributor to the Rust project. There are some releases that I’ve been very excited about since then, and I’m heartened by Niko’s recent blog post emphasizing stability and polish over grand new projects. But I’ve also felt a certain apprehension at a lot of…
Come Break My Compiler
Don’t worry … it’s super easy 🙃