Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,845 posts.
Django 1.2 final out on Monday
Posted by James Bennett on May 15, 2010
Tail Call Amputation
This is perhaps a slight digression; just an extended expression of pleasure about Clojure’s recur statement. It neatly squashes a bee I’ve had in my bonnet for some years now; if it’s wrong to loathe “tail recursion optimization” then I don’t want to be right.
Learn Emacs in Ten Years
Somebody emailed me the other day, asking about how to go about learning Emacs. This is my (edited and rearranged) reply.
Strings, bytes, runes and characters in Go
How strings work in Go, and how to use them.
Rewriting the Technical Interview (2020)
Update, November 2023: here are the full term rewrite and language macros which formed the seed of this story. These files include OO notation as well as the basic Algol syntax shown here. There is also a sketch of an object-oriented language with classes and inheritance, implemented as a Clojure macro. I do not…
Introducing the Go Playground
Announcing the Go Playground, https://play.golang.org/.
NoSQL, Heroku, and You
Why NoSQL Matters “NoSQL” is a label which encompasses a wave of innovation now happening in the database space. The NoSQL movement has sparked a whirlwind
What Is Zig's “Colorblind” Async/Await?
An introduction to Zig's curious concurrent programming API.
Results from the State of Clojure, Summer 2010 Survey
Great domain names provide SEO, branding, and a memorable experience for your users. Get a premium domain today.
Clojure Protocols can extend final Java classes (like java.lang.String)
Clojure is written in terms of abstractions. There are abstractions for sequences, collections, callability, etc. In addition, Clojure supplies many implementations of these abstractions. The abstractions are specified by host interfaces, and the implementations by host classes. While this was sufficient for…
Google App Inventor uses Scheme under the hood
Posted by Bill Magnuson, Hal Abelson, and Mark FriedmanWe recently announced our App Inventor for Android project on the Google Research Blog. Tha...
An argument against call/cc (2012)
Why a programming language should not offer a primitive to capture undelimited continuations (call/cc).
Peritext: A CRDT for Rich-Text Collaboration
Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and how to construct a CRDT for rich text.
An Illustrated guide to multi-core parallelism in Clojure
Here are my Clojure Conj slides, From Concurrency to Parallelism: an illustrated guide to multi-core parallelism in Clojure. The version of clojure.par I used isn’t publicly available yet, bu…
Rifle-Oriented Programming with Clojure
Any comparison of hot JVM languages is likely to note that “Clojure is not object-oriented.” This is true, but it may lead you to the wrong concl...
What colour are your bits? (2004)
As of Summer 2024, my article "What Colour are your bits?" has been online 20 years, and people are still linking to it as a benchmark. It's clear that people still care about intellectual property in general and copyright in particular, and the difference, if any, between id...
Paul Graham On Two Kinds of Programmers and Painters
In the world of painting there are some people who are just fabulously talented at drawing. They can sit down, these are like the kids who c...