Why a software cannot be intelligent?

Gurvinder Pal SinghComputer Scientists
CERTIFIED EXPERT
Published:
Yes, you heard it right! In this article, I am going to explain why it is so (in as many ways as possible). Now, if you are a IT Project Manager or a Technology Architect who has used the term 'building an intelligence in this software' with the client or in front of a developer, and you get pissed off easily when someone challenges your usage of IT terms, then you need to quit reading right now.

What is intelligence?
Intelligence is the ability to take a decision in the unseen, unfamiliar, and unvisited circumstances. How good/effective your decision is, decides how intelligent you are. For example, consider the situation of joining a new office at a new place. You haven't asked for the directions to the office and only know the address of the office. You need to make some decisions now which includes, from where to take the bus, how long to wait for the bus, which bus to take, how much cash/change to keep with yourself, should I be consulting someone for the information, from whom to check this information, etc. There will be tons of decision you will take when you will be in a new situation. Most likely your decisions will be based on not only HOW, but it will include WHY and WHAT too. Next time you will have fewer decisions to make, or may even some new ones like should I take taxi instead to save time, is there another bus that can take me to my destination in lesser time, etc.

How a software behaves?
Your application software is nothing but a bunch of instructions which gets executed by an engine. You can make your software simulate decision making by putting some if-else conditions to check for the data available to it, but that is all you can do with it. For checking a new KIND of situation/condition, you'll have to update the code/configuration. Software cannot take a decision on its own, it’s your hardwired logic programmed into the code that make your software do what it does. You can only make your application LOOK flexible in terms of different decisions it is making through a FINITE set of ifs-elses, but that also only to an extent.

Does software evolve?
A software represents implementation of logic. It is a logic of how a functionality will work in the system. By definition logic only represents HOW. Therefore, by looking at a software one can only make out how a certain logic is implemented, not WHY or WHAT. Which is why, in most cases you will need to know what functionality a code is implementing to understand the code. This is precisely the reason why you cannot make a generic software that debug the code on its own. Since you will have to tell that software first about what is the right functionality. No finite sets of configuration and if-elses can make it debug a code debug a WHY or WHAT error. It can at max debug only HOW errors. So, this myth of software evolving as per the situation is a terrible myth.

Major Problem! How will you debug an intelligent software?
If you are still up for the challenge, then think about a software who actually have a mind of its own. It is taking decisions on its own. Now, you would have met a lot of misbehaving and uncontrollable teens who think that whatever they think and do is right. Imagine that your software too has a brain of its own, and now it is no longer functioning the way you want it to. In normal softwares, you can do the dry run of the logic and change what is not right. However, this intelligent software is more than a normal machine, it may be taking a decision that it think is the right one. It is no longer dependent on logic now and he can even question your decisions too since it can do the 'WHY' and 'WHAT' part also. Scary thing is - it may not let you debug itself.

Hopefully, this will clear you head and ease out various doubts and questions. I know that this word 'Intelligence' looks great on PPTs and works as a marketing gimmick. Please feel free to post your questions, doubts, concerns etc. on this controversial topic. If you have ever claimed to make something intelligent (not simulation of intelligence, which is still quite honest and reasonable), please feel free to post it here. I'll try to help you understand why it is not so.
0
3,191 Views
Gurvinder Pal SinghComputer Scientists
CERTIFIED EXPERT

Comments (2)

CERTIFIED EXPERT

Commented:
Hi Gurvinder

Thank you for taking the time to write a though provoking article about this topic. Nothing you have stated is untrue but I think you are taking a very wide view of 'intelligence' and pointing out, quite rightly, that current software cannot emulate that.

I would be interested to know how you would separate 'standard' software that operates in the manner you describe from 'intelligent software' such as that which adapts its function over time - eg: Amazon tracking your buying habits and recommending a new book or phone apps that monitor locations and establish alternate commute routes. I agree that these are not 'intelligent' by your definition but I can also see why a marketing user might want to find a word for such behaviour that the public would understand. Also where do you see fuzzy logic, genetic algorithms and the recent news article where a robot demonstrated 'self awareness' when asked a question recently?

Your point about debugging intelligent software is an interesting one, but if we actually managed to create a self aware, thinking application I doubt that debugging it would be the first concern - I'd be too busy collecting money and plaudits :)

Reg
Gurvinder Pal SinghComputer Scientists
CERTIFIED EXPERT

Author

Commented:
@regmigrant, thanks for your comment,

I would be interested to know how you would separate 'standard' software that operates in the manner you describe from 'intelligent software' such as that which adapts its function over time - eg: Amazon tracking your buying habits and recommending a new book or phone apps that monitor locations and establish alternate commute routes.

As long as Amazon has coded the software to take specific decisions based on specific buying patterns (their own interpretation of buying habits), it is just like any other program which is hardwired to take specific steps rather than think on its own. It is not intelligence since the code is adapting to habits just the function is based on how it has been coded.

I agree that these are not 'intelligent' by your definition but I can also see why a marketing user might want to find a word for such behaviour that the public would understand

Totally get the marketing compulsions and its appeal in sales pitches, but should be kept out of engineering discussions. It could be confusing as hell for the developer and may end up complicating the matter more than required or intended.

Also where do you see fuzzy logic, genetic algorithms and the recent news article where a robot demonstrated 'self awareness' when asked a question recently?

These implementations (assuming they are implemented) to make software's decision making as close as possible to real life's decision making. Would like to see that 'self-awareness' video of the robot, thought :)

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.