Author Archives: Graham

About Graham

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

Software, Science?

Is there any science in software making? Does it make sense to think of software making as scientific? Would it help if we could? Hold on, just what is science anyway? Good question. The medieval French philosopher-monk Buridan said that … Continue reading

Posted in advancement of the self, learning, social-science, software-engineering | Comments Off on Software, Science?

Inside-Out Apps

This article is based on a talk I gave at mdevcon 2014. The talk also included a specific example to demonstrate the approach, but was otherwise a presentation of the following argument. You probably read this blog because you write … Continue reading

Posted in architecture of sorts, MVC, OOP, ruby, software-engineering | Comments Off on Inside-Out Apps

Principled Lizards

Sixty-five million years ago, there were many huge lizards. Most of them were really happy being lizards, and would spend all of the time they could doing lizardy things. Some wanted to be the biggest lizards, and grew so large … Continue reading

Posted in advancement of the self | Leave a comment

Messily Veneered C

A recap: we saw that Model-View-Controller started life as Thing-Model-View-Editor, a way of approaching problems to design Smalltalk user interfaces. As Smalltalk-80 drifted off from its ivory tower, many Smalltalkers were using and talking about MVC, although any kind of … Continue reading

Posted in MVC, OOP | Comments Off on Messily Veneered C

The Objective-C protocol naming trifecta

Objective-C protocol names throughout history seem to fall into three distinct conventions: some are named after what a conforming object provides. Thus we have DBProperties, DBEntities, DBTypes and the like in Database Kit. others are named after what the object … Continue reading

Posted in OOP | Comments Off on The Objective-C protocol naming trifecta

ClassBrowser’s public face

I made a couple of things: ClassBrowser discussion list The project website‘s source is now visible and MIT licensed I should’ve done both of these things at the beginning of the project. I believe that the fact I opened the … Continue reading

Posted in Responsibility, software-engineering | Comments Off on ClassBrowser’s public face

Replacing the language

Over the last few years, people have used the ObjC frameworks from TCL, Python, Perl and WebScript, Perl again, Perl, more Python, Ruby, Ruby, Ruby, Ruby, Java, Java, AppleScript, Smalltalk, C++, Pascal, Object Pascal, CLIPS, Common LISP, Nu, Eero, Modula-2, … Continue reading

Posted in code-level | Comments Off on Replacing the language

Laggards don’t buy apps: devil’s advocate edition

Silky-voiced star of podcasts and all-round nice developer person Brent Simmons just published a pair of articles on dropping support for older OS releases. His argument is reasonable, and is based on a number of axioms including this one: People … Continue reading

Posted in Business, Responsibility | Comments Off on Laggards don’t buy apps: devil’s advocate edition

Missing Vital Content

After reading Moderately Valuable Cliché, reader Nicholas Levin got in touch to recommend that I look at the back of my Smalltalk-80 books. Here’s the blue one. The first book mentioned in “Other books in the … Series” is the … Continue reading

Posted in MVC, OOP | Comments Off on Missing Vital Content

Moderately Valuable Cliché

In part 1 of the MVC story, I examined “Thing-Model-View-Editor”, a pattern[*] extracted by Trygve Reenskaug’s work in Smalltalk-76. By the time Smalltalk-80’s hot air balloon set sail from the ivory tower, there was already a structure called Model-View-Controller. Part … Continue reading

Posted in MVC, OOP | Comments Off on Moderately Valuable Cliché