npc.png While you are communicating with your friend you are also changing her neurons. What you are speaking, and the gestures that you are making through your body language are making ‘physical’ changes in her brain. It is weird to first think about it, but it is really happening in her brain and also in your brain simultaneously(through her responses and reactions). If you remove some of these abstraction layers, the conversation is just sending some data and some instructions and in return receiving some data and some instructions.

Similarly, what is programming? Giving data and instructions to the computer and expecting a response. And what is a programming language? A language in which humans can communicate with computers.

So I think we can now say that programming is just conversing with computers. What we get in return is an output from the computer.

All the modern languages and frameworks are just layers of abstractions to make the programmer’s job easy.

Going on a different tangent, the user interface is just another layer of abstraction on top of a programming language that helps non-technical users to communicate with computers.

So whenever you are pressing a button on the keyboard, clicking a mouse, or touching the phone on your screen, you are conversing with the computer by changing the electronic charge on its silicon chip just like you are changing the neurons of your friend. You are having a conversation but not as rich in experience as with humans.

What general AI researchers are doing is making the output from a computer more human-like as much as possible. Until it is impossible for a human to differentiate.