8 ms·
> He thinks even programming is vulnerable to being automated and reducing the number of available programming jobs. Hmm... Where have I heard this before? >
by greenleafjacob 10y ago
> He thinks even programming is vulnerable to being automated and reducing the number of available programming jobs.
Hmm... Where have I heard this before?
> It is far more likely that the programming occupation will become extinct (through the further development of self-programming techniques) [...] More and more, computers will program themselves; and direction will be given to computers through the mediation of compiling systems that will be completely neutral so far as the content of the decision rules is concerned. (Herbert Simon, 1961) [1]
[1] https://www.princeton.edu/~hos/Mahoney/articles/miscellany/ieeetalk.html https://www.princeton.edu/~hos/Mahoney/articles/miscellany/i...
- djaychela 10y agoWhile such predictions may have been made before, surely as circumstances change it becomes more likely for it to be possible? If you go back 20 years or so, I can remember people confidently predicting that it would be impossible for computers to have human-like vision, and that it was an 'impossible' problem. And look where we are now. I think it's often difficult to appreciate that one's own profession could be replaced by some code, but it's an issue that many areas of the working population will have to deal with in our (and our children's) lifetimes - what has happened with physical work - automation such as robots and machines will happen with the work we do with our minds in many cases.
- alecmuffett 10y agoI get what you're saying, but it's an "all food will be cooked by machines"* argument; yes there are robochefs which can produce doughnuts, noodles, pizzas, etc; but there's an ever-expanding area of innovation and niche-filling that humans are really good at. Ask any Michelin-starred chef, or freelance software engineer. Software engineering is not a zero-sum game where the AIs rise to the exclusion of humans - it's an expanding space. *and then there's the meta: does using an oven qualify as cooked-by-machine?
- pjc50 10y agoComputers don't have general human-level vision, but they can now do certain tasks acceptably well (classification, tracking, SLAM, facial biometrics). The general task of "what's in this image and what does it mean" is still handled pretty badly. We still need manual image moderators, for example, although that's undoubtedly being worked on. The history of what used to be called "CASE" is absolutely full of people promising tools that would automate parts of programming that fail to deliver. The difficult (or at least most time-consuming) parts of programming are all to do with meaning, intent, purpose, communication, and prioritisation. What is likely is that "code assistants" will gradually improve, both in the form of language constraints (Rust borrow checker) and IDE advice (Visual Studio's endless tooltips).
- 60654 10y agoYup, we're riding a wave of improvements in classification and function approximation, which is very exciting. But it makes outsiders think this is all that there is to AI. Meanwhile anything that has to do with the semantics and meaning is a much harder, much longer term problem. And one that's very different from the current fixation on ml.
- simias 10y agoThe way I see it if we manage to reach a level of AI strong enough to replace software engineers it means that basically anything can be automated. It's not just the end of programming, it's basically the end of jobs altogether. The consequences will be tremendous for humanity as a whole. So I'm not really selfishly worried about this. We'll go eventually, but we'll probably be amongst the last to go. By then society will have to figure out how to deal with mass unemployment, it's already a massive issue today and it's not going to improve any time soon.
- donkeyd 10y agoI don't agree, it's not like software engineering is the be-all and end-all of automation. Software engineers usually build something based om some sort of requirement. When the development part is automated, there's still a need for requirements. There will still be a job figuring out what to create in the first place. And then there's the idea that new jobs are created when others disappear. I'm sure there will be jobs in the future that we can't imagine yet. Maybe we'll actually forcibly create new jobs in order to keep people busy.
- visarga 10y agoSoftware is automation: compilers automate a large part of writing new machine code, libraries automate by reusing older code. If it can be automated, it has been automated. We have existed under the pressure of automation since the beginning of our field, we can take it.
- oblio 10y agoI don't know about you, but in a lot of situations when I'm asked to build something I have to actually figure out a lot of those requirements myself, as I go along. Theoretically that role is generally called "business analyst" or "product manager" or "product owner" but you know the difference between theory and practice. If we'd ever reach that point of automation my money's on many programmers just switching to some sort of "business analysis". After all, this job is all about making decisions, tons of micro-decisions.
- 10y ago
- JustSomeNobody 10y ago20 or 30 years ago we were only 5 years from computers doing the work of programmers also. It's just not gonna happen on a large scale. Nothing beyond simple CRUD if that.
- geodel 10y ago> I think it's often difficult to appreciate that one's own profession could be replaced by some code For some reason I had this thought even 15 years back. I used to think once software is written it will continue to run with occasional interference by maintainer. But then people convinced me, look, there is lot of software is to be written so don't worry about losing job. I now think the kind of software I and many others were writing at typical IT company (CRUDy apps) was very immature and buggy. But over 2 decades people have recognized some patterns and made the software run with much less maintenance work. I have noticed 5 years back at my workplace where every weekend there will be firefighting with production issues. But now everything seems stable and generally better. No brand new software was written, no stack was replaced. It was things like upgrading to newer versions of software, more logging, more monitoring, more automation, better release process etc. There used to be ~10 people in team and now there are ~4 people. Everyone who left was supposed to have replacement but no one was hired. The point I am trying to make is, yes, there can be new whizbang features, NoSQL backend with 10 more ppl on team and so on but from business perspective this thing is working fine and just keep it up and running without too many customer issues.
- splike 10y agoI don't believe programmers will be completely replaced by AI for a very very long time. Suppose such an AI exists, one that can write perfect code and get the job done. How do you tell the AI what to code? Any language specific and accurate enough to tell the AI what to code, is in itself a programming language. Someone needs to write in that language, and that person is a programmer. All the AI does is make for a better compiler. Programmers will be (and already are) augmented by technology and AI, but someone has to tell the computer what the goal is.
- baddox 10y agoHow does a programmer at a company know what to code? Generally they're given instructions in a human language. An AI replacement for human coders would likely have to do that same, which likely means you need something very close to a strong AI. And a strong AI by definition can replace nearly every human job.
- splike 10y agoYes I completely agree. People aren't told what to code, they're told what products to build. To go between those two things surely requires an almost general AI. Btw, very tangentially, did you used to work in a startup with a certain zap to its name? I recognise your handle :)
- baddox 10y agoTangentially yes.
- jobigoud 10y agoIt's speculative at this time so I can tell my point of view: you tell it in English. Sometimes it's going to ask for clarifications, other times it's going to get it slightly wrong, or it will have to fill in the missing parts of the specs and take micro-decisions. Just like a human programmer would. I don't think it will write "perfect code" whatever that means. It will write code with its own idiosyncrasies its own writing style, etc.
- fmap 10y ago"Reducing the number of available jobs" is a very reasonable statement. How much time do you spend gluing together ready made components? How different is the latest CRUD app you wrote from the first one you wrote? That's definitely something that could be automated, and it doesn't need "machine learning"... It needs investment in building new infrastructure, which almost nobody invests in because it's difficult to make money from that. On the other hand, automating all of programming is a pipe dream. If you could do that, you could also automate mathematics and by extension most of the sciences...
- erelde 10y agoHonest question to logicians: Is there any proof that it [automating programming, mathematics, scientific method] is or isn't possible? Is there a way to prove or disprove it mathematically?
- fmap 10y agoAnything that humans can do is a priori possible. :) It is merely unlikely to happen while there is anything else left which we can't automate...
- throwaway729 10y ago> Is there any proof that it [automating programming, mathematics, scientific method] is or isn't possible? Decidability results can be useful, but note that it's certainly possible to do automated reasoning for undecidable theories. So decidability results are more useful for predicting the difficulty and determining appropriate approaches than for actually determining anything about the possibility of creating a useful system. E.g. the halting problem is famously undecidable, but there's lot of impressive work on termination checking. Misinterpreting undecidable problems as "impossible problems" is a classic undergrad mistake. > Is there a way to prove or disprove it mathematically? No, not really, unless you can be very specific about the exact subproblem you're interested in. And even then, probably not.
- erelde 10y ago
- throwaway729 10y agoOne way to think about this: Simon was right. There are very few people today programming computers at the level at which Simon programmed them in 1961. After all, FORTRAN was an automatic coding system because of its super high level of abstraction! In this sense -- when Simon's words are taken in their accurate historical context -- Simon was spot-on about self-programming (aka compilers for high level languages mostly replacing hoardes of assembly wranglers). It's just that now the word "self-programming" means something different because we've used all that automation to build ever more complex systems. And that process will continue. Level of abstraction is increased, we figure out how to automate at that level, and then we raise the bar again to tackle ever more challenging problems.