3 ms·
The idea that "automating away programmers" == "building some ridiculous tool that allows the pointy-haired boss to program with 'plain English'" is a strawman.
by glangdale 10y ago
The idea that "automating away programmers" == "building some ridiculous tool that allows the pointy-haired boss to program with 'plain English'" is a strawman.
Programmers don't have to be fully automated away for automation to happen. Suppose I have a "Really Good Compiler" for a "Pretty Nice Language" (let's not start a language war by discussing which language is closest to this, or which exact features are in it). This "Really Good Compiler" has a great optimizer, the "Pretty Nice Language" has a garbage collector that's really good for the task, etc. The PNL standard library has a huge collection of well-tuned data structures and a generics system that actually works etc. The PNL toolchain also has a ton of really effective static and dynamic analysis tools to find lots of bugs that its type system didn't.
Meanwhile the folks down the hall in a hypothetical competing startup are programming in C using pcc, like they just teleported from the 80s.
How many staff do they need to do the same job, even assuming that they are people just as smart as we are (despite their strange choice of tools?)
We have managed to be largely blind to this because the amount of work that's available to programmers has expanded hugely to compensate for increased productivity - plus our tools aren't quite as nice as the hypothetical I described.
On a related note, I found a great code sequence for something I'd been thinking about for a while, by specifying what the sequence was meant to do, and specifying the semantics of a few SIMD instructions, and turning Z3 loose. Not quite ready to fire myself though.
- learc83 10y ago>We have managed to be largely blind to this because the amount of work that's available to programmers has expanded hugely to compensate for increased productivity The increased complexity allowed by increasing levels of abstraction is a huge part of that increase in demand. When we move up the abstraction chain we can generally build more complex systems. People then come up with new ways to use the increased capabilities to solve new problems. I don't think this is going to stop unless we develop strong AI.
- mseebach 10y agoQuoting PG used to be all the rage around here, but it seems to have gone somewhat out of fashion. Anyway, he basically credits the power of Lisp with the success of Viaweb, in exactly the way you suggest: If other companies didn't want to use Lisp, so much the better. It might give us a technological edge, and we needed all the help we could get. When we started Viaweb, we had no experience in business. We didn't know anything about marketing, or hiring people, or raising money, or getting customers. Neither of us had ever even had what you would call a real job. The only thing we were good at was writing software. We hoped that would save us. Any advantage we could get in the software department, we would take. http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html
- doktrin 10y ago> We have managed to be largely blind to this because the amount of work that's available to programmers has expanded hugely to compensate for increased productivity - plus our tools aren't quite as nice as the hypothetical I described. I don't know if 'blind' is the right word since this topic gets discussed on the regular both here on HN as well as on more general programming forums like reddit. Anyhow, I certainly agree that programming as a career the way we know it today is predicated on the notion that the potential scope of work available continues to increase. Why wouldn't it, though? IMO we've barely begun scratching the surface of what's possible with computation technology. Will productivity really outpace the amount of available work by that much, that fast? Seems weird, but I'm no futurist so maybe I'm just being naive.