The 9 flaws of algorithmics

Algorithmics, a far too old technique !

Algorithmics is the programming technique adopted by computer scientists since the birth of computers, in the 1950s. A technique already exploited by programmable Jacquard looms, with punched cards, from the end of the 18th century:

Le métier Jacquard : une invention révolutionnaire

This is to say the fantastic progress that computing has offered us in two centuries! It is by far the most immobile « science » (because it is not a science) in our history. In the Middle Ages we progressed faster (for example to move from the technology of Romanesque churches to that of Gothic cathedrals). It really takes a lot of ill will to not invent anything for so long! Know that this lack of progress is voluntary. And I know something about it, who has suffered from it for over thirty years. The world of computer scientists is radically against progress … when it comes to automating their profession! As a result, the entire planet suffers and falls behind.

Sadly, our society needs automation, and until more efficient technology is brought to the attention of the public our computer science friends will continue to hurt.

To realize the ridiculousness of the situation, we are going to review the shortcomings of the current technique of programming, called « procedural » or algorithmic. You won’t find the following list anywhere! You have to be a non-computer scientist to dare to present it publicly. Faced with each flaw, I put Reasoning Artificial Intelligence in parallel (Maieutics) so that you can better measure how far behind we are. Computer scientists are well aware of their ridiculousness in software design and scoff at it themselves in this well-known comic:

This is explained by the fact that the user does not have control over the design of the word processing software, neither before nor after, as the cartoon above shows: the client is only involved. at the beginning and at the end. Between the two he has no say.

Here is the list of these nine faults:

  • The procedural requires the presence of an intermediary
  • it represents knowledge in an illegible way for the common man
  • you must code all the cases that arise without forgetting a single one
  • the programmer does a crazy job … and he’s proud of it
  • during all the development, the expert does not see his program!
  • we do not touch the program once written
  • impossible to certify the reliability of the written program (Goedel’s theorem)
  • cannot modify a program in use
  • impossible to tackle certain fields of application

1st flaw: The procedural requires the presence of an intermediary

Between the expert who has the knowledge to put into the program and the users who will use the program, there is an intermediary: the programmer. He is responsible for writing the program. It is he – or someone else – who will subsequently be responsible for making it evolve. As you have to explain everything to him, it is long and tedious. Either way, he cannot understand an expertise that took years to be acquired by the expert. This does not prevent him, through an understandable self-esteem, from claiming the opposite, which has the effect of frequently poisoning IT-user service relationships …

With La Maïeutique, it is the expert who writes the application and makes it evolve himself, in collaboration with the users. Once completed, he hands it over to the IT department for integration into the information system. The weight of error in software now rests with the experts (who cope with it very well …). IT specialists are freed from tensions with user services. They become “normal” collaborators speaking the language of all.

2nd flaw: The procedural represents knowledge in an illegible way for ordinary people

A program is encrypted « code » pages in hermetic language that can only be understood after extensive training. Even the programmer is confused when he puts his nose in a program he wrote several months ago … And I’m not talking about the unfortunate man who has to dive back into a program written by another!

La Maïeutique presents a know-how AND a human knowledge in everyday language, which she knows how to « run » as well-written procedural. With it, the program is reduced to a small, stupid database: a « knowledge base ». This is something infinitely more concise and clear than procedural.

74 / 5000

Résultats de traduction

3rd flaw: all the cases that arise must be coded

What does the expert do when he works with his knowledge: he reasons on THE case that arises and he solves it. Then he forgets it and moves on to another or something else. It’s not tiring. What does the programmer do once he understands the expert’s knowledge to put into the program: he reasons on all the cases that may arise in the program and he codes each of them! When you know that there may be hundreds or thousands, sometimes many more, you understand that writing a program takes a long time.

What does the Pandora-type expert system do? He reasons on THE case presented to him, he solves it and he forgets it. Exactly like the expert. Why would the programmer go out of his way to imagine and then create a procedure dealing with all possible cases if the program can immediately invent the solution for each case?

4th flaw: the programmer does a crazy job … and he is proud of it

Not only is the poor programmer obliged to understand an expertise which is not his own, not only he must imagine all the possible cases, but also he must follow a complex procedure if he wants to be sure that his program works and is accepted. : analysis, flowchart, coding, tests / modifications. Plus all the steps necessary for the final integration of the new program into the IT system: presentation of the program to users, consideration of user modification requests, modifications to the flowchart, re-coding, re-tests / modifications, re-presentations of the program to users, etc. I say « etc. Because the back and forth between the dissatisfied user of the program and the programmer’s office can be counted in the tens. And I am not talking about the work of updating programs, an even more complex task which takes an enormous amount of time. This is because the programmer has to reread code pages that he no longer remembers and, worse, that often he did not write himself. This re-programming is a very stressful task for him: it is a question of modifying a tool now made reliable and commonly used by people who cannot do without it and he knows in advance that he will deliver it to them with bugs… Hello atmosphere!

That said, he is aware that no one can put his nose into such work, that users do not understand anything and that it is therefore essential … The evolution of computer languages over time is a tangible sign that ‘In computing, power is not in the hands of those who use it. Everything indicates that it takes longer today than yesterday to develop a program and that it keeps getting worse. A language like Java, very recent, acclaimed by the community of computer scientists to the point that the majority of new projects are planned with it, requires more time in development than the older “C” language! The business user departments are well aware of this drift and are putting more and more pressure to control developments themselves. They still need to be kept informed of the progress made for them …

