Topics /

Programming Languages

The most popular blog posts about programming languages on Hacker News. 264 posts.

2023
181

Writing a bare-metal RISC-V application in D

This post will show you how to use D to write a bare-metal “Hello world” program that targets the RISC-V QEMU simulator. In a future blog post ( now available ) we’ll build on this to target actual hardware: the VisionFive 2 SBC. See blog-code for the final code from this post. For a more complex example, see…

183

Why Static Languages Suffer from Complexity (2022)

People in the programming language design community strive to make their languages more expressive, with a strong type system, mainly to increase ergonomics by avoiding code duplication in final software; however, the more expressive their languages become, the more abruptly duplication penetrates the language itself.

184

INTERCAL: Practically impossible

A very good friend of mine has been experimenting with trying to coax Chat-GPT4 to successfully do basic coding tasks. So have a lot of people these days, of course. In an idle moment, though, my friend submitted the following query:

185

Tree-Structured Concurrency

For a while now I've been trying to find a good way to explain what structured concurrency is, and how it applies to Rust. I've come up with zingers such as: "Structured concurrency is structured programming as applied to concurrent control-flow primitives" . But that requires me to start explaining what structured…

187

My mental model of Clojure transducers

I’ve been programming in Clojure for a long time, but I haven’t been using transducers much. I learned to mechanically transform (into [] (map f coll)) to (into [] (map f) coll) for a slight performance gain, but not much beyond that. Recently, however, I’ve found myself refactoring transducers-based code at work…

188

Turbo 8 is dropping TypeScript

By all accounts, TypeScript has been a big success for Microsoft. I've seen loads of people sparkle with joy from dousing JavaScript with explicit types that can be checked by a compiler. But I've never been a fan. Not after giving it five minutes, not after giving it five years. So it's with great pleasure that I can…

190

Writing Linux Modules in Ada (2016)

In the following series of blog posts I will document my attempts to write Linux modules using the Ada language. In part 1, I will demonstrate how to write in Ada and build a simple "hello world" Linux kernel module. Additionally, I will introduce a basic customized Ada runtime to support our "hello world" module…

192

Modular Errors in Rust

It is thankfully common wisdom nowadays that documentation must be placed as near as possible to the code it documents, and should be fine-grained to a minimal unit of describability (the thing being documented). The practice provides numerous benefits to the codebase and project as a whole:

194

Was BASIC that horrible or better?

Everything was fine until BASIC entered the picture. Edsger Dijkstra in a hallucination of 2023’s AI Simplicity is the ultimate sophistication. Leonardo Da Vinci It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally…

195

Let's Build a Compiler (1988)

This series of articles is a tutorial on the theory and practice of developing language parsers and compilers. Before we are finished, we will have covered every aspect of compiler construction, designed a new programming language, and built a working compiler.

196

Common Lisp and Music Composition

Once upon a time, there were many music composition software packages, mostly written in Common LISP. To name a few I know, Common Music, Symbolic Composer (not related to the Symbolics Lisp Machine). Common Music is still available in source code but I doubt if anyone is still able to setup that. Symbolic Composer…

204

Rust for Professionals

This is a short introduction to Rust, intended for developers that already know another language. In the examples, Rust is compared with TypeScript, JavaScript or Java, sometimes with C++ or Kotlin.

206

RISC-V Business: Testing StarFive's VisionFive 2 SBC

It's risky business fighting Intel, AMD, and Arm, and that's exactly what Star Five is trying to do with this: The chip on this new single board computer could be the start of a computing revolution—at least that's what some people think! The VisionFive 2 has a JH7110 SoC on it, sporting a new Instruction Set…

209

Iterating on Testing in Rust

With the release of rust 1.70, there was some surprise and frustration that unstable test features now require nightly , like all other unstable features in Rust. One of the features most affected is --format json which has been in limbo for 5 years . This drew attention to a feeling I've had: the testing story in…