Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,708 posts.
Why many developers still prefer Objective-C to Swift
Lack of ABI stability, slow compile times, poor Xcode support, and more hold Swift back
Using unwrap() in Rust is okay
One day before Rust 1.0 was released, I published a blog post covering the fundamentals of error handling . A particularly important but small section buried in the middle of the article is named “ unwrapping isn’t evil ”. That section briefly described that, broadly speaking, using unwrap() is okay if it’s in…
Key differences between Python 2.7.x and Python 3.x (2014)
Many beginning Python users are wondering with which version of Python they should start. My answer to this question is usually something along the lines…
F# is gaining independence from .NET
F# is a language that will make you sleep better
Great Works in Programming Languages (2004)
In September, 2004, I posted a query to the Types list asking people to name the five most important papers ever written in the area of programming languages. This page collects the responses I received. (A few are missing because I am still tracking down bibliographic information.)
Why Async Rust?
Async/await syntax in Rust was initially released to much fanfare and excitement. To quote Hacker News at the time:
Ezno: a new TypeScript compiler
Introducing Ezno and the current state of the project.
Painting in Clojure
Learning Clojure by building a digital Jackson Pollock. This article and the source code backing it can be found on GitHub . Below is an example of what we will be building, running the code found in this page.
Why I Switched from Python to Clojure (2016)
I spent some more time with Python and started to realize that I needed something more. Here's a brief list of the reasons why I switched to Clojure.
Austral: A systems language with linear types and capabilities
Introducing a new programming language.
Rust vs. C++: Fine-grained Performance
If Rust is to take on work previously reserved to C++, we need to know how well it does what C++ does best. What’s fast, what’s slow? What’s harder to do, what’s easier? I wouldn’t know how to look up answers for those questions, but I can write programs.
Problems once solved by a metaclass can be solved by __init_subclass__
David Beazley on Twitter said:
Constraints in Go
Freedom is nothing without constraints, and Go’s generics gives us a powerful way to build polymorphic types and functions constrained by type sets . Let’s geek out.
Lua for Elixir
Execute sandboxed Lua code on the BEAM VM using Luerl
Adding row polymorphism to Damas-Hindley-Milner
Intro to HM
Adding C-style for loops to Python (2022)
Thousands of cam girls live right now from Colombia, the US, Europe and Asia. Watch free with no signup, and see when each model is usually online.
The Erlang Rationale
It's been a very long time since the last post. So there have come up questions about the Erlang Rationale. I wrote this over 10 years ag...
I hate LaTeX, I love LaTeX
Everyone who knows me IRL (and, I suppose, who follows me online for long enough), knows that I have a… special relationship with LaTeX. I think it has something to do with its obscurity, when it wasn’t specifically made to be obtuse, and then being so good at what it does — which is typeset documents. It doesn’t help…
Public static void main(String[] args) is dead
Holy fucking shit did this suck 1 . There is a comments section below. Give your eulogy for that piece of shit sorcerous incantation there or wherever else.
Are unsound type systems wrong?
This is an essay I wrote early-2016. After battling with soundness vs. usability in Typed Clojure for many years, I was starting to reconsider the “obviously wrong” approach of baking unsoundness into the type system from the get-go. I look at some historical examples of intentional unsoundness in type systems, and…
A perfectable programming language
At a party, Sydney Von Arx asked if I could name 40 programming languages. Yeah, that's the Bay for you. Racket, Agda, Clean, Elm, TypeScript, sh, ASP, Verilog, JavaScript, Scheme, Rust, Nim, INTERCAL, sed, Isabelle, Visual Basic, zsh, AlokScript, Coq, Idris, Hack, Prolog, Whitespace, PureScript, Go, Odin, Haskell…