Sekėjai

Ieškoti šiame dienoraštyje

2023 m. birželio 2 d., penktadienis

It’s the End of Computer Programming as We Know It. (And I Feel Fine.)

"I was 5 or 6 when I got my first sense of the joys of computer programming. This was in the early 1980s, when few people had a computer. One day, my dad brought home a Sinclair ZX Spectrum, one of the world’s early affordable, mass-market PCs. The device looked like a chunky keyboard; it had 48 kilobytes of memory (my phone has about 125,000 times as much RAM); and it used your TV as a display. Software, mainly games, came on cassette tapes that you loaded into the computer with a connection to a tape player — the floppy drive of its time.

But the games took forever to load, and while waiting I would often pore over the incredible programming manual that came with the Spectrum. The book was full of simple programs written in the accessible BASIC programming language. Most of it went over my head, but as I experimented with the examples, I began to feel the thrill that people who fall for computer programming often talk about — the revelation that, with just the right set of incantations, you can summon to life these otherwise inert machines and get them to do your bidding.

My obsession with programming deepened when I got to high school (I was very popular!), and there were a few weeks early in college when I thought coding could be something I did for a living. Of course, I didn’t stick with it; for me, writing words won out over writing code.

Though I did find it fascinating to learn to think the way computers do, there seemed to be something fundamentally backward about programming a computer that I just couldn’t get over: Wasn’t it odd that the machines needed us humans to learn their maddeningly precise secret languages to get the most out of them? If they’re so smart, shouldn’t they try to understand what we’re saying, rather than us learning how to talk to them?

Now that may finally be happening. In a kind of poetic irony, software engineering is looking like one of the fields that could be most thoroughly altered by the rise of artificial intelligence. Over the next few years, A.I. could transform computer programming from a rarefied, highly compensated occupation into a widely accessible skill that people can easily pick up and use as part of their jobs across a wide variety of fields. This won’t necessarily be terrible for computer programmers — the world will still need people with advanced coding skills — but it will be great for the rest of us. Computers that we can all “program,” computers that don’t require specialized training to adjust and improve their functionality and that don’t speak in code: That future is rapidly becoming the present.

A.I. tools based on large language models — like OpenAI Codex, from the company that brought you ChatGPT, or AlphaCode, from Google’s DeepMind division — have already begun to change the way many professional coders do their jobs. At the moment, these tools work mainly as assistants — they can find bugs, write explanations for snippets of poorly documented code and offer suggestions for code to perform routine tasks (not unlike how Gmail offers ideas for email replies — “Sounds good”; “Got it”).

But A.I. coders are quickly getting smart enough to rival human coders. Last year, DeepMind reported in the journal Science that when AlphaCode’s programs were evaluated against answers submitted by human participants in coding competitions, its performance “approximately corresponds to a novice programmer with a few months to a year of training.”

“Programming will be obsolete,” Matt Welsh, a former engineer at Google and Apple, predicted recently. Welsh now runs an A.I. start-up, but his prediction, while perhaps self-serving, doesn’t sound implausible:

I believe the conventional idea of “writing a program” is headed for extinction, and indeed, for all but very specialized applications, most software, as we know it, will be replaced by A.I. systems that are trained rather than programmed. In situations where one needs a “simple” program … those programs will, themselves, be generated by an A.I. rather than coded by hand.

Welsh’s argument, which ran earlier this year in the house organ of the Association for Computing Machinery, carried the headline “The End of Programming,” but there’s also a way in which A.I. could mark the beginning of a new kind of programming — one that doesn’t require us to learn code but instead transforms human-language instructions into software. An A.I. “doesn’t care how you program it — it will try to understand what you mean,” Jensen Huang, the chief executive of the chip-making company Nvidia, said in a speech this week at the Computex conference in Taiwan.

He added: “We have closed the digital divide. Everyone is a programmer now — you just have to say something to the computer.”

Wait a second, though — wasn’t coding supposed to be one of the can’t-miss careers of the digital age? In the decades since I puttered around with my Spectrum, computer programming grew from a nerdy hobby into a vocational near-imperative, the one skill to acquire to survive technological dislocation, no matter how absurd or callous-sounding the advice. Joe Biden to coal miners: Learn to code! Twitter trolls to laid-off journalists: Learn to code! Tim Cook to French kids: Apprenez à programmer!

Programming might still be a worthwhile skill to learn, if only as an intellectual exercise, but it would have been silly to think of it as an endeavor insulated from the very automation it was enabling. Over much of the history of computing, coding has been on a path toward increasing simplicity. Once, only the small priesthood of scientists who understood binary bits of 1s or 0s could manipulate computers. Over time, from the development of assembly language through more human-readable languages like C and Python and Java, programming has climbed what computer scientists call increasing levels of abstraction — at each step growing more removed from the electronic guts of computing and more approachable to the people who use them.

A.I. might now be enabling the final layer of abstraction: the level on which you can tell a computer to do something the same way you’d tell another human.

So far, programmers seem to be on board with how A.I. is changing their jobs. GitHub, the coder’s repository owned by Microsoft, surveyed 2,000 programmers last year about how they’re using GitHub’s A.I. coding assistant, Copilot. A majority said Copilot helped them feel less frustrated and more fulfilled in their jobs; 88 percent said it improved their productivity. Researchers at Google found that among the company’s programmers, A.I. reduced “coding iteration time” by 6 percent.

I’ve tried to introduce my two kids to programming the way my dad did for me, but both found it a snooze. Their disinterest in coding has been one of my disappointments as a father, not to mention a source of anxiety that they could be out of step with the future. (I live in Silicon Valley, where kids seem to learn to code before they learn to read.) But now I’m a bit less worried. By the time they’re looking for careers, coding might be as antiquated as my first PC.”


Komentarų nėra: