Developers talk about magic, which is where big, amazing things happen with a disproportionately small and simple piece of code. There’s a whole spectrum of magic - from C which gives you almost nothing, through to using a framework like Ember and writing in Coffeescript.

Too little magic is unproductive and dry. Too much is even worse - it makes it hard to understand what’s going on, and to understand how elements and processes relate to each other.

Rails has the right amount of magic - and Ruby makes it easy to throw a little magic dust on things. I think this explains a lot of their popularity, and is the basis for claims that Ruby allows ‘beautiful code’ and Rail is ‘productive’. I’ve been working in Swift and XCode for the last couple of weeks and it feels like the balance is right there too. In twenty lines I’m able to capture video from an iPhone camera, extract QR codes and parse their data. It’s fast to write, and it’s extremely fast to run. The experience reminds me of the initial sense of power that I got from Visual Basic back in about 1997.

That said, there’s a lot of mystery happening between the Storyboard and swift code that I don’t understand yet. But so far, so good.