8 ms·
I mostly get downvoted for questioning the AI hype, but I never tried it here in HN. The paper is... how I put it mildly... not in the realm of making sense.
by vadimberman 9y ago
I mostly get downvoted for questioning the AI hype, but I never tried it here in HN.
The paper is... how I put it mildly... not in the realm of making sense.
They mention simple question answering (which still stumbles at more complex even if structured questions), then code generators that existed since 1980s (at least) and then pretend that it's the same.
Today's AI is about approximating human judgment from datasets. The knowledge representation part, which is essential for tasks like coding, did not advance much since a decade ago.
This statement, however, takes the cake:
> Some early results from Facebook this year suggest that machines are capable of developing their own more efficient methods of communications
It's about the hype created by technically illiterate journos. (My TechCrunch piece on that: https://techcrunch.com/2017/09/06/the-secret-language-of-chatbots/ https://techcrunch.com/2017/09/06/the-secret-language-of-cha...) Could the authors have done some minimal due diligence before making this kind of claims?
Re subject, if anything, coding today requires much higher level of abstract thinking. Of course, there are tools for coding oompah loompahs too, like WordPress, but there is a lot of human decisions to be made there, too.
- wslh 9y agoI think it is not about AI but about improving our work with new tools. There are zillion developers doing the same thing everyday with the same mistakes and a lot of this work can be encapsulated at different abstraction levels.
- malux85 9y agoI agree, the level of abstractions will just change. We might end up writing something more like formal logic in a declarative language and the AI will then implement and optimise it. Kind of the way a compiler generates optimised machine code from our higher level languages now.
- seanmcdirmid 9y agoDoubtful, debugging would be so hard at that point. I think we’ve already reached peak abstraction where we are right now, and more indirect forms of programming will be increasingly non-viable.
- npgatech 9y agoAlso don’t forget - we still have to write certain routines in Assembly even after so many years. Number of abstraction layers doesn’t mean complete automation.
- zitterbewegung 9y agoGoing from high level to low level code will not go away. But, for the most part you would probably try to get something working and then optimize it. http://wiki.c2.com/?PrematureOptimization http://wiki.c2.com/?PrematureOptimization
- greenhouse_gas 9y ago>I agree, the level of abstractions will just change. We might end up writing something more like formal logic in a declarative language and the AI will then implement and optimise it. We've tried. The problem with layers of abstraction is that they're leaky, and don't always work. For example, simple SQL is easy. Optimizing SQL requires intimate knowledge of your db engine.
- malux85 9y agoYeah, I imagine the formal logic being quite strict, maybe requiring formal verification. It wont stop business-leaky-cases, but it might give us something deterministic that is better than what we have - we dont need perfection, an order of magnitude (or 5) jump in productivity would do...
- majormajor 9y agoI think it's subtly different in a very important way: there are a zillion developers doing almost the same thing everyday with almost the same mistakes. The devil is in the almost. That's where the inability to trivially design a framework to cover all those cases comes in. That's the little subtle differences in business logic, that turn into different flavors of tech debt, that keep people in a job for a long time. Tools and abstractions will improve, but here's the flip side: have you ever worked on a project where you consistently delivered 100% of what the stakeholders asked for, on time, with no negotiation or compromise needed? I haven't, so I think the more we can deliver, the more that will be asked, for quite a while.
- mistahchris 9y agoAgreed. I didn't finish the whole paper, but from what I read it sounded like the author didn't really understand what code generation was actually doing.
- autokad 9y agoits hard to say how fast progress will continue, but I do think by that time we will need substantially less than today, maybe 10% of the work force we have now. 23 years ago it would have took a team many years to do what a single person can put out in a weekend. I dont think AI will be the single biggest driver though, mostly APIs getting more sophisticated. we (those that work in tech) have been lucky that the more efficiently we do something, the more demand out there is for our skills, and there was a ton of pent up demand for tech. I dont know if its the situation I am in, but I already feel like demand for programmers is starting to drop. many engineering jobs is moving data around. just a new type of database administrator
- vadimberman 9y ago> 23 years ago it would have took a team many years to do what a single person can put out in a weekend That's an interesting aspect. I think the advances happened mostly in the areas of UI and intra-system communication. If it's about coding business logic for, say, supply chain or payroll system, the effort is roughly the same, despite bajillions invested in all the purple farts like BizTalk and new fancy functional language paradigms.
- greenhouse_gas 9y ago>23 years ago it would have took a team many years to do what a single person can put out in a weekend Are you sure? How big was the original Unix team? I suspect it's smaller than Microsoft's Windows team is these days. If anything, I think you have larger software teams now than ever before.
- autokad 9y agoyes. you had to pick unix, because there is a lot that people simply do without building from scratch. you can build an ecommerce site or something like pinterest in hours. gem install devise - and your login system is already up and running. you can get a 3d game up fairly quickly with unity. try building an interactive mapping application in 1994, seriously. try implementing a facebook like button in 1994 - you'll be like crap, no ajax, when I want to update the like count the entire page has to update. pages like that did do that, its unacceptable today. projects back then accomplished way less, and were much less refined than the products we expect today. I also think a lot of teams are too large, there is a huge amount of bureaucracy at some companies.
- simplyluke 9y agoYes, I wonder how much time if any people predicting our coming doom and the death of every job ever have spent working with the bleeding edge technology of AI but... it's not much better than AI has been for the past several decades. Data sets have gotten significantly larger, which makes predictive statistics based off it better. The professors I've talked to/studied under who work on AI certainly do not share the same concerns.
- didibus 9y agoI agree with you. That said, I can see how AI could be leveraged to generate implementation of highly precise specs. Code would probably evolve to be more about defining desired behavior, very formally, and AI could possibly build the implementation of it. I suspect this would be at the function level first, or unit, like maybe a set of data and a few functions over the data. You could describe clearly the expected behavior, in a formal language, and then AI could write a highly optimized implementation of it. Now, would this be just as tedious? Would it make coding any faster? Dunno. Maybe the coding of the spec would be almost harder, and a bad spec would still result in bugs in the code.
- vadimberman 9y ago> I can see how AI could be leveraged to generate implementation of highly precise specs Interesting idea - maybe as a draft. But keep in mind that people have been chasing this target for decades. SQL was supposed to be a language so close to English that business people could use it. Wizards and templates were supposed to eliminate the need for hand-coding. 10 years ago I was advised to learn UML or prepare for extinction. All they've achieved is the explosion in the number of programmers.
- jcranmer 9y agoEchoing the ideas of PLDI 2016's keynote speaker: Consider a problem like finding potential solutions to an equation. The way that AI today would solve this problem is to give you an algorithm that tells you "yes there's a solution", or "no there isn't," maybe with a somewhat-bogus quantification of confidence. An SMT solver would instead tell you "yes, here's a satisfying assignment", "no, there's no satisfying assignment", or "I don't know." In other words, existing PL techniques can guarantee that they'll never give you the wrong answer, while all of the guarantees in AI are only probabilistic. At the same time, though, we've been able to make--and deploy on production codebases--significant improvements in compilers. Production software exists to automatically tune BLAS or FFT routines to your particular machine. We can automatically find bugs and generate evil testcases with concolic execution and whitebox fuzz testing. We're nearing the point where a compiler could superoptimize an innermost loop and develop faster--and provably correct--code than a human writing assembly by hand (it's already possible for small loops). Compilers and related tooling are already amazing tools in their power, and we've done stuff that's in many ways as or more impressive than AI, and yet our achievements are largely ignored outside our own small community.
- oldandtired 9y agoIn each case that you have mentioned, the algorithms have been coded by humans. The machine is only following orders it has been given. There have been some examples of machine processes that have come up with new information, but you will find that all the base work is human.