Author Archives: Graham

About Graham

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

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 | 22 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

There is no browser, only Zuul

My short-lived first plan for a career was in Physics. That’s what my first degree was in, but I graduated with the career goal “do something that isn’t a D.Phil. in Physics” in mind. I’d got on quite well with … Continue reading

Posted in edjercashun | Leave a comment

To become a beginner, first become an expert

We have a whole load of practices in programming that only really work well if you’re already good at whatever the process is supposed to help with. Scrum is a process improvement framework, but only if you already know how … Continue reading

Posted in advancement of the self, software-engineering, TDD, tool-support | 2 Comments

machoo – Object-Oriented Programming in Object-Oriented Programming in the GNU HURD

For the last few weeks, my when-I-get-to-it project has been machoo, which is sort of an object-oriented system on the HURD but mostly an excuse to learn about how Mach messaging works. I decided to build a Smalltalk-style “give me … Continue reading

Posted in code-level, OOP, techradar | Leave a comment

Discovery

I think the last technical conference I attended was FOSDEM last year, and now I’m sat in the lobby of the Royal Library of Brussels working on a project that I want to take to some folks at this year’s … Continue reading

Posted in advancement of the self, Talk | Leave a comment