In the past few days, I’ve been playing with Sketch, a vector drawing application for OS X. There are lots of things to like, but one thing I found frustrating was how it implements alignment guides: those handy little lines that allow you to precisely align an object with another. Things get tricky if there are a lot of objects on the canvas, but the app should give you an easy way to pick your desired alignment. Here’s a simple example of how it’s handled in Keynote:
Notice that there are two different possibilities that are only a few pixels apart: align the square with the one on its left, or place it exactly in the middle of the squares above and below it. Keynote makes it pretty easy to switch between the two options with just a little mouse movement.
Now look how Sketch handles it:
It gives preference to the alignment with the square on the left, and doesn’t even offer the other option. This becomes really frustrating when you’ve got even a handful of objects on the canvas. What’s worse is that Sketch will even attempt to align to objects that are outside the viewport:
Keynote, on the other hand, takes the context of your actions into account. When the square on the left is not visible, it doesn’t even offer to align to it:
This is a really simple example of software trying to be “smart”: based on my action (dragging an object), it tries to guess my higher-level intent (align the object with others). Sketch’s behaviour here is an example of the stereotypical “dumb machine”: it’s behaviour seems arbitrary, it ignores important context, and it insists on doing the same wrong thing over and over.