SYMBOLISM ≠ IF ELSE
Many people think that the symbolic development of AI is just a nested IF / ELSE statement. And therefore predictable in advance. Those who think this, are mainly based on the failure of chatbots. Too many IF / ELSE have ended up being right with this technology, and this has considerably hampered symbolic research in AI. And even worse, it put in the minds of even more people that "source code" (in the sense of programming language) is equal to predictable.
Generality is actually rarely true ... It is not. A programming language is made up of IF / ELSE, that's right, and if we abuse it, beware of the consequences. But a programming language makes it possible to do much more than IF / ELSE, and the most important: it is not the programming language which makes the algorithm, it is the nesting of small functionalities in an objective ! If our goals are predictable, the algorithm will be predictable. If the objective we want to develop is precisely unpredictable, the algorithm will necessarily be.
I think we have to break away from predictability. It is not easy, I understand, because we are used to exact programming language, which do exactly what we ask them. So how do you write, WITH an exact programming language, algorithms that are unpredictable, inaccurate? This is the challenge! This is the top step for a developer. Developers need to realize the potential of unpredictability (in the direction of the user experience). They must overcome prejudices and difficulties. Indeed, writing a predictable and stable heart is largely acquired, but to write an unpredictable and stable heart is to think outside the box. And this is another matter. Predictability makes stability easier. The more predictable, the easier it is to stabilize. But unpredictability makes stability more difficult. The more unpredictable it is, the more difficult it is to stabilize. It is partly because of this that symbolic developments have slowed down in recent years in artificial intelligence. Developers must agree to think outside the box to progress, and agree to face the unpredictable. You have to have the contortionist spirit, a real Ninja developer to get there. But it is possible.
How to create an unpredictable algorithm?
So yes, indeed, some source code may be predictable. But the algorithm behind the thought is different. Why ? What’s in this algorithm that makes the difference. Who makes the playing field so unpredictable? The main reason lies behind our functional mental states. Indeed, an internal mental state is a functional state, that is to say which is causally connected or part of (/ or not) to other mental states. Functional implies sequential, and therefore the possibility of representing it in an algorithm. Our functional mental states bring many memories to the surface at any time, and a temporary memory mechanism takes effect on each of these memories. The last memory is always at the top of the pile and brings the others down one floor. We are therefore "biological machines" that never stop stimulating memories, allowing it to rise to the surface of different stack. A real broth that never stops. To reproduce this in a machine is to guarantee unpredictability. Yet our mental states are functional, just like a programming language. We should be predictable ... And yet we are unpredictable! It is the combination IF / ELSE + random + context + stimulation + fusion of thought (we can say the same thing in a different way), which gives this unpredictable effect / action. And the user experience is unprecedented! It is therefore possible to write this algorithm. An algorithm which thinks, according to the previous mental states, according to the last stimulations (raised to the surface). An unpredictable algorithm.
Programming languages are important
It is important to understand that programming languages can advance symbolic research. And that neural networks can bring in the instinct that a programming language will never have, but to write higher artificial intelligence, the minimum brick is the design of these fundamental functional mental states. It will always be easier to code this functional algorithm than to find mental data to train neural networks ... So we can do without neural networks to write this machine, the rest (neural networks), it will do it itself by singularity.