Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

Inheritance still doesn’t make any sense

Some ideas based on feedback to the Why inheritance never made any sense: Feedback: Subtypes are necessary The only one of these that is practically workable is behaviour inheritance <=> subtype inheritance: I’m sorry that you were exposed to Java … Continue reading

Posted in OOP | Leave a comment

Subatomic Chocolate

This started out as a toot thread, but “threaded tooting is tedious for everybody involved” so here’s the single post that thread should have been. The “Electron vs. native” debate doesn’t make much sense. I feel like I’ve been here … Continue reading

Posted in UI | Leave a comment

What’s better than semver?

Many software libraries are released with version “numbers” that follow a scheme called Semantic Versioning. A semantic version is three numbers separated by dots, of the form x.y.z, where: if x is zero, all bets are off. Otherwise; z increments … Continue reading

Posted in software-engineering | 4 Comments

What Lenin taught me about software movements

In What is to be done?: Burning Questions of our Movement, Lenin lists four roles who contribute to fomenting revolution – the theoreticians, the propagandists, the agitators, and the organisers: The theoreticians write research works on tariff policy, with the … Continue reading

Posted in whatevs | Leave a comment

Why inheritance never made any sense

There are three different types of inheritance going on. Ontological inheritance is about specialisation: this thing is a specific variety of that thing (a football is a sphere and it has this radius) Abstract data type inheritance is about substitution: … Continue reading

Posted in OOP | Tagged | 21 Comments

In defense of `id`

Something you can’t see about my dotSwift talk on OOP in FP in Swift is that to make the conference more interesting while the AV was set up for the next speaker, Daniel Steinberg invited me over to a side … Continue reading

Posted in code-level, OOP | Leave a comment

On Inheritance

I recently had the chance to give my OOP-in-FP-in-Swift talk again in NSLondon, and was asked how to build inheritance in that object system. It’s a great question, I gave what I hope was a good answer, and it’s worth … Continue reading

Posted in OOP, Talk | 1 Comment

How retrospectives ban shoes

At the end of each sprint, we hold a retrospective. The book “Agile Coaching” by Rachel Davies and Liz Sedley says: An iteration retrospective should help the team explore the following: What insights do they have from the last iteration? … Continue reading

Posted in process | Tagged | Leave a comment

No True Humpty-Dumpty

Words change meaning. Technical words change meaning. Sometimes, you need to check out a specific commit of a word’s meaning from the version control, to add context to a statement. “I’m talking about Open Source in its early meaning of … Continue reading

Posted in advancement of the self, edjercashun | Tagged | Leave a comment

It’s about the thinking

At some point in the past, programmers used to recommend drawing flowcharts before you start coding. Then they recommended creating CRC cards, or acting through how the turtle will behave, or writing failing tests, or getting the types to match … Continue reading

Posted in architecture of sorts | Tagged | 1 Comment