Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 427 posts.
Porting a Golang and Rust CLI tool to D
Programming, retrogaming, hacking and computer stuff.
ECMAScript 4: The Missing Version
In your build tools, you may have noticed that you have an ECMAScript 3 target, and 5 and up, but never a 4. Why is that?
Clojure: `every-pred` and `some-fn`
This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Ah clojure.core , it’s like an all you can eat hot-pot....
Query-Based Compiler Architectures
What a query-based compiler is and what they are good for.
Classification of the Principal Programming Paradigms (2009)
The chart classifies programming paradigms according to their kernel languages. Kernel languages are ordered according to the creative extension principle: a new concept is added when it cannot be encoded with only local transformations. Two languages that implement the same paradigm can nevertheless have very…
REBOL Oneliners
One-liners are like Haiku poetry. Not always practical, not always readable, they are fun to write. As with any art, some are better than others, but from time-to-time, a true gem pops up.
Why the Sorbet type checker is fast
This is the second in an indefinite series of posts about things that I think went well in the Sorbet project. The previous one covered our testing approach. Sorbet is fast. Numerous of our early users commented specifically on how fast it was, and how much they appreciated this speed. Our informal benchmarks on…
Programming R at native speed using Haskell (2015)
Software Innovation Lab
Programming language notation is a barrier to entry
Research in programming languages offers powerful tools, but our systems of notation stymie outsiders. Can we change our notational approach and broaden our audience—without compromising on c…
Using Lua as a Serialization Format
This is somewhat of a followup to my post on Lua integration from a few days ago.
Everything you need (and don't need) to know about PHP's type system
This is the absolute best guide you'll find in the internet about how php handles typing internally and in userland.
How to write documentation for a Rust crate
Blog of Guillaume Gomez (Guide on how to write documentation for a Rust crate)
Static Analysis
Nim is in an excellent position to “get married” with static analysis, and it doesn’t have to be based on some intermediate representation but can achieve a solution more similar to Spark.
Compiling a Lisp: Reader
Adding a reader to our Lisp compiler
Smalltalk-87
In late 1986 and early 1987 an ad hoc group of Smalltalk implementors got together to see if they could agree on a design for the next major version of Smalltalk, after Smalltalk-80. The intent was that what they agreed upon would feed into an IEEE standardization process. That process never got
Checked exceptions: Java’s biggest mistake (2014)
Checked exceptions have always been a controversial feature of the Java language.
Don't Panic! Better, Fewer, Syntax Errors for LR Parsers
Abstract Syntax errors are generally easy to fix for humans, but not for parsers in general nor LR parsers in particular. Traditional ‘panic mode’ error recovery, though easy to implement and applicable to any grammar, often leads to a cascading chain of errors that drown out the original. More advanced error recovery…
What If C++ Abandoned Backward Compatibility?
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
A Pythonista's Review of Haskell
A Python developer's honest review of Haskell: the type system, tooling, learning curve, and practical tradeoffs.
How the CPython compiler works
In the first post of the series we've looked at the CPython VM. We've learned that it works by executing a series of instructions called bytecode....
Dave Prosser's C Preprocessing Algorithm (2006)
For about five years I've been trying to implement a fully conforming C preprocessor for the front end of the CScout refactoring browser. I've found this to be a fiendishly difficult task. Although what I have written can correctly process million-line real-life projects, every once in a while I come across a…
Is Go Duck-Typed?
In programming languages, duck typing can be approximated as the application of the duck test to objects. Here we explore if go is duck typed.
Translation Units Considered Harmful?
area being the function you really care about it is defined first - after all, code reads from top to bottom.
Rust for JavaScript Developers – Pattern Matching and Enums
Part 4 covers pattern matching, destructuring, and enums
Types as axioms, or: playing god with static types
A common perspective is that types are restrictions . Static types restrict the set of values a variable may contain, capturing some subset of the space of “all possible values.” Under this worldview, a typechecker is sort of like an oracle, predicting which values will end up where when the program runs and making…
Does C++ still deserve a bad rap?
Traditionally C++ has been seen by many (and you know who you are) as just plain bad: the code is unreadably verbose, error messages are und...