The hacker hype cycle
Back on Christmas Day 2013, I ordered myself a copy of Homotopy Type Theory. 589 dense pages of beautifully typeset, self-published LaTeX. Flicking through the margins, I see my old biro sketches of strange mathematical topologies. The text itself is even stranger: the work of a programmer from an alien civilization. I don’t understand the book today, and I don’t think I understood it then. But I had been searching for something, searching for hidden truths. Though I didn’t know it at the time, I had sunk to the bottom of the trough of hipster technologies.
Four years prior, in 2009, I had been making a web app in Python. It was my first job, and for a £25K salary, I worked late into the night, eager to prove myself. Over the course of one Summer, I made a complete patient management system. I think of it as one of the most “productive” periods in my life. 2006-9 were profoundly productive years, while 2011-14 now feel like dead ends. But when had the slide began, and why? Was it in late 2009, when I resigned from that job, unable to work at that breakneck pace? Was it in early 2010 during unemployment, when I learned myself a Haskell? Or was it in 2011, at university after failing to find a new job, where I switched to Emacs and Dvorak, sacrificing my ability to type, all in the name of the perfect coding environment?
I had started coding around 2003. My only source of information was my schoolfriend. Via MSN Messenger after school, he taught me to install PHP, Apache, and MySQL on my Windows PC. I edited everything with Notepad and knew nothing of version control. I hosted my website on my own PC with DynDNS. In short order, I knew exactly one of everything: one programming language, one database, one web server, one editor, one OS, one deployment method. With exactly one of everything, you have hyper focus. My work from this period still exists, and I know because I still have to maintain it: a management system for mother’s nursery business, cobbled from tens of thousands of lines of PHP with no abstractions.
But by 2009, I had leveled up. Where once I had only my schoolfriend, now I had /r/programming. Where once I had only Windows, I had now learned Linux. Where I once used PHP, I now used Python. I had challenging opinions on the significance of whitespace. I had the zeal of the convert, and preached through the number of lines of Python and CoffeeScript I produced. Only, much of it was useless. I think of this as my personal hype cycle, and I sketched it out above. I’m referencing the more famous Gartner hype cycle, which looks like this:
My personal productivity cycle is tied to this industry hype cycle. My schoolfriend back in 2003 was my personal “technology trigger.” From him, I rapidly learned some standard tools from Gartner’s plateau of productivity: PHP, MySQL, Apache. Then I surveyed the plateau more widely, finding Python, Postgres, and Nginx. A little further away, I had heard of Gartner’s trough of disillusionment. I sneered at the Perl, Java, CORBA. I’ll keep my Python, thanks.
But one day, taking a break from battling WSGI, I spied a peak on the horizon. HASKELL, it whispered to me. MICROKERNELS. GRAPH DATABASES. ENLIGHTENMENT AWAITS YOU. Could it be that Python is not the holy grail? I set out on a pilgrimage. I didn’t know it until I got there, but this was Gartner’s peak of inflated expectations! Weary from my travels, I stopped on the peak to view ... a new valley. JUST A LITTLE FARTHER, I heard. ENLIGHTENMENT IS JUST OVER THE PEAK. Down in the depths of this new valley were still stranger objects. Agda. Minix. Verifast. And that beautiful alien book, Homotopy Type Theory. It was here, in Gartner’s land of technology triggers, that I reached my trough of hipster technologies:
It took me years to get back. I am still recovering. Each new project I start, I have to restrain myself, an addict resisting relapse. But I’ve been clean now for almost three years.
Is this a necessary pilgrimage that all engineers must undergo? I have seen similar patterns in colleagues and friends through the years. They may not follow the same technologies, but they follow the same landscape, and the same productivity curve.
Tagged #programming, #fave. All content copyright James Fisher 2019. This post is not associated with my employer.