The path to billions of “programmers”
I have always been fascinated by publishing platforms…I love the idea that a new platform or technology has the ability to give a voice to someone…or many people…that previously did not have one. I try to stay very current on the places that people go to express themselves, and I think overall the internet has done a pretty good job of giving everyone and anyone with a computer or camera the ability to publish. It used to be that in order to have a public voice, you needed to be a journalist. The technical requirement to publish was a journalism degree, and therefore the number of people who both had that credential and were able to get a job at a media outlet limited the universe of potential voices in the world. Along came blogging platforms, and all of the sudden you didn’t need to have a journalism degree or a job at a newspaper or magazine, you just needed to know how to write. The universe of voices expanded to maybe anyone with a high school education or liberal arts degree, and all of the sudden we had more public voices in the world. From there, came microblogging, and now you didn’t even have to know how to construct a 3 paragraph essay…if you could assemble a sentence or a tweet, independent of structure…you too could have a voice. In parallel, publishing platforms like instagram and Facebook enabled visual thinkers to express their voice through photos, even if they couldn’t conjure a thought in text. Each time a new platform came along, the schooling and technical writing proficiency required to publish and have a voice declined…until we arrived where we are today, where let’s say a few billion voices have joined a conversation that a few thousand were previously dominating. I had a post a few years ago that described these successive breakthroughs in publishing platforms and their impact on expanding the universe of people with a voice. I visualized each new platform as unlocking a new and larger rung of publishers in a series of expanding concentric circles. There I focussed on the reduced effort that each new platform required to publish, but here I focus on a reduction in required training to publish because I think there’s an important parallel to be drawn between the history of publishing platforms and the current state of programming and software development.
In a sense, programming and publishing an application, be it a website on your own domain, a mobile app in the Appstore, or really any piece of automation is a lot like publishing an article or blogpost. You write within the guidelines of the platform you are writing for, and if you have the background and understanding of the language you are writing in, you can take something that’s in your head and express it externally. When I started working in technology, most of the programmers I knew had formal computer science degrees. If you wanted to write software, you needed a lot of education, and therefore the number of programmers in our world was quite limited. A few years later, there was even a bubble of sorts in aquihires, as demand for people who could write and publish software far exceed those trained in the field. For a host of reasons, not the least of which was the emergence of more flexible programming languages and frameworks like Ruby on Rails, the schooling required to express thoughts as software and applications declined. Today, instead of 4 years at MIT, 3 months at programming bootcamp can land you a job writing software, and certainly provides the basics required to build a basic web application on your own. Advances in modern programming languages and abstractions of knowledge dependent layers in the development stack have played a similar role in programming to advances in blogging and microblogging in the publishing world. As a result, the universe of software publishers has grown, more people can express themselves through software, and the universe of people capable of writing automation has widened…but still the hurdle to express oneself or an idea through software remains too high.
I find myself looking for the platform or technology that is going to meaningfully increase the number of people who can “write software” and I don’t think it’s going to be an educational platform so much as a much more flexible programming language or platform that more closely mirrors and accommodates natural language. I know we are far from it, but when we get to the point where a person can write automation in plain english, we’ll have billions of people writing software much in the same way as we have billions of people publishing thoughts on today’s publishing platforms. What automation we write will look and feel different than what you see in the Appstore today…early hints of this future might exist in platforms like IFTTT and Workflow…but even these environments are quite rigid and lego-like when compared to a free-text box that any liberal arts student could approach. Yesterday I came across this YC company called Algoriz, which positions itself as free-text based algo trading without the need for programmer…in practice I found the tool far from this promise, but in positioning I was captivated by the idea of unlocking a new concentric circle of programmers…even within a tight vertical like trading…and my mind immediately longed for the more generic version of this promise.
When you go down the actual rabbit hole of approaching something like this, you quickly get into concepts of templates and modules and hardcoded mappings vs generic and broad capability…the state of the art ain’t pretty in this domain…but I’m more than ready to talk to anyone who is trying to grow the universe of “automation publishers” less through education and more through advancement at some platform, technology, or even interface layer. Who is taking the requirement to publish software from a 3 month bootcamp to a plain vanilla liberal arts education…and who’s doing it more flexibly than templatey? That’s something I’d like to back…