Slashdot Mirror


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."

31 of 255 comments (clear)

  1. "When everyone can code . . . " by PolygamousRanchKid+ · · Score: 5, Insightful

    . . . everyone will just think that they can code.

    Hey, I have a Black & Decker cordless drill! And a can of Spackle . . . I guess that makes me a dentist!

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    1. Re:"When everyone can code . . . " by Krishnoid · · Score: 3, Funny

      Sure, but it's better if you have some practical experience first.

    2. Re:"When everyone can code . . . " by Dutch+Gun · · Score: 5, Insightful

      The trend is actually reversing in some ways. Many kids are no longer interested in tinkering with PCs - which used to be a near requirement just to get them to work. They just see them as appliances now, about as interesting or exciting as their refrigerator, except for what it can DO for them. And it's often easier and more convenient for them to simply use their iPad.

      So, no, I just don't see a world in which everyone is a programmer. There will certainly be a lot MORE programmers than ever, but it will still be viewed as something of a black art by the rest of the population. It's no different than an auto mechanic in that regard. The average person nowadays opens the hood of their cars and their eyes glaze over. They have no idea how to fix anything in there, and they don't want to know. There are people who do that for a living, and it's far more efficient to simply pay someone else to fix it.

      Seriously, can you imagine an average person wanting to program something for themselves to scratch some itch, or do you think they'll just find a $5 app to take care of it for them? The second scenario sounds a hell of a lot more likely to me.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    3. Re:"When everyone can code . . . " by hawguy · · Score: 5, Insightful

      . . . everyone will just think that they can code.

      Hey, I have a Black & Decker cordless drill! And a can of Spackle . . . I guess that makes me a dentist!

      I don't understand the big push to get everyone to code -- not everyone *wants* to code, nor should they have to. Not everyone knows how to grow their own food, fix their own car, build their own house, and they don't need to - there are specialists for all of those that are better trained and more skilled at it and will do a much better job. Some people may grow a small garden or tinker with cars as a hobby, but few people are capable of effectively growing food for their family or overhauling an engine. Just some people may enjoy creating small (or even large) software projects for fun, but not everyone wants to.

    4. Re:"When everyone can code . . . " by Junta · · Score: 5, Interesting

      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.
    5. Re:"When everyone can code . . . " by Darinbob · · Score: 2

      And this "coding" isn't what many people would call coding. There are people out there who seriously think that creating a web page is coding, or packaging up a URL inside some XML and calling it an app is coding.

    6. Re:"When everyone can code . . . " by mjwx · · Score: 3, Insightful

      The trend is actually reversing in some ways. Many kids are no longer interested in tinkering with PCs - which used to be a near requirement just to get them to work. They just see them as appliances now, about as interesting or exciting as their refrigerator, except for what it can DO for them. And it's often easier and more convenient for them to simply use their iPad.

      This.

      Computers are seen as appliances these days. In the future there will be fewer computer users who can program, not more.

      The same happened with everything we consider appliances now from refrigerators to cars. Not so long ago, being able to fix a washing machine or perform rudimentary maintenance on a car was almost mandatory for owning one, now these skills are rapidly disappearing as people need to call the AA (roadside assistance) to change a tyre.

      --
      Calling someone a "hater" only means you can not rationally rebut their argument.
    7. Re:"When everyone can code . . . " by ILongForDarkness · · Score: 2

      That is just it. It isn't just a matter of can you understand what an if or for loop is. It IS a skill/psychological problem: you need be the type of person that wants to understand how things work all the way down to the metal, and stubborn enough to keep at it till you can get things to work. If anything the more easy to use computers become the more frustrating it will be to fix that 1% of remaining issues. It takes a special type of idiot to keep bashing their heads against the wall when things are already "good enough".

    8. Re:"When everyone can code . . . " by Dutch+Gun · · Score: 5, Interesting

      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.
    9. Re:"When everyone can code . . . " by narcc · · Score: 2

      You've elevated programming to a laughable level. It's more in line with basic literacy than it is to higher math or physics.

      Programming is ridiculously simple. So simple, in fact, that young children can (and often do) teach themselves. I'd say that would put it below basic literacy if that weren't a necessary prerequisite.

      Reading and writing are skills we teach everyone. Anyone, unless severely disabled, can learn to read an write. Yet very few go on to be professional writers. Fewer still are writers worth your time. Yet they're still valuable and, in this modern age, essential skills.

      The problem with developers is that every hack out their wants to believe that they're Hemingway. They're not, of course. They're more like a newspaper reporter in charge of covering community events. I suspect every developer, save the hopelessly deluded, understands this. That's why we see so many posts insisting that programming requires a "special mind" or that most students will "just forget" after the class is over. They're modern scribes, lobbying to keep literacy out of the hands of the general public. They have no other skills, and they're terrified that they'll find themselves unemployed.

      That's ridiculous, of course. Like writing, programming is a skill. Like all skills, it improves practice. Just as we don't hand out writing jobs to anyone who can hold a pencil, we won't hand out programming jobs to anyone who can bang on a keyboard. Though everyone who can program can benefit from that skill, just as anyone who can read and write can benefit. Just as any literate person can tell a story, leave a note, make a list, etc, so can someone with basic programming skills solve a problem, make a game, or whatever it is that's important to them.

      Unless they discover Python. Then they're a lost cause.

  2. Where have I heard this before? by Frnknstn · · Score: 5, Insightful

    So with this API stuff, what you are proposing is that all systems should be divided up into functional blocks, where every block has a single logical purpose, and that savvy users are able to chain these functions together however they see fit to suit their purposes?

    Where have I heard this idea before? Oh yeah... it's called The Unix Philosophy.

    --
    If it's in you sig, it's in your post.
    1. Re:Where have I heard this before? by ColdWetDog · · Score: 2

      No, no, no. The Unix philosophy is old. Think guys with ponytails way longer than they should have them.

      This is different because it will be SHINY. And patent pending, trademarked and protected by copyright until you can't do a damned thing without paying extra for the privilege.

      Get with the program. You're probably a socialist.

      --
      Faster! Faster! Faster would be better!
    2. Re:Where have I heard this before? by CRCulver · · Score: 4, Insightful

      Where have I heard this idea before? Oh yeah... it's called The Unix Philosophy.

      Indeed. I've been using Linux since the turn of the millennium, but in the last couple of years I've been trying to gain a more proficient command of Unix standard utils and piping commands with tutorials like O'Reilly's Classic Shell Scripting . I feel like a computing god, and friends and relatives are baffled at how I can so quickly solve computing needs that, they believed, would have to take minutes or hours of laborious pointing and clicking.

      And that's why I find the premise of this article so odd. The average public does not seem to me on the cusp of a programming revolution. I might as well link here to Philip Guo's essay The Two Cultures of Computing, a.k.a. "How Ya Gonna Get 'Em Down on UNIX After They've Seen Spotify?". The interfaces ordinary people use so hide hackability that they generally forget it even exists.* Plus, with people in the developing world starting to do more and more of their computing on their phone, a device without a real keyboard, they are hardly able to do all the typing that coding requires.

      (Perversely, this might be something that millions of people should be thankful for: that ignorance is why they still have jobs. So much time-consuming work could be done in a much shorter time were the Unix philosophy applied. If scripting were something that managers keen on every possible costsaving measure were strongly aware of, even more jobs would be automated away.)

    3. Re:Where have I heard this before? by youngatheart · · Score: 2

      You're quite right. The good news that instead of only the elite knowing how to read and write as was normal a century ago, now most people can communicate with the written word. The number of interesting things to read and the number of people capable of appreciating it now compared to just a few generations ago is amazing when you stop to think about it. Maybe only one in ten thousand is a great writer, but not that percentage is taken from a hugely larger portion of the population. Likewise with coding, perhaps only one in ten thousand will be a coder with impact, but if that is taken from 318 million instead of 2 million, that's a big impact.

  3. No. by nmpg · · Score: 2

    "But when coding becomes universal, so will the expectation that websites become accessible to more than just browsers" That's just not true. Website want you to go to the ... you guessed it, the website! Do you really think everyone will offer access to content without making you see these pesky ads? Ain't gonna happen dude.

    1. Re:No. by alexhs · · Score: 3, Insightful

      you won't have ads. You'll just pay directly for the services you want to access.

      I thought that if American cable TV ever taught us anything, it is that you will end up paying for the service and have ads.

      --
      I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
  4. Prima facie ridiculous by argStyopa · · Score: 2

    The assertion seems to be that since code will be ubiquitous, then everyone will learn to code is provably silly.
    Cars have become universal, yet the ability to fix them decreases with every generation.
    Literacy is nearly universal now, would anyone assert that people write better now than they did 100 years ago?
    Let's use even a code-like example: mods for first person shooter...the modding community used to be robust for these games but as the level of quality and complexity of the games have improved, I'd posit that the modders have (largely) disappeared; it just takes to much time/effort for hobbyists to make something comparably decent that doesn't look like crap compared to professionally produced levels.

    --
    -Styopa
  5. What kind of future.... by Dcnjoe60 · · Score: 2

    If we have AI good enough to drive a car by itself, then surely, we will have AI good enough to access the online services that the article is talking about. Instead of a future where everybody knows how to code, wouldn't it be better to create one where nobody needs to code?

    1. Re:What kind of future.... by youngatheart · · Score: 2

      I can't disagree with your observations, but I do have a positive perspective to add. Imagine that you wanted a way to measure wireless signal strength as you deployed your first wireless network in 1997. You'd need to buy special equipment where today, you just download an app. The 1997 person might want a calculator at the gas pump, requiring planning ahead to have the right equipment, but today you can just pull out your phone to use the built-in app.

      Today the average end user doesn't buy a newspaper, consumer reviews magazine, music player, tape recorder, map or a camera. Few drive to the book store or the bank. Anyone can buy household goods while they wait in line at the DMV and catch up with family and friends across the world during their lunch break.

      Today the average consumer solves thousands of needs by just knowing there is probably a bit of programming to be added to the ubiquitous pocket computer. It's probably not fair to refer to the end consumer's actions as coding or even programming, but the average consumer today changes what that pocket computer is capable of every day without even thinking about how it works.

  6. Basic understanding doesn't equate to daily use by ravenscar · · Score: 4, Insightful

    The fact that a primary education provides a basic understanding of a thing doesn't mean that your're suddenly proficient to the point that you use it, in depth, in your daily life. Even if you could, it doesn't mean you'd want to.

    Maybe I'm wrong.
    People get a basic understanding of Biology so they don't need doctors.
    People get a basic understanding of Chemistry so they just purchase elements and make their own chemical compounds (who buys soap when you can make it?).
    People (might) get a basic understanding of music so they simply put on their own performances.
    Right?

  7. APIs and business models by Anonymous Coward · · Score: 3, Insightful

    Website and services have been moving *away* from giving away API access for free. Twitter doesn't want third-party devs to write Twitter clients; they want to control the experience end-to-end. There's a few reasons off the top of my head:

    • Companies can break private APIs at any time; public APIs are expected to remain stable and maintained
    • Companies that rely on advertising want to be able to insert ads, or prevent clients from stripping out ads (e.g. promoted tweets)
    • Companies don't want to dilute the value of their service. It'd be cool if I could build my own traffic alert system using the same data as Google Now, even if I have to pay for it, but Google would rather have you stick solely to Google devices, apps, and websites

    In short, companies like Apple and Google and others would frequently rather build their own apps rather than allow third parties to "mash up" or build innovative new apps using their services and data (which in many cases is really the user's data).

  8. Maintainability is THE Bottleneck by Tablizer · · Score: 2

    Amen! The bottleneck of coding is not getting a program to "work", but making it maintainable: easy to add or change requirements and easy to study (read) to fix.

    I've inherited "amateur" programs before, and they are often just not worth it. It was often less total resources to start from scratch.

    Now, I'm fine with small personal automation utilities, but it shouldn't be expected that if the author (newbie programmer) moves on to another job, that a regular programmer should be expected to maintain it.

    If it has shared utility or data, then it's best to have an experienced professional code it.

    (Except, maybe in the few cases that the "professional" is so big of a jerk that the amateur is the better alternative.)

    1. Re:Maintainability is THE Bottleneck by plover · · Score: 2

      Exactly. The difference between design and code is the difference between thermoplastic engineering and assembling a house out of Lego. And managing the dependencies means the difference between a proven clean API and code that has no chance of change short of total replacement.

      A future where everyone is a skript kiddie is one where every damn product will become completely fragile. You won't be able to buy a reliable alarm clock or a refrigerator that keeps your food consistently cold, because some stupid interaction with a non-essential system will cause them to break.

      You can have my cloud when you can blow it from my cold, damp fingers.

      --
      John
    2. Re:Maintainability is THE Bottleneck by Darinbob · · Score: 3, Funny

      We had the problem back when Visual Basic came out, where every non-coding manager learned that coding was simple and that all the programmers were sandbagging and overpaid.

    3. Re:Maintainability is THE Bottleneck by TuringTest · · Score: 2

      If everyone could code, there would be no need for 1000 people to download a program made by someone else, they would buld their own from scratch. Therefore reusability would be not as important as it is now.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    4. Re:Maintainability is THE Bottleneck by K.+S.+Kyosuke · · Score: 2

      Even worse, the computing industry is most likely not interested in the "democratization" of programming. Microsoft et al. have no reason to commit a business suicide and make themselves obsolete by simplifying anything related to everyday computing. After all, having people grown dependent on their current software offer has turned them into one of the largest software companies in the world. Clearly from the business perspective, having your users self-sufficient is a horrible idea.

      --
      Ezekiel 23:20
  9. Want to know what it's going to be like? by Opportunist · · Score: 2

    Two words: Visual Basic.

    That's what it's going to be like. Every shitty webpage, just like every shitty office suite in the past, will come with its tailor-made API that allows people to develop basic cargo-cult, copy/paste "programming" skills. People will just do that. And that's basically going to be it.

    Nothing will change. People will look at something that does what they want to do, copy the code from there (usually without attributing the source or contributing anything to it) and slap together an ugly, frankenstein-esque monstrosity that will more by accident and chance produce something that, provided no special case happens, do more or less what they intend to do, with more or less accuracy.

    In other words, nothing new to see here, please move along.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  10. When everyone can code? by Jawnn · · Score: 2

    When would that be, Al? Come on. Put down the pipe and back away. Most people can't even figure out how to use their fucking turn signals, and you think they'll somehow magically become programmers.

  11. Exactly when is "everyone" going to code? by mariox19 · · Score: 2

    This isn't an exact analogy, but calculus is more than 250 years old, and it's not like everyone is doing calculus. In fact, never mind calculus: there are plenty of people who, though they have sat in an algebra class, don't get even rudimentary algebra. So, why are we imagining that someday everyone is going to code?

    --

    quiquid id est, timeo puellas et oscula dantes.

  12. Oh for christ's sake by JustAnotherOldGuy · · Score: 5, Interesting

    "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...
  13. The future: when everyone can be a hairstylist by bigsexyjoe · · Score: 2

    Ugg. The future where it's all API's is already here. The fact is learning API's is often a pain in the ass. Maybe most people could code if you told them they would be killed in five years if they didn't learn to code, but no, we are not moving towards everyone being able to code, or everyone even being that computer savvy, or people knowing how to turn their problems into specific algorithms.