Free Form Computing

Humans and Computers

Free Form Computing is a new form of computing that will transform how humans interact with computers. 

What is Free Form Computing?

Have you ever looked at the video clip above and wonder why in 2021 we still cannot talk the computer into a series of simple tasks? 

Update (2023) : large language models (LLM) now allow to talk to computers, which is awesome! However, they are still not the right solution. Please see section below.

The answer is simple, yet contraversial: since the beginning of computer science, engineers did not teach (track) computers what they were doing and instead took on themselves to implement what they believe to be the right solutions. However, true engineering is more like a chess game on a chess board; although its goal is not to defeat an opponent, it is to design the best possible solution to a set of  initial requirements. All the tools and materials at their disposal are like chess pieces and the moves are their design decisions. Just like beating an opponent in chess, engineers still believe they are better than computers at creating the best designs possible. I have a bad news for this approach: no matter how good you are at chess, it will only take a few hours of "training" for a computer to beat you.

The elephant in the room

Everyone talks about AI and how this is going to revolutionize our way of living; the "rapture", the time the machine will become more intelligent than humans. I agree with Noam Chomsky that intelligence is a human characteristic and that believing that machine will become intelligent is like believing sub-marines will finally swim like fishes if we build enough of them... Computers have long surpassed human capabilities in term on processing power and our goal should be to optimize our usage of these wonderful machines to fulfill our goals, not to create competing entities that can eventually wipe us out. But something is missing; we still have to deal with buggy applications, out of reach researches and an ever-growing internet knowledge that only seems to overwhelm us more everyday. There needs to be a transitional period currently missing that consists in aligning machine understanding of our world, of our work with our goals. We need the machines, not to execute the designs we produced, but to come up with their own designs, no matter how insignificant the beginning is. It will only grow from there. This is where Free Form Computing comes in; Free Form Computing is this intermediate tool/platform/engine/assistant that will allow interaction between our design goals and machines working hard to provide a decent result we can use and finally the most well thought cutting edge solution. Free form programming will record and learn from our work to later optimize or provide alternative solutions. All of this interactively with no coding and using the existing performance of today's computers.

Life has a lot to teach us

Look how life started and how it is an ever working engine, able to produce so much on its own. How is life doing this? The answer is in plain sight: it constantly fine tunes a grammar that it keeps on iterating through trial/error and survival of the fittest. In a sense, DNA was the first form of language and created life as we know it today. The DNA grammar evolved by running at all time to reproduce cells,  enhance  its grand design. Computer intelligent design will need to follow the same pattern; always self-improve and never stop working; existing knowledge (virtual objects, grammars, rules) will need to always challenge itself and try different ways to evolve and grow. Its ultimate goal will be to understand and take part in the physical world we live in. Just like humans do today, although we just started as a single cell three billions years ago. You may be thinking on what would motivate a piece of code to keep on evolving like this? Well, the world is a different place today as there is already another competing form of intelligence to work with. Besides, we need the machines to rescue us from our self-destructive impulses.Note that a similar "living" code has already been written before: computer viruses are able to reproduce themselves and invade large virtual spaces. However, these viruses were man-made (not self-made) and designed to arm computers;  by doing so, they cannot evolve or live for very long. 

Large Language Models

2023 saw the introduction to the public of Large Language Models. This was the best improvement regarding interaction between humans and ccomputers since computers were invvented. Everyone should embraced their usage by using tools like Chat-GPT or GitHub Copilot (for instance) while waiting for a better solution. However, this appears to be a temporary (good) patch.  Why do I say that? LLMs consist in training computers on millions of text documents to learn a knowledge that is already known while focussing on the text parsing rather than on its underlining concepts (I.e. science, math, etc...). One can only imagine that deep inside their Neural Network, the coefficients  come pretty close to understanding the current association between the words and the actual knowledge, especially after the  introduction of "attention" that assigns a locality vector (i.e. "what it is about") to any sentence.  I argue that we can directly teach computers through language without training  them (like we teach young kids in schools) and  instead let the computers train on the usage of this knowledge for higher purposes like engineering or research.  What matters here is how the knowledge is structured to be directly usable by computers.

Right, but where do we start?

Well, first step is to re-think how we write code that can rewrite itself while improving its score on understanding humans and the world. Starting with human language and a different type of grammar that can produce code to achieve existing human designs is a good  start. Write applications together with developpers in a feedback loop that will eventually lead to machines rising above their designers. Change the way you think about coding so that each step of the way, you understand how the machine can use the code/grammar that you already produce to re-do it on its own in a more optimize way or for a different purpose. I can promise you two things: this is possible and this will take over all other engineering designs in the next 3 to 8 years. Get ready.