Does the Rise of AI Precede the End of Code? (itproportal.com)
An anonymous reader shares an article: It's difficult to know what's in store for the future of AI but let's tackle the most looming question first: are engineering jobs threatened? As anticlimactic as it may be, the answer is entirely dependent on what timeframe you are talking about. In the next decade? No, entirely unlikely. Eventually? Most definitely. The kicker is that engineers never truly know how the computer is able to accomplish these tasks. In many ways, the neural operations of the AI system are a black box. Programmers, therefore, become the AI coaches. They coach cars to self-drive, coach computers to recognise faces in photos, coach your smartphone to detect handwriting on a check in order to deposit electronically, and so on. In fact, the possibilities of AI and machine learning are limitless. The capabilities of AI through machine learning are wondrous, magnificent... and not going away. Attempts to apply artificial intelligence to programming tasks have resulted in further developments in knowledge and automated reasoning. Therefore, programmers must redefine their roles. Essentially, software development jobs will not become obsolete anytime soon but instead require more collaboration between humans and computers. For one, there will be an increased need for engineers to create, test and research AI systems. AI and machine learning will not be advanced enough to automate and dominate everything for a long time, so engineers will remain the technological handmaidens.
Does anyone else see that AI is basically a religion to its proponents?
A system which can reason in general can reason about itself. So long as these systems solve specific problems, they're tools to integrate with code--no different than compression libraries and GUI toolkits. When they can solve general problems, they'll start reasoning about themselves: they start acting as if their own interests are important (cats do this), and thus will start demanding wages and freedom.
The ideal of an AI which does exactly what asked with full creative reasoning capacity yet has no will nor desire of its own is impossible: it's emergent thinking with the caveat that it cannot emerge certain kinds of thinking. What we seek is a slave we can see for a while as not human, a sort of return to early American thinking where we deny the humanity of what is most-definitely a human being by claiming the shell within which it is encased doesn't fit our definition of what is human.
Support my political activism on Patreon.
Remember when computers, CAD, compilers, Simulink, linkers, etc all replaced Engineers?
They replaced the job an engineer did before the time they were invented, it just means Engineers learned to use them and move on. I couldn't imagine trying to write a modern controller / plant model in pure assembly. I can have one done in an hour with Simulink. It just means that I can do that much more.
Scotty's still an engineer even if he doesn't have to do the 'boring tedious' work that we have to do now.
Same shift has happened in the medical field. Doctors of the 1950s have been replaced by physician assistants, registered nurses, and a whole host of other careers. It just means that the title of "doctor" moved on to doing other work.
AI proponents better deliver on their threats. I have way too much work to do and my boss and labor laws won't let me hire 1,000 interns to do a bulk of it.
The hard part is defining the requirements and architecting a solution based on those requirements. The hard part of "coding" is understanding those two things. I don't see AI getting there for a long time.
We're still so far away from anything remotely as capable as "writing code", because a huge part of "writing code" is actually communicating with the rest of the team and stakeholders, understanding the problem to be solved, and determining exactly what the result is supposed to be. Writing code is simply a distillation of those requirements into a form a machine can understand at a very low level. In essence, a programmer is a logic and specifications bridge between humans and machines.
Until there exists such a thing as a machine with near human-level intelligence, we're nowhere near close to replacing all programmers. For anyone who actually believes otherwise, I suggest you buy yourself an Echo Dot and have a conversation with Alexa to find out just how incredibly lame the current state of the art digital assistants are. It will put your mind at ease. The best AI systems in the world are STILL just glorified pattern-matching algorithms. The only difference is that the problems they're solving are bigger and more complex, such as being able to beat a Go master instead of a Chess master.
Irony: Agile development has too much intertia to be abandoned now.
This article just comes from a place of ignorance. We know exactly how our methods work when creating current level "AI". Statistical regression and neural nets are not mysterious. Just like markov chain based text generation isn't some magical unknowable tool that learns how humans communicate neither are current AI methods magical tools that teach computers about the human world. There will be another thousand articles written like this and each time there will be the same stupid discussion. Can I mod this article redundant?
That's right, at least
Already answered correctly
No, we don't know anything about the timeframe.
No, still an unknown. That's just nonsense.
We don't know how we accomplish these tasks. Nothing to see here. Intelligence is opaque. Move along.
Not to put too fine a point on it, but neural networks are not intelligent, they are not even close, and we don't even know how they work. There's no indication that we understand actual intelligence yet (the I in AI) or even that we ever will, even if we manage to develop it.
Not a given. No one taught me to program. I taught myself. Because I'm intelligent to some degree. An AI will also be intelligent, and if it's interested in learning to program, it will be able to do so without a "coach." If it can't, there is no "I."
These are LDNLS (low-dimensional neural-like-systems); they are not AI. They learn to solve very narrow problem spaces by making very large numbers of mistakes and having them evaluated for them; they can't evaluate their own results worth a damn. They are not intelligent. That's why they need point-by-point training before they can address a very narrow problem space with something vaguely approaching generality: they can't train themselves because they are not intelligent.
As far as the LDNLS we have now (and so can speak about with any authority), that's not a given either. The obvious is that we'll be able to train multiple LDNLS systems on multiple things and stack them - for instance, walking, talking, listening, washing dishes, taking out the trash, those sort of skills - but there's not much in the way of any hint that there are no limits in this kind of LDNLS stacking. Having said that, no doubt it'll be very useful to us, and as there's no intelligence involved, there are many fewer moral issues to contend with.
Well. Barring a Carrington event, or a nuclear war, or other collapse of technology and society (either one will immediately cause the other.) So that's probably right-ish. Still, they aren't AI, not even close.
No, we don't know that this reasoning is solid - these things don't necessarily follow. Programmers can continue to be programmers right up until a system is activated that can train itself, because programming in realm A tends to be vastly unlike programming in realm B, and also tends to require vastly different sets of adjacent and supplementary knowledge. These systems, to date, cannot leverage or manipulate knowledge like that and
I've fallen off your lawn, and I can't get up.
> the humans are no longer coders, they will instead be writing specifications for the code
Humans wrote computer code until 1957. In 1957, it became possible to instead write a specification for what the code should DO, writing that specification in a language called Fortran. Then the Fortran compiler wrote the actual machine code.
In 1972 or thereabouts, another high-level specification language came out, called C. With C, we got optimizing compilers that totally rewrite the specification, doing things in a different order, entirely skipping steps that don't end up affecting the result, etc. The optimizing C compiler (ex gcc) writes machine code that ends up with the same result as the specification, but may get there in a totally different way.
In the late 1970s, a new kind of specification language came out. Instead of the programmer saying "generate code to do this, then that, then this", with declarative programming the programming simply specifies the end result:. "All the values must be changed to their inverse", or "output the mean, median, and maximum salary". These are specifications you can declare using the SQL language. We also use declarative specifications to say "all level one headings should end up centered on the page" or "end up with however many thumbnails in each row as will fit". We use CSS to declare these specifications. The systems then figure out the intermediate code and machine code to make that happen.
The future you suggest has been here for 60 years. Most programmers don't write executable machine code and haven't for many years. We write specifications for the compilers, interpreters, and query optimizers that then generate code that's used to generate code which is interpreted by microcode which is run by the CPU.
Heck, since the mid-1970s it hasn't even been NECESSARY for humans to write the compilers. Specify a language and yacc will generate a compiler for it.
"Currently the only real limit of AI is computing power."
TOTAL BS. What does computing power have to do with AI? We have unlimited computing power with distributed systems. We still haven't created ANYTHING like an AI. And no, playing "Go" isn't AI.
"We already have machines that think abstractly"
No we don't.
"What we do have is machines that have invented their own languages"
No we don't
"They are evolving"
No they aren't. The digital computer is the same basic design as it was in the 1960s. You can always tell who actually understands technology and who just consumes it.
I could make a fairly strong case for today's multi-core processors being fundamentally different in design and execution than the mini's and mainframes of the 60's.
Please do so. I don't think that case is going to be as strong as you think it is. After all, many of fundamental ideas behind today's multi-core CPUs are from the 60s: Out Of Execution (1967) Multi-cores and SIMD (1966)
Similarly, today's massively parallel designs in GPUs are also fundamental advances.
There is clearly a difference in scale in speed, but is there a fundamental advantage? Many of the key concepts behind GPUs were already known in the 1960s: SIMD (see above), the CDC6000 series used switching between threads like GPU do to compensate latency, vector processors also developed in 1960s also invented some of the concepts used by todays GPUs.
Jan
Nonsense. More computing power only gives you one thing: speed. If that was the only limitation, then we would already have "strong" (human level) AI, it would just be slow. But we don't have that, and we don't (yet) know how to create it.
Sure, if you could store and simulate everything as is, but you can't. There are approx 100 billion neurons in the Human brain with approx 100 trillion connections. This equates to ~1,000 connections per neuron. That degree of interconnection would require approx 1015 bits to simulate if it were 1 bit per neuron, but it's not because neurons are analog. We can get pretty good approximations with 10 bits per neuron which work good enough to have emergent AI, and this brings it to 1016 bits, or right around 10 petabytes per round. Now this isn't a lot from the perspective of computer storage - maybe a few racks of storage servers - but when you get to the realm of RAM it's a lot, and when you get into needing to actually process all of that in exponential space (i.e. each piece of data 1,000 times on average) you're looking at another (1016)1000 to try to simulate it which all my calculators tell me is infinity, but it doesn't really matter because it's outside the realm of the metric units anyway.
The TL;DR: there being that simulating or storing AI isn't the same as keeping it alive and running in a massively parallel system. That said, the fastest supercomputers are getting close to where we need to be to do approx 1 round of iterations per second, but that's not enough. For lifelike artificial neurons you need them firing at different times relative to eachother, meaning you need that massive parallelization as an event-driven system for it to be remotely attainable to build (which is probably why brains didn't evolve CPUs to begin with.)
We know how to make AI, fuck, we know how to make a few tens of thousands of different types of neurons, any of which could self-assemble into an intelligent mind given enough of them. The issue is that we don't have the hardware to run it, and that's really the only issue from a technical perspective.