What is software and why is understanding it important?
This will be a multi-part series on my thoughts on software and why everyone — not just those working in the industry — should understand what it’s about, how we got here, and where we can go 🚀
Let me parlay Marc Andreessen’s “software is eating the world” into “software has already eaten the world”.
Software is in everything and it’s everywhere.
Humans are used to things that we can see and touch. We live in the physical world of cars, washing machines, telephones and hair dryers. This is hardware — physical tools, machinery, and other durable equipment. Hardware provides us with utility that’s very real to us. But at some point we started to hit against hardware’s limits. VCRs in the 90s were great for recording whatever was on television (to watch again later) as long as you were there to hit the record button as the show was about to start. Wouldn’t it be even better if you could record something that was on TV without having to be there to press the record button? To be able to tell your VCR to start recording at 7pm and stop at 8pm so you could go out for dinner? Yes, that would be much better!
Well, it turns out that to be able to tell hardware what to do in a flexible way you needed to be able to program it — you need software. We started expanding the capabilities of hardware by programming it and making software. This is especially true when it comes to computer hardware. A computer at its core is a smart calculator. What gives computers their power depends on what you can program them to do — calculate the trajectory of a missile rocket or tally up client bank records for accounting purposes. And this is when software took its first big bite into the world.
Early software was bespoke, written exactly for the application it was going to be used for and the hardware it was going to be run on. If you had written a piece of accounting software for company A it was unlikely that that same piece of software was going to work at company B without a lot of rework. Software wasn’t very portable.
Bill Gates foresaw that the increasing number of computers and PCs being produced were going to need software that would handle the basic inner workings of CPU, RAM and Disk storage within the computer. This would free developers to focus building applications that solved a user problem instead of writing common code to orchestrate the computer’s hardware e.g. things like reading/writing files. Disk Operating System aka DOS was born and would solve exactly that problem, and in doing so it set the stage for the PC market boom of the late 20th century with Windows. Bill Gates didn’t invent the Operating System (OS) as a concept but he sure made it mainstream.
Software exploded in the 90s and Microsoft dominated. Its Office suite was everywhere and it made offices much more productive. Computers were very utilitarian and focussed around work versus play. Personal computing as we know it was still in its infancy. PCs were becoming more useful as more and more software was written for them. Different applications like word processing, spreadsheets, solitaire and eventually web browsing were expanding the possibilities of what you could do. Yet PCs weren’t very sexy. They all looked the same — cream coloured towers with matching hefty CRT monitors.
Turn your iPhone off and it becomes a very shiny and very expensive paperweight. It’s only when you hold the power button to turn it on does it light up with all of its amazing possibility and function.
Steve Jobs would revolutionise the computer market by focusing on design — on making it user-friendly. Macs and iPods had an aesthetic that broke away from the utilitarian and unsexy roots of PC manufacturers. Where Microsoft would only control the software that ran on computers, Apple wanted to control everything, both the hardware and software of its products. Apple developed its own operating system Mac OS based on NeXT and also designed what the computer would look like. Apple touted that its closed system meant a better experience for its users.
Fast forward almost 20 years and it’s not hard to see why this was a great idea. The iPhone has not only transformed how we think about the look of our devices but also how we interact with our devices. The iPhone together with its operating system iOS is a marvel of hardware, software and design combined.
The physical hardware of our devices now mostly takes a back seat to what our software can do. Turn your iPhone off and it becomes a very shiny and very expensive paperweight. It’s only when you hold the power button to turn it on does it light up with all of its amazing possibility and function. What we can do on our phones depends on what apps we have installed. The apps (the software) is what gives our devices their unique utility to us.
Apple’s notion of owning the ecosystem of its products from top to bottom gives an extremely fluid and seamless user experience. One that’s packed with power and capabilities we don’t always fully comprehend. And that’s kind of the point. It’s hard to see those possibilities because they’re abstract. They live in this virtual world that many of us aren’t all too familiar with. For hardware we’re given metrics like processor speeds in GHz but we don’t have a good equivalent for software.
Today’s software is incredibly complex. What’s involved in creating experiences we think are intuitively simple are actually super hard problems in computer science. Getting computers to do human things is a really hard problem, one that’s spurned an entire AI industry and many others.
The dog face filter responds in real-time to your head and and facial movements. And it’s pretty damn good at it.
Snapchat is my favourite example of this because of its apparent obviousness in human terms. You open the app and immediately see your face on-screen via your front-facing camera. With a tap on the screen the app will recognise your face and bring up the filter menu. And then magically you have a snap filter of a dog face live as it’s happening on your face. The dog face filter responds in real-time to your head and and facial movements. And it’s pretty damn good at it. You can then tap the shutter button to capture the image or video and with just another few taps you can send the snap instantly to your friends across the globe anywhere in the world with an internet connection. It’s pretty incredible when you think about it.
In Part 2 of this series I’ll go into more detail about how/what Snapchat software makes all this possible.
Follow me on Twitter:
Sign-up to my newsletter: