Topics /
Programming Languages
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
Improving the usability of C libraries in Swift
There are many interesting, useful, and fun C libraries in the software ecosystem. While one could go and rewrite these libraries in Swift, usually there is no need, because Swift provides direct interoperability with C. With a little setup, you can directly use existing C libraries from your Swift code.
SBCL Fibers – Lightweight Cooperative Threads
A draft design document describing lightweight userland cooperative threads for SBCL.
Not Explicit
Oftentimes when I am conversing about the design of Rust with other users - as on RFCs or the internals forum - I witness a peculiar remark about “explicitness.” It usually goes something like this: I do not like Feature Design X because it is too implicit. Magic is okay in Other Language Y, but Rust is supposed to be…
You could have invented Parser Combinators
Computer Science, Machine Learning, Programming, Art, Mathematics, Philosophy, and Short Fiction
PyPy 2.6.0 released
PyPy 2.6.0 - Cameo Charm We’re pleased to announce PyPy 2.6.0, only two months after PyPy 2.5.1. We are particulary happy to update cf...
Racket-On-Chez Status
posted by Matthew Flatt with thanks to collaborators Kent Dybvig, Andy Keep, Gustavo Massaccesi, Sarah Spall, Sam Tobin-Hochstadt, and Jon Zeppieri It's been almost a year since we decided to try running Racket on Chez Scheme, and it has been almost six ...
Rust: Structuring and handling errors in 2020 (2020)
After working through “the book” on the Rust programming language and getting started with the first non-trivial, real-world application I found myself faced with a question I didn’t yet feel well-equipped to handle: “How should you structure error handling in a mature rust application?”
Dart 3.1 and a retrospective on functional style programming in Dart
Pattern matching and exhaustive switches come together to enable functional style data models that blend seamlessly with Dart’s…
New C++ features in GCC 12
Version 12 of GCC implements much of the recent C++ standard, allows a number of previously prohibited constructs, and fixes some problematic behaviors.
REPL Driven Design
If you follow me on facebook you know that I’ve been publishing daily CoronaVirus statistics. I generate these statistics using the daily updates in the Johns Hopkins github repository .
Writing your own C++ standard library from scratch
The C++ standard library (also know as the STL) is, without a doubt, an astounding piece of work. Its scope, performance and incredible back...
Java 21: First Release Candidate
This release is the Reference Implementation of version 21 of the Java SE Platform, as specified by JSR 396 in the Java Community Process.
Go Data Structures (2009)
When explaining Go to new programmers, I've found that it often helps to explain what Go values look like in memory, to build the right intuition about which operations are expensive and which are not. This post is about basic types, structs, arrays, and slices.
We used C++20 to eliminate a class of runtime bugs
C++20 is here and has been supported in MSVC since 16.11, but today's post is not about how you can use it, but rather how we used it to effectively
In Go, pointers (mostly) don't go with slices 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…
A Crash Course on ML Modules (2015)
I was having lunch with a couple of Haskell programmers the other day and the subject of the ML family came up. I’ve been writing a lot of ML lately and mentioned that I thought *ML was well worth learning for the average Haskeller. When pressed why the best answer I could come up with was “Well.. clean language, Oh!…
Red Hat ported OpenJDK to 64-bit ARM: A community history
Find out how Red Hat engineers and a community of open source enthusiasts created the standard OpenJDK implementation for AArch64.
Type inference
Type inference is a major feature of several programming languages, most notably languages from the ML family like Haskell. In this post I want to provide a brief overview of type inference, along with a simple Python implementation for a toy ML-like language.
Ruby 2.4.0-preview1 released
We are pleased to announce the release of Ruby 2.4.0-preview1.
Lessons learned from a successful Rust rewrite
I have written about my on-going rewrite-it-to-Rust effort at work: 1 , 2 , 3 . And now it's finished, meaning it's 100% Rust and 0% C++ - the public C API has not changed, just the implementation, one function at time until the end. Let's have a look back at what worked, what didn't, and what can be done about it.
A lowering strategy for control effects in Rust
The Rust language has incrementally grown a set of patterns to support control-flow effects including error handling, iteration, and asynchronous I/O. In The registers of Rust , boats lays out four aspects of this pattern shared by Rust’s three effects. Today these effects are typically used in isolation, or at most…
Lightstorm: Minimalistic Ruby Compiler
Some time ago I was talking about an ahead-of-time Ruby compiler. We started the project with certain goals and hypotheses in mind, and while the original compiler is at nearly 90% completion, there are still those other 90% that needs to be done.
Asynchronous Programming in Rust
Asynchronous programming in Rust continues to make exciting strides, including the upcoming stabilization of the futures API . But, while these core APIs make it possible to write async Rust code today, it's not easy: it's a far cry from the smoothness of synchronous code.
C++ Safety, in Context
Scope. To talk about C++’s current safety problems and solutions well, I need to include the context of the broad landscape of security and safety threats facing all software. I chair the ISO C++ s…