New
The latest blog posts to take off on Hacker News. 5,636 posts.
Java Is Underhyped
The perspective of an ignorant computer science undergrad
PHP in 2021
A look back and forward on PHP
Why Rust strings seem hard
Lately I’ve been seeing lots of anecdotes from people trying to get into Rust who get really hung up on strings (&str, String, and their relationship). Beyond Rust’s usual challenges around ownership, there can be an added layer of frustration because strings are so easy in the great majority of languages. You just…
Logica, a novel open-source logic programming language
We present Logica, a novel open source Logic Programming language.
Rust is for Professionals
A professional programmer delivers value through the authoring and maintaining of software that solves problems. (There are other important ways for professional programmers to deliver value but this post is about programming.)
Gitlet.js – Git implemented in 1k lines of JavaScript (2015)
I wrote Gitlet to show how Git works under the covers. I wrote it to be readable. I commented the code heavily.
Mugo, a toy compiler for a subset of Go that can compile itself
Mugo is a single-pass compiler for a tiny subset of the Go programming language -- just enough to compile itself.
What was the point of [ “x$var” = “xval” ]?
In shell scripting you sometimes come across comparisons where each value is prefixed with "x". Here are some examples from GitHub:
Ink 1.0 – Open-source scripting language for interactive narrative
Independent developer of narrative games and interactive stories.
All C++20 core language features with examples
Introduction
Lisp as an alternative to Java (2000)
It turns out my hopes were answered. First, Prechelt published another article that covers Tcl, Python, Perl, and Rexx. Also, Ron Garret (nee Erann Gat) did a follow-up study in which he asked programmers to write Prechelt's test program in Lisp. His results show that the resulting Lisp programs ran faster on average…
Parser Combinators in Elixir
Learn what parser combinators are, what they are made of, and how to make your own CSV parser using NimbleParsec, a parser combinator library written in Elixir.
Closer to finding what became of Moses Schönfinkel, inventor of combinators
In a follow-up to his first article about Moses Schönfinkel, Stephen Wolfram looks for the whereabouts of Schönfinkel after 1924 through his family history.
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…
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).
Signed Char Lotte
“signed char lotte” is a computer program written by Brian Westley and the winner of the “Best Layout” award in the 1990 International Obfuscated C Code Contest. The cleverness of the text is staggering. Superficially it reads as an epistolary exchange between two (possibly former) lovers, Charlotte and Charlie. At…
C# 9 top-level programs and target-typed expressions
Discover the new features in C# 9: top-level statements and target-typed new and conditional expressions. These features make C# less verbose and can be used in everyday programs.
Golang: Know Your 'Nil'
In Golang, nil is an interesting value. You may be familiar with Go’s philosophy of making the “zero value” meaningful.
Nil in Go is typed in theory and sort of untyped 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…
Compiling a Lisp to x86_64 (2020)
Tiger got to hunt, Bird got to fly; Lisper got to sit and wonder, (Y (Y Y))? Tiger got to sleep, Bird got to land; Lisper got to tell himself he understand. -- Kurt Vonnegut, modified by Darius Bacon
Down the Golang Nil Rabbit Hole
Edit 2021-03-30: Jeremy Mikkola wrote about some closely related topics back in 2017. Edit 2021-03-31: Chris Siebenmann wrote a response to this post that explains exactly how interface values that are nil are typed. It’s more complicated than I thought! I’m not sure I have another Rust & Postgres blog post in me…
Hello, HPy
Welcome to the shiny new HPy blog! HPy has been around for a while now. The initial discussion started during EuroPython 2019, in the good old times when we could still go to conferences and have real
A “Better C” Benchmark
An unusual benchmark for programming languages, designed to replace C. Unlike many other benchmarks, this one measures developer productivity and performance.
Julia 1.6 Highlights
Some highlights of the Julia 1.6 release.