With la Maïeutique, the computer is already doing 50% of the work, which is a guarantee of speed and reliability. The expert only has to reflect on his know-how, not on the future program. He and his users see the program unfolding before their eyes. They can correct as and when necessary. There is no longer any need for the presence of the programmer and all the steps imposed by The procedural. It goes at least 10 times faster. Updating programs is even easier than developing, as the knowledge is already structured in a number of identified pages. Except that there, it is no longer the computer which guides the expert, it is the expert who guides the computer: he looks for the page where the part of his know-how to modify is located, reads it ( they are decision trees written in everyday language, you will see later) and modify the desired location. The computer re-generates the entire program, in seconds, and delivers a new, completely reliable program. With Maieutics, the computer is at the service of the user, not the other way around!

5th flaw: during all the development, neither the expert nor the client sees the program!

When the expert (or a user) asks for a program to be carried out, he cannot generally tell the programmer what head this program should have at the end. It’s not his job to imagine the program running when he already doesn’t know what he’s made of! As for the programmer, although he is an expert in computers, he also cannot tell him what the program will look like at the end: he has no idea what expertise to gather. His job is a computer scientist, not a chartered accountant! He also does not know how the expert’s colleagues are currently working with this expertise and therefore he cannot describe what program it would be good to offer them to make it better. It is a dialogue of the deaf. All these little people will only have an idea of ​​the program … when it is finished! That is to say very late. And there, the users will not agree, the expert will say that there are errors … hence the back and forth.

With la Maïeutique, no problem: the program is developed in the service concerned, by the people concerned, who see it evolving before their eyes and can test it constantly « to see ». They rectify it together as many times as necessary. When it’s over, it’s over. All you have to do is send it to IT for integration with other existing programs.

6th flaw: the program is no longer touched once it has been written

It takes so long to modify a program and its reliability then becomes so uncertain that it is only modified as rarely as possible: every 6 months, every year … Such a period is generally not suitable for user departments, but it’s like that…

With la Maïeutique, all programs can be changed daily if necessary. They are databases, which are the most reliable and the easiest to modify in computing. Suddenly, the updates can be daily.

7th flaw: impossible to modify a program in use

With procedural, we do not know in what state the data is or where the procedure was if we suddenly replace the current version of the program in use with a later version. Execution therefore cannot start from the right place. Users will have to start the job over again, without knowing when! This is why the version of a procedural program is only replaced by another one at night, when all the users are asleep, or during a period when their use is prohibited: “Sorry, this application is under maintenance, please wait… ”.

On the contrary, a Pandora-like expert system can be replaced by a new version in use, just like a database … since it is! Indeed, what is constantly evolving in an expert system is its knowledge database: the rule base. On the Internet, this type of operation is common: it is called « updating databases in real time ».

8th flaw: impossible to certify the reliability of the written program (Gödel’s theorem)

The procedural obliges to recode everything starting from scratch, or almost. Even in object languages, designed to avoid coding as much as possible, the essential part, the expertise, remains to be coded by « methods ». This makes the object concept even more complex to implement than traditional programming. But there is another problem even before coding: incompleteness. This is the worst enemy of computer analysis: coding pathways are overlooked by human error and often won’t be noticed until too late, when the software has been running for months or years. This leads to major operational concerns, especially if the programmer of the software in question is no longer there to correct it as quickly as possible.

1st advantage – reasoning AI reduces any program to a simple database, the oldest, simplest and most reliable form of software: a rule base. This is operated by a resonant 900 Kb engine, which is always the same and therefore hyper-reliable with years of use. For batch applications, it can even be reduced to its simplest form: its only task is to test the rules one after the other to see if they can produce a conclusion from the initial facts and the inferred facts obtained with the previous rules, then start again with the conclusions obtained to test the first rules with the knowledge freshly acquired by the last ones. It stops when no new fact production could be obtained on a new cycle through the whole base.

2nd advantage – Completeness is automatically checked with Maieutics since it visually materializes all the possible paths of reasoning and detects those which do not lead to the conclusion desired by the program. She takes the opportunity to do other checks: detection of logical contradictions, partial test of business expertise, type consistency, obsolete expressions, useful but unusable expressions (not requestable and non-deductible), etc.

9th flaw, the most serious: impossible to address various areas of application

Today, because of all these flaws, many application areas are never addressed. First of all those where the “combinatorial explosion” reigns: the number of cases to be treated in the program becomes so enormous that we know in advance – Gödel’s theorem obliges – that we will never arrive at a program. reliable. Then the applications which evolve frequently so as not to become obsolete, which the procedural does not know how to do given the time it already takes to achieve a reliable update (6th fault). Finally, applications requiring advanced reasoning such as logical simulation (as opposed to numerical simulation).

These fields of application are as follows:

• Conversational applications (chatbots, etc.) because it is the reign of the combinatorial explosion and they are based on in-depth knowledge in perpetual evolution

• Logical simulation of ideas, aid in invention as we do in our head by unfolding reasoning to test an idea or simulate a system and see if it works.

•  diagnostic aids and decision aids, subject to the combinatorial explosion and which must constantly improve based on experience feedback, software to help configure complex machines

•  tutorials, since an expert system reasons on real knowledge that can be read by all and can explain its reasoning step by step … until it points out contradictions!

• constantly evolving software because maintenance is the No. 1 problem for IT specialists, unlike La Maïeutique which is easily handled since everything is written in clear

• breakdown diagnosis, including medical diagnosis, a separate area where logic reigns supreme with the use of « contraposed », a very powerful reasoning. The solution to dealing with complexity is reasoning about knowledge as we all know how to do. This is the ideal area of Maieutics. This is where she started, in 1986 …

The result: the inability of any program, operating system, computer, to guess your next move when using it. It cannot therefore offer you a reduced choice of possible actions. Hence an incredible waste of time in operations, manual entry and the increase in errors due to fatigue.

Une réflexion sur “The 9 flaws of algorithmics

  1. Pingback: SUMMARY | Reasoning AI : Artificial Intelligence for all

Laisser un commentaire