Honnêtement je crois que le style de programmation est bien plus important que le langage.
On peut faire de la programmation dirigée par les buts, par les tests, par les données, et même des moteurs d'inférence, dans n'importe quel langage. Ceci dit j'ai pratiqué C,C++,prolog,java,lisp et ada, mais pas beaucoup ocaml (familièrement appelé camel), et j'ai une préférence pour java parce que j'adore le concept d'interface et que j'aime les langages fortement typés (ceci dit j'aime aussi lisp, ce qui prouve qu'en matière de gouts on peut se contredire ).
Pour faire une IA, lisp a l'avantage de pouvoir évaluer des fonctions construites à la volée (ocaml aussi, je crois), ce qui peut etre intéressant car nous aurons besoin de générateurs de codes puissants et efficaces. Mais il faut aussi se rendre compte qu'une IA sera un système extraordinairement gros et complexe et que la capacité à gérer des threads et process concurrents est très importante, de même que la capacité à gérer des flux d'entrée-sorties très variés. Et là java est très fort.
Enfin un projet de construction d'IA ne peut pas se borner à construire "juste" une IA : le développement sera forcément incrémental et nous aurons besoin de tout un environnement : en fait il faut concevoir et écrire simultanément quatre gros systèmes :
- HAL, le système intelligent lui-même.
- TST, L'environnement de test : il permet de sauvegarder et recharger l'état courant de HAL, de tracer ce qui s'y passe, de déboguer, d'administrer les différentes fonctions, de tester certains module isolément, etc.
- ENV l'environnement virtuel de HAL : il fournit HAL en données récupérées par ses modalités sensorielles et se met à jour en fonction des actions virtuelles de HAL. ENV est donc un énorme simulateur.
- SENSES l'interface avec le monde réel : caméras, micros, claviers, écrans, etc.
(voir ma page http://sboisse.free.fr/technique/inf...tificielle.php sur mon site).
Chacun de ces quatre systèmes peut être écrit dans un langage différent...
Partager