Category Archives: code-level

Your build needs to be better

I’ve said it before, build systems are a huge annoyance. If your build is anything other than seemingly instantaneous, it’s costing you severe money. Your developers are probably off reading HN, or writing blog posts about how slow builds cost … Continue reading

Posted in architecture of sorts, code-level, tool-support | Leave a comment

Working Effectively with Legacy Code

I gave a talk to my team at ARM today on Working Effectively with Legacy Code by Michael Feathers. Here are some notes I made in preparation, which are somewhat related to the talk I gave. This may be the … Continue reading

Posted in advancement of the self, books, code-level, learning, software-engineering, TDD | Leave a comment

Build systems are a huge annoyance

Take Smalltalk. Do I have an object in my image? Yes? Well I can use it. Does it need to do some compilation or something? I have no idea, it just runs my Smalltalk. Take Python. Do I have the … Continue reading

Posted in code-level | Leave a comment

The package management paradox

There was no need to build a package management system since CPAN, and yet npm is the best. Wait, what? Every time a new programming language or framework is released, people seem to decide that: It needs its own package … Continue reading

Posted in architecture of sorts, code-level, javascript, OOP, software-engineering | Leave a comment

Apple’s Best Programming Language

My talk at App Builders 2016 was on Apple’s best programming language. Spoiler alert: it’s Dylan. Or is it? I chose a few properties one might wish to find in programming languages, then demonstrated how these were all present in … Continue reading

Posted in code-level, Uncategorized | 1 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

An acceptable tool It’s easy to forget that adequacy is, well, adequate. It’s easy to go all-in on making some code structure perfect, when good enough would be good enough.

Posted on by Graham | Leave a comment

Hiding behind messages

A problem I think about every so often is how to combine the software design practice of hiding implementations behind interfaces with the engineering practice of parallel execution. What are the trade-offs between making parallelism explicit and information hiding? Where … Continue reading

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

Fun and games (with rewritten rules) in Objective-C

An object-oriented programming environment is not a set of rules. Programs do not need to be constructed according to the rules supplied by the environment. An object-oriented environment includes tools for constructing new rules, and programs can use these to … Continue reading

Posted in code-level, OOP | Leave a comment