Over the past few decades, Computer programming has ignited gallons of technological innovation, disrupting one industry after the other. For as long, programming has been a skilled task, a niche profession, art of sorts too. It has also made good programmers a rare breed. But I’ve started to imagine that in the coming years everyone will be able to program.
“Give a man a fish and he will eat for a day. Teach a man to fish and he will eat for the rest of his life.”
Most people already program their devices as end-users to a tiny extent, be it an iPhone or the heating thermostat. But a more diverse level of programming will reach the masses, sooner than one might think. It won’t be the same as one would perceive writing complex computer code. It will be more intuitive.
At the moment, the majority of programming is profit or research oriented. The mass programming that I anticipate will primarily be self-serve. Want your refrigerator to automatically order a watermelon and some cold beverages for home delivery based on periodic weather forecast checks? Just program it through your tablet. Want to replace a broken part in your juicer mixer? Just program the 3D printer to make a new one right at home. Want the carpet vacuumed before the in-laws arrive in the evening? Just program the personal robot at home to do so while you are at work.
This emergence is already being made possible due to:
1. Open hardware initiatives, that make device integration and prototyping easier than ever, like Arduino, Raspberry Pi, SparkFun, Seeed Studio, GTA04, Pandora Handheld, and its all going to be huge.
2. Global ‘Learn to Code’ initiatives, that encourage programming as a fun activity for all, like Code Year 2012 (where 333,628 people have already enrolled at the time of writing this post), the UK government introducing programming lessons into British schools, and ‘The Academy for Software Engineering‘ – New York City’s first public high school that will actually train kids to develop software, and even the One Laptop per Child (OLPC) project will reach out to kids in under-developed nations.
3. Visual programming tools, that enable a simplified approach to developing applications, will also help accelerate the adoption of the self-serve programming culture, a bit like ifttt I suppose. But their UI/UX will take a few more years to achieve mass appeal. (Updated 21 Feb 2014: checkout some fascinating screenshots of Visual Programming Languages)
4. Community support – Years ago I read somewhere that “Institutions will try to preserve the problem to which they are the solution.” I believe programmers and hackers are not such institutions. We like to share, teach and learn in the process. The sheer volume of open source projects out in the wild is an evidence of this. The existing programming community will help thrive the Long Tail of mass programming.
Computer Science may remain to be for the elite, but someday, soon, self-serve programming is going to become a common man’s Swiss Army Knife.