When I was in university, every time I sat down to program I felt a rush of excitement and a sense of exploration. I would always learn something new, and things always felt new to me.
By the time one programming language was beginning to feel old, I would start learning another for a new course or a new project. Eventually I settled on Objective-C and I’ve spent the past four years refining that knowledge.
Somewhere along the way, programming lost its magic.
I’ve now become a professional who recognizes a problem and reaches for the exact tool to solve it. There’s no room for exploration any more. The most enjoyable parts of programming have become the parts where I get to explore a new API, but most of my work has become routine.
Which brings me to ReactiveCocoa. A whole new paradigm to write programs in. I’d be lying if I said part of my infatuation with ReactiveCocoa wasn’t rooted in the fact that it’s brought back a sense of wonder and excitement to writing programs. However, ReactiveCocoa feels like magic because it is magic: a collection of clever tricks on top of the Objective-C runtime that gives programmers the freedom to program declaratively.
It’s learning curve is steep, but the creators of the project are working on it. Every question I’ve asked about it has been promptly answered by one of them on StackOverflow.
I would highly encourage you to check it out. I’m working on a series of new blog posts that’ll help flatten out that curve. Stay tuned.