Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 399 posts.
Functional Programming in Go with Generics
Functional programming is an increasing popular programming paradigm with many languages building or already supporting it. Go already supports some of these features such as first-class and higher order functions and enabling functional programming.
Revisiting Prechelt’s paper comparing Java, Lisp, C/C++ and scripting languages
In 1999, Lutz Prechelt published a seminal article on the COMMUNICATIONS OF THE ACM (October 1999/Vol. 42, No. 10) called Comparing Java vs. C/C++ Efficiency Differences to Interpersonal Differences , henceforth Java VS C , which seems to have later (March 2000) been expanded into a full paper, An empirical comparison…
Why Is JRuby Slow?
In this article, the author explores why JRuby, an alternative Ruby interpreter that runs on the Java Virtual Machine (JVM), is slower than other R...
Ten years without Elixir
A new standard for travel on Crete. The official digital gateway to the island's untamed soul. Experience the future of Greek tourism.
Debugging Lisp (2015)
This post is for all of the miscellaneous features that arent large enough to get their own individual posts. If you havent read all of them, here are the links to the previous posts on recompilation , inspection , class … Read the rest
Megatron-Turing NLG 530B, the World’s Largest Generative Language Model
MT-NLG has 3x the number of parameters compared to the existing largest model of this type and demonstrates unmatched accuracy in a broad set of natural language tasks.
Native Type Theory
Note: These pages make extensive use of the latest XHTML and CSS Standards . They ought to look great in any standards-compliant modern browser. Unfortunately, they will probably look horrible in older browsers, like Netscape 4.x and IE 4.x. Moreover, many posts use MathML, which is, currently only supported in…
Resurrecting Fortran
We have finished the first chapter on a long journey of resurrecting Fortran: forming an initial core community of developers and users with enough momentum around the new Fortran website and projects at fortran-lang.org . There is still have a long way to go to, but this was a necessary (although not sufficient)…
Erlang/OTP 24 Release Candidate 1
The official home of the Erlang Programming Language
Parser Combinators in Haskell
In this article, we will show you how to implement simple parser combinators from scratch and how to use the Megaparsec library to implement a parser for S-expressions.
Let's build a simple interpreter for APL, part 2 (2020)
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
A Tour of Safe Tracing GC Designs in Rust
I’ve been thinking about garbage collection in Rust for a long time, ever since I started working on Servo’s JS layer. I’ve designed a GC library, …
Async Cancellation
Sometimes we start things but decide midway through that we would prefer to rather not be doing them. That process is sometimes referred to as cancellation. Say we accidentally clicked "download" on a large file in the browser. We should have a way to tell the computer to stop downloading it.
Crystal 1.2.2 Is Released
We are releasing the second patch release of the 1.2 series.
Racket v8.2
_posted by John Clements_ Racket version 8.2 is now available from https://download.racket-lang.org. Racket CS improved the performance of large-integer arithmetic. Racket has improved support for layered and tethered installation. Racket ...
Rust 1.x seems to not always be backward compatible in practice
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…
Namedtuple in a Post-Dataclasses World
namedtuple has been around since forever, and over time, its convenience saw it used far outside its originally intended purpose. With dataclasses now covering part of those use cases, what should one use named tuples for? In this article, I address this question, and give a few examples from real code.
Writing and publishing a Python module in Rust
This post is a quick walkthrough of how I wrote a Python library, procmaps , in nothing but Rust. It uses PyO3 for the bindings and maturin to manage the build (as well as produce manylinux1 -compatible wheels).
Summary of C/C++ integer rules
This is my own collection of hard-earned knowledge about how integers work in C/C++, and how to use them carefully and correctly. In this article, I try to strike a balance between brevity (easing the reader) and completeness (providing absolute correctness and extensive detail).
Unix philosophy without left-pad, Part 2: Minimizing dependencies
In the previous post, I made a case for why programming languages should have a utility library that provides small-but-commonly-needed functions. Today I’m introducing a Raku package that I hope w…
Forth: Stack-Manipulation Operators
Stack-manipulation operators allow the Forth programmer to do arithmetic interactively or in code contained in Forth definitions (e.g., defined functions).
Data notation in Clojure
Homoiconicity (code as a data structure) is one of the pillars of the Clojure language. It gives the extensibility and flexibility to the language.
I got the GNU Modula-2 compiler working on OpenBSD
When it rains it pours. After making a splash with D , 1 I remembered that some time ago I began an attempt to bring the GNU Modula-2 compiler to OpenBSD . Because why not? Modula-2 is a language that exists and has compiler implementations. I guess my goal is to bring all the languages and compilers to OpenBSD. And…