Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Baking the Y Combinator from Scratch
EDIT: Part 2 is up! It's a pedagogical pet peeve of mine when technical concepts are simply listed in their fully developed state, with little in the way of motivation, derivation, or historical context. This, I think, is like publishing a cookbook filled with beautiful pictures of cakes, but
Set theory with types
It is known that mathematics is heavily reliant on set theory, but no one can agree on what set theory is. Many people today understand that we have a choice between set theory and type theory , but they don’t know what type theory is either. Many think that type theory refers to some sort of dependent type theory, as…
Macchiato: ClojureScript on the Server
Dmitri's blog about programming, Clojure, and software development
57 Small Programs that Crash Compilers
I noticed there are no MSVC examples in there — was it not a targeted compiler? If so, I’m curious as to why.
Fast high-level programming languages
Python and R are slow when they can’t rely on functionality or libraries backed by C/C++. They are inefficient not only for certain algorithm development but also for common tasks such as FASTQ parsing. Using these languages limits the reach of biologists. Sometimes you may have a brilliant idea but can’t deliver a…
Classes are a way of writing higher order functions
Joe and I recently kicked off a re-read of SICP . I can say that it is the most interesting textbook I have gone through. Imagine, you begin with just 4 or 5 constructs, and you end up building algebraic equation solvers, circuit simulators, and even logic programming languages. Because you start off with such few…
Rust’s worst feature
There are several aspects of Rust that I’m not particularly fond of but the one that takes the cake is core::io::BorrowedBuf which I despise with passion. It’s a nightly feature which puts in question my extreme emotions about it. On the other hand it means there’s time to stop it from getting stabilised and figure…
Thoughts On Lisp And Racket (2019)
I plan on writing about why I am interested in the Lisp family of languages. It will probably come out in stages.
Go Bloviations
This post was written sixteen months ago, when fish briefly explored Go with the intention of writing a new command line shell. ( fish abandoned Go after discovering that terminal programming is what makes shells so horrible, and term programming is least horrible in C.)
My love-hate relationship with LuaJIT (2015)
I love LuaJIT for its performance, but its complexity sometimes puts me off.
My views on NeoHaskell
A rundown and critique of the NeoHaskell project
A tail calling interpreter for Python (already landed in CPython)
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
Writing C for Curl
It is a somewhat common question to me: how do we write C in curl to make it safe and secure for billions of installations? Some precautions we take and decisions we make. There is no silver bullet, just guidelines. As I think you can see for yourself below they are also neither strange nor … Continue reading Writing…
Metaprogramming is less fun in D
Despite the speaker’s calm voice and the slides showing almost nothing but code in C++ (which isn’t what you’d normally expect from a keynote), Louis Dionne’...
Rare Greek Variables
I scrape Arxiv to find underused Greek variables which can add some diversity to math; the top 10 underused letters are ϰ, ς, υ, ϖ, Υ, Ξ, ι, ϱ, ϑ, & Π. Avoid overused letters like λ, and spice up your next paper with some memorable variables!
Modern C
This new edition has been the occasion to overhaul the presentation in many places, but its main purpose is the update to the new C standard, C23 . The goal was to publish this new edition of Modern C at the same time as the new C standard goes through the procedure of ISO publication. The closest approximation of the…
The Next Big Language
Dylan? C# 3? Perl 6? Does it have deterministic destructors, even as blocks like Python 2.5? Generics? A powerful macro system? Even as described it sounds like magic, but not a moment too soon.
Haskell is not category theory
What, why, who?
Unpacking Elixir: Syntax
Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in "a great legacy" and not as in "system you don't like anymore". Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elixir was designed to provide strong…
First impressions about Graal VM
Last week was the release of Oracle’s GraalVM. As stated on the website: GraalVM is a universal virtual machine for running applications written in JavaScript, Python 3, Ruby, R, JVM-based languages like Java, Scala, Kotlin, and LLVM-based languages such as C and C++. GraalVM removes the isolation between programming…
JRuby Creator's Short List of Key Missing JVM Features
I mused today on Twitter that there's just a few small things that the JVM/JDK need to become a truly awesome platform for all sorts of development. Since so many people asked for more details, I'm posting a quick list here. There's obviously other things, but these are the ones on my mind today.Cold…
Programming Algorithms in Lisp: Data Structures
The next several chapters will be describing the basic data structures that every programming language provides, their usage, and the most i...