views:

689

answers:

15

Will there be a chance for software automation be the next big thing in future? The time taken for a code that's done by humans can be effectively reduced by automating it by programming tools. But what about the quality of your programs.

+15  A: 

A good amount of code written repeatedly to perform common tasks (such as CRUD web pages, for example) will be largely automated, with some customizations each time. But no, software development will not get fully automated. And for the same reason brain surgery, or painting will never get fully automated. Human creativity cannot be (at least, for a very long time) duplicated by machines.

Click Upvote
I think brain surgery is perfect job for computer, because you should cut with very big precision. painting should also be automated with random generator - 1 on 100 generated picture would be amazing. Programming is hard to automate because its using so many technologies and requested features many times have no sense(brain surgery is always the same and with unknown they could use random number generator).
01
I would like to know which random number has been used by Picasso, Dali, and Van Gogh.
Luc M
@Luc M, the answer is 42
Nathan Koop
01 - You are wrong. Surgery is not the same every time. There are people born with their internal organs on the wrong side all the time, just one of the many examples of how many things can vary inside of the human body.
Sneakyness
"at least, for a very long time"Hopefully not. I would love to see the day machines outsmart humans.
joemoe
A: 

Software creation requires along with other things, intelligence and creativity. It would be very very long time before computers can become intelligent and creative - and so software automation is not going to happen any time soon. I think the closest to SW Automation we have come is code re usability - which is actually code creation. There is much more to software than just writing parts of code!

Manoj
+8  A: 

That's what they said mid-eighties about fourth-generation languages ...

starblue
... and repeated again, again and again.
Theo Lenndorff
+2  A: 
dommer
+2  A: 

This question seems to pop up on a regular basis when some smart feature is hyped as the next big thing.

Obviously a lot of areas will benefit from new, smart features, but that rarely means that a specific task will be eliminated. In most cases it just means, that new levels of abstraction are introduced. I.e. we will be able to work more effectively instead of not having to work at all.

Unless we somehow can come up with the whatever-I-want-compiler, there will always be a large task of mapping changing user requirements to actual systems.

Brian Rasmussen
+2  A: 

A human being is a machine that writes code and charges you money to do so. The advantage of a different machine might be that you don't have to pay it so much; however, the development costs of that machine will be so vast that it will be a long time yet before the price comes down low enough to compete with billions of smart, cheap humans.

Also, none of the other problems associated with software development will be made any easier by such a change of machine; how does the customer explain what they want, and how does the coding machine understand their explanation?

The likely way we will produce such a machine is by copying the human brain genome - far easier than attempting to re-do millions of years of evolution. Unfortunately this will give side-effects such as grouchiness and a desire to be taken seriously as a person, and before long there will be campaigns for "coding-machine rights" to be properly respected. This will push the price up, especially when they start going on strike.

What people seem to want is a button they can press, labeled "Read my mind and make me happy." It would probably be easier to develop a button that when you press it, it modifies your mind so you become happy with with your present situation.

Daniel Earwicker
+1 for the button that modifies your mind.
Chris Lutz
that button is called the "fuck this shit! I give up!" button.
Sneakyness
A: 

Even more programming-related activities will be automated meaning that the amount of "capable" programmers will grow and salaries will shrink. For example, today it's no more possible to earn by doing simple web sites (simple meaning not huge corporate portals) since they are created in just hours by customizing templates. ASP.NET has also lowered the entry level for web developers.

I think if you're not engaged in something unique, maybe a startup or just had luck or connections to find a good place it will be more challenging in the future to get a decent salary in IT and feel like a valued professional.

User
+1  A: 

Software creation is an Art and a Human activity and will never be completely automated.

nils_gate
Good point! Unfortunately less and less people regard software creation as a creative activity.
User
The fact that something requires creativity doesn't make it an Art.
Stephen C
@Stephen: possibly.
nils_gate
If it has been labeled so, it is.
Sneakyness
A: 

I, for one, welcome our AI replacement overlords. I will make an excellent QA drone!

That was humor, in case you missed it.

We're in no danger of being replaced by programs that write programs, at least not in the next 100+ years.

