Author Archives: Graham

About Graham

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

Classes in objects in object-oriented programming in functional programming in Swift

So far, Objective-Swift objects have used prototypical inheritance, in which they supply some methods but also know about another object to which they can forward messages they don’t understand themselves. This pattern is used in languages like Self, JavaScript and … Continue reading

Posted in FP, OOP | 2 Comments

Mutable objects in immutable objects in object-oriented programming in functional programming in Swift

I didn’t realise this at the time, the previous entry wasn’t the last Objective-Swift post. The inheritance mechanism in ObjS is prototypical, meaning that an object inherits from a single other object rather than getting its behaviour from a class. … Continue reading

Posted in FP, OOP | Leave a comment

This gist shows the result of doing the self-threading talked about at the end of the last post. Each method implementation takes an object pointer and a selector name, just like in the real world. That’s enough Objective-Swift for me. … Continue reading

Posted on by Graham | Leave a comment

Further Advances in Objective-Swift

Previously on SICPers, I defined objects as functions that return methods and built dynamic method dispatch in this object system. It’s time to tie up some loose ends. Proper selectors In languages like Smalltalk and Objective-C, an object’s range isn’t … Continue reading

Posted in FP, OOP | Leave a comment

Dynamic Method Dispatch in Object-Oriented Programming in Functional Programming in Swift

In the previous episode, I said that objects are functions that map their ivars onto methods. However, the objects that I demonstrated in the post were tables, structures of functions that closed over the ivars, like this: struct List<T> { … Continue reading

Posted in FP, OOP | Leave a comment

Object-Oriented Programming in Functional Programming in Swift

The maths behind functional programming predates computers. Once people had some experience with both of these things, they stripped them down and created object-oriented programming. It’s still possible to jettison a lot of the features of functional programming and work … Continue reading

Posted in FP, OOP | 5 Comments

Object-Oriented Programming in Objective-C

UIKonf 1995 Keynote : Object-Oriented Programming in Objective-C Introduction Welcome to the keynote for UIKonf 1995. I’m really excited for what 1995 will bring. Customers are upgrading to last year’s OpenStep release, which means that we get to use the … Continue reading

Posted in architecture of sorts, OOP | 2 Comments

I agree with this, programming is not a craft by Dan North. So here’s my concern with the idea of Software Craftsmanship. It’s at risk of letting programmers’ egos run riot. And when that happens… well, the last time they … Continue reading

Posted on by Graham | Leave a comment

Did that work? Maybe.

A limitation with yesterday’s error-preserving approach is that it leaves you on your own to recover from problems. Assuming your error definitions are sufficiently granular, this should be straightforward but tedious. Find out what went wrong, recover from it, then … Continue reading

Posted in code-level, OOP | 4 Comments

Getting better at doing it wrong

For around a month at the end of last year, I kept a long text note called “doing doing it wrong right”. I was trying to understand error handling in programming, look at some common designs and work out a … Continue reading

Posted in architecture of sorts, code-level, OOP | 2 Comments