As a teenager in the mid-1990s, I had access to a small programmable micro-computer that was shaped like a rectangle the size of two modern mobile phones placed side by side. It was like a calculator with a keyboard and it was programmed using the GW-BASIC language. I also had access to books about GW-BASIC programming.

I remember writing several small programs with it, including one that asked for the user’s year of birth and calculated their age. However, I had to update the program every year to keep the answer accurate. These small programs were like playing games, as I had no access to TikTok or video games back then.

One day, I decided to challenge myself and write a more complex program that could calculate the factorial of a number (n). In mathematics, it’s written “n!”. I learned it in school.

The formula goes more or less like this: n! = n x (n-1) x (n-2)… x (n-x), until (n-x) reaches the value of 1. It took me days, if not weeks, of trial and error, but I eventually figured it out.

That was the day, about 25 years ago, I realized that I was able to communicate with a machine and make myself understood. I realized something I’ve never forgotten: Yes I was a human being able to communicate with a machine and make myself understood by it!

I was interested in machines, science, biology, psychology, philosophy, etc. I’ve always asked myself: What are all the steps, this small machine has to do to read my program written in Latin letters and symbols, make it work within its electric circuits, and then display correct answers to requests typed by humans?

Today I’m still amazed by the same question. Things were too complex. You needed a huge load of knowledge and expertise to be able to understand in detail how that small thing could translate GW-BASIC, which is a language, into a practical thing in the real world, i.e. reading inputs and displaying correct answers.

Here I am today, asking a machine to write a program for another machine. I just went and asked ChatGPT to write that program I was trying to formulate in GW-BASIC, and it did it in a second.

It’s a step forward in narrowing the gap between human natural language and machine language. Today’s machine can understand what you say, but it will also look you in the eye and understand how you feel. Then, once we will be able to understand a bit more the workings of the brain, the machine will be able to understand what you want and what you think about. That’s how the slow merge between humans and machines is taking place. Soon we will be able to think like an AI, write like an AI, play chess like an AI… Not necessarily because our brain will be genetically different, but because our brain will be so connected with the machine, that it will be hard to draw the line between the natural brain and the brain-machine. The science fiction and intelligence of today cannot even imagine what the world will look like in the future. It will be a different civilization and a different thing that we may maybe call now “post-humanity”.

Me: Calculate 5!

ChatGPT: 120

Me: How did you calculate it?

GPT: 5! is calculated as 5 x 4 x 3 x 2 x 1 = 120. This is called the factorial of 5, and it represents the product of all positive integers less than or equal to 5.

Me: Excellent! Do you know how to program in GW-BASIC language?

GPT: Yes, I am familiar with GW-BASIC language. It was a popular interpreted language developed by Microsoft in the 1980s for use on early IBM-compatible personal computers. It was known for its simple syntax and was widely used for early computer programming education.

Me: So, could you write me a GW-BASIC program that can calculate the factorial of 5. With A as an input and B as the output, with B=A!

GPT: Sure! Here is a GW-BASIC program to calculate the factorial of a number:
10 INPUT “Enter a number:”;A
20 B=1
30 FOR I=1 TO A
40 B=B*I
60 PRINT A;”!=”;B
70 END

This program prompts the user to enter a number (A) on line 10, then initializes a variable B to 1 on line 20. The program then uses a FOR loop to iterate from 1 to A on lines 30-50, and multiplies the value of B by the current value of I on each iteration. Finally, on line 60, the program prints the result of the calculation by displaying A and B, separated by “!=”.

Me: Thank you.