It is an interesting field. The more time we save not producing mundane crap, the more productive and innovative we can be.

There is a check and balance, the easier stuff becomes, the more prone we become to chasing bugs as we use languages in the fashion that they were specified only to find out that its 'expected behavior'.

Until then, hum 'domo arigato' while your driving to the bank to deposit your pay check.

Man, that shows my age.

Tim Post
A: 

In a professional industry it is very hard to see amateurisation as a threat.

We all believe that our software is excellent and our expertise is irreplaceable.

However, in the same way that newspapers did not think bloggers were a threat, software creators may think that drag n drop 'build your own' apps are not a threat.

Currently they are not, but in 10-20 years will this still be the case?

Jon Winstanley
Do not confuse the content with the medium / tool to produce that content. While it is true that with current technology anybody can produce a newspaper (just a web page with some articles) but that does not say anything about it's quality....
AZ
... continuation... A good journalist / writer will hopefully be more capable of producing high quality articles so the blogging phenomenon will not put skilled writers out of work. They will just have to adapt to a new tool of producing and distributing content.
AZ
I agree. However, newspapers are currently going bankrupt. In 10-20 years time there may be a lot less need for programmers. Let's hope not though :)
Jon Winstanley
Developers will be ok, I agree. However the question was about the Industry, which incorporates all the other people in software companies. People who may well be cut out of the loop if automation takes off.
Jon Winstanley
In 10-20 years' time I will be too retired to care. I also think it's folly to try to look that many years ahead in the IT industry. As Gandalf was fond of saying, "Not even the very wise can see all ends."
Quick Joe Smith
+1  A: 

My feeling is that software engineering is in it's infancy. It's like we're bridge builders and with good luck and heartfelt best efforts we've just managed to cross a little stream. Or perhaps we're more like alchemists, on the verge of becoming true chemists.

I don't think we understand what we are doing with software anywhere near well enough to automate it but the levels of abstraction are getting higher.

The real challenges are to understand what people want, will understand and need. How can you automate that?

WW
Indeed. Testing is already automated, and design -> code is already possible to automate; design itself can be partially automated, but requirements engineering (aka deciding what to design) does not lend itself to automation.
hexium
I think the hope is that business/management types can attempt to cut out the middle-man by feeding their requirements into a GUI interface rather than another human being. I don't think they realise just how more clearly they would need to explain their requirements to even the most sophisticated code generation software. Even I as a human struggle to make logical sense of what they want most of the time.
Quick Joe Smith
A: 

Software will never be completely automated, because there are things humans can solve which aren't mathematically solvable by computers. I do foresee much more automation in the future, however.

man
A: 

I've heard the mantra of computers programming themselves for as long as I can remember, and the scene looks roughly the same today as it did when I started. I am tempted to dismiss the idea entirely.

However, this is one perspective that still keeps my attention: the exponential growth of computing power (or technology in general) over time. Where will it lead?

See this compelling graph: http://en.wikipedia.org/wiki/File%3AParadigmShiftsFrr15Events.svg

Then check back in 10 years and see where we stand.

Jay Bazuzi
A: 

I think a lot has already got automated. Let's compare CGI based web development and today developing using a decent framework on a high level programming language. When was the last time you set the "Content-type" header? When was the last time you extracted the request object from env data? Many frameworks even do scaffolding, ORM and CRUD for you.

It is not inconceivable to expect future programming platforms to pre-implement even more functionality that we are coding manually right now. However to say humans will completely be replaced is a bit far fetched. At least for the time being. :)

Srirangan
A: 

Regardless of whether or not it will in the future, I am not supportive of any attempts to do so in any significant way.

Why? Because there are certain types of decisions that should be automated and left to computers to solve, and there are others that, for better or worse, ought to be left to human judgment. I'm a bit of a skeptic of attempts to automating everything hither and yon. Computers lack intuition, but they are very good at rapidly performing simple tasks over and over, so let each play to their strengths.

In today's business world, things change quickly and often, and the computers are always the last ones to be informed of those changes. It's better to leave more decision making in the hands of users.

It's my view that computers facilitate and support human decision making, not replace it.

Quick Joe Smith