APIs, Not Apps: What the Future Will Be Like When Everyone Can Code
An anonymous reader writes: There's been a huge push over the last few years to make programming part of the core academic curriculum. Hype or not, software developer Al Sweigart takes a shot at predicting what this will be in a future where some degree of coding skill is commonplace and he has an interesting take on it: "More programmers doesn't just mean more apps in app stores or clones of existing websites. Universal coding literacy doesn't increase the supply of web services so much as increase the sophistication in how web services are used. Programming—by which I mean being able to direct a computer to access data, organize it, and then make decisions based on it— will open up not only a popular ability to make more of online services, but also to demand more.
Almost every major website has an Application Program Interface (API), a formal specification for software to retrieve data and make requests similar to human-directed browsers. ... The vast majority of users don't use these APIs—or even know what an API is—because programming is something that they've left to the professionals. But when coding becomes universal, so will the expectation that websites become accessible to more than just browsers."
Almost every major website has an Application Program Interface (API), a formal specification for software to retrieve data and make requests similar to human-directed browsers. ... The vast majority of users don't use these APIs—or even know what an API is—because programming is something that they've left to the professionals. But when coding becomes universal, so will the expectation that websites become accessible to more than just browsers."
Exactly, *everyone* being able to code flies in the face of pretty much every other industry.
Decades ago, everyone knew how to work on cars. In part because cars were more straightforward, but *mostly* because cars were so unreliable, you pretty much had to know how to work on it to be able to own one without going nuts. Nowadays a typical car maintenance schedule has a a recommended oil change every 8,000 miles or so and otherwise very little maintenance that hits a *typical* car. Tires and brakes wear out over a long period of time, but generally there's plenty of warning. A car suddenly not starting or general misbehavior is no longer that commonplace, so most people just leave it to a mechanic. Even things as dead simple as changing oil or even the air filter is perceived as a black art by most folks.
Same for computing. If you had a system in the 70s or 80s, you essentially had to know how to program to be productive. As the software ecosystem has matured with canned applications targeting the use case of more and more and more usual situations, people just don't need to know that stuff anymore. As a portion of the computing population, programmers are less represented now than they were in the past. To imagine a reversal of that trend is silly.
Some view programming as a sort of 'literacy', but that's more of the misnomer of programming as 'languages'. It's really not a form of literacy at all.
XML is like violence. If it doesn't solve the problem, use more.
"What the Future Will Be Like When Everyone Can Code"
This is NEVER going to happen. Stop trying to make it happen. It doesn't NEED to happen. FFS, not everyone needs to know how to "code".
Replace the word "Code" in the title with nearly any activity and you'll immediately see how fucking stupid it is. For example:
What the Future Will Be Like When Everyone Can Wire A House
What the Future Will Be Like When Everyone Can Ride A Unicycle
What the Future Will Be Like When Everyone Can Crochet
What the Future Will Be Like When Everyone Can Mow The Lawn
What the Future Will Be Like When Everyone Can Adjust A Carburetor
What the Future Will Be Like When Everyone Can Solder
What the Future Will Be Like When Everyone Can Read An X-Ray
Enough already. Please stop with this delusion that everyone needs to code or even wants to.
Just cruising through this digital world at 33 1/3 rpm...
In part because cars were more straightforward
I grew up with a Honda Civic and an old Ford van in my family. As a youngster, whenever I looked under the hood, I marveled that people used to be able to work on cars themselves. I eventually got a chance to peek under the hood of some older car from the 60's (I forget the make/model), and I finally understood. Wow, cars engines were a LOT simpler back then, and what's more, the engine compartment wasn't nearly so cluttered. There was actually enough room to get in and work on things, and you could clearly see all the critical components of the engine and figure out how they worked for the most part.
Early computers were a bit like this as well. Think about how simple and minimalist a command-line interface (when that's ALL you had) was compared to the layers and layers of abstraction you have in the OS today. There's no doubt both the hardware and software is vastly more powerful today, but I'd imagine it's actually quite a bit harder for a student today to get a real grasp on what the computer is actually doing at a fundamental level. There's simply a hell of a lot more to learn, so programmers are necessarily becoming specialists.
I don't see this as a bad thing, because it simply means computers are reaching an appropriate level of maturity as devices intended for use by lay-persons, rather than exclusively by and for specialists. We "specialists" occasionally grumble about attempts to "dumb down" computers, but by and large, I think it's a good thing that computing is now ubiquitous, as it's added a tremendous amount of convenience to everyone's lives. And besides, the broader that market is, the more opportunity we have to earn a living writing software for the benefit of the masses.
Irony: Agile development has too much intertia to be abandoned now.