Software Creation Mystery - http://softwarecreation.org

Archive for the ‘AI’ Category

Can Computers Beat Human Programmers? Part 5. Future of human programmers

Part 1. Gaining processing power
Part 2. Becoming intelligent
Part 3. Interacting with humans
Part 4. Building useful programs
Part 5. Future of human programmers

Computers don’t retire, overreact and complain. They could in minutes get all the knowledge accumulated by other computers. They could work 24 hours without making stupid mistakes. They make more and more human jobs obsolete. It is inevitable, computers will replace programmers in many areas. Even more, if Strong AI, capable of reasoning and understanding meaning, will appear, programming as a profession will be almost eliminated (at least coding part). Customers will be able to describe their needs directly to a computer. Computer AI will be translating these specifications to machine code (and stronger AI will require less formal specifications) and relentlessly building the software system.

Does it mean that that at the some point in the future software developers will no longer be needed? It could be true, if customers could specify exactly what they need and can effectively collaborate with AI to build the system. But things are not so simple, especially with non-trivial problems and humans (assuming that customers and users will be still humans). There are three roles that software specialists could play in the future even with powerful computer programming AI.

Read full post >>

Can Computers Beat Human Programmers? Part 4. Building useful programs

Part 1. Gaining processing power
Part 2. Becoming intelligent
Part 3. Interacting with humans
Part 4. Building useful programs
Part 5. Future of human programmers

Is it easy to build useful programs for humans? Failure rates and dissatisfaction with the software projects (more than 50% still fails or challenged) show that it is not quite easy task. Can AI help to build more successful projects, compete and eventually replace human programmers?

From ideas to specifications

Human programmers face objective challenges in building software systems, which AI will face in the future:

  1. It is difficult to understand what people need.
  2. Customer’s ideas are shifting, once they start using the real system and experience all the consequences and effects for interacting with it in the context of their problems.
  3. Customer’s needs are changing constantly reflecting outside business and company trends, situation and problems.

Read full post >>

Can Computers Beat Human Programmers? Part 3. Interacting with humans

Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest. – Isaac Asimov

Part 1. Gaining processing power
Part 2. Becoming intelligent
Part 3. Interacting with humans
Part 4. Building useful programs
Part 5. Future of human programmers

Even a super intelligent computer needs input from humans to build a program. It is great if you are a scientist or a computer professional and can provide mathematical models or algorithms. But what if you don’t know how to specify what you need from the program? Can computer really understand us? Can people trust computers to build a correct system for their needs? Will be communication with computer comfortable and effective?

We should consider four important software creation areas to answer these questions:

  1. Understanding – can computer comprehend our language and complex ideas?
  2. Engagement – can computer effectively involve us in communication?
  3. Guiding – can computer help us to understand our needs, direct our thinking and retrieve useful information?
  4. Trust – can we trust that computer will follow our human interests, obey rules and don’t do harm?

1. Understanding

Alan Turing offered the first test for computer intelligence – a computer is intelligent if you cannot distinguish in conversation this computer from human (John Searle argues in his Chinese room experiment that it is not enough). Computer should posses intelligence, master language and understand meaning of words to pass the test.

Read full post >>

Can Computers Beat Human Programmers? Part 2. Becoming intelligent

Intelligence is what you use when you don’t know what to do. – Jean Piaget

Part 1. Gaining processing power
Part 2. Becoming intelligent
Part 3. Interacting with humans
Part 4. Building useful programs
Part 5. Future of human programmers

Computers blindly follow our instructions. They are much faster than humans, but still computers are stupid things dependent on our algorithms and knowledge how to solve problems.
Even huge processing power is not enough to start programming. Non-trivial solutions require understanding of ideas, problem solving, learning from experience and much more – everything what we can define as intelligence. Can computers become smarter than human programmers?

What intelligence is required for building programs?

Read full post >>

Can Computers Beat Human Programmers? Part 1. Gaining processing power

Part 1. Gaining processing power
Part 2. Becoming intelligent
Part 3. Interacting with humans
Part 4. Building useful programs
Part 5. Future of human programmers


Word Freak

Can computers compete with us, human programmers, in the near future? The short answer is yes – if computers will gain enough processing power, become intelligent, could effectively interact with humans, build useful programs and… still be interested to serve humans.

Computers take over more and more people jobs and areas considered exclusively human. Deep Blue beat the human best chess champion Garry Kasparov, it is not possible to win checkers against computers, they create drugs, carry 70 % of foreign currency trades and will do 50% of stock trades in 2010.

But to become better than a human programmer, a computer should compete with very powerful processing machine – our brains.

Read full post >>

Software Creation Mystery - http://softwarecreation.org
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .