OTP, mais je n'ai jamais réussi à aller très loin. Même en faisant fi de la syntaxe bizarre, Erlang (et Elixir) ne propose que du typage dynamique, et j'ai beaucoup de mal à m'intéresser à quelque chose qui vise à rendre des programmes plus résistants aux erreurs et qui, dans le même temps, augmente le risque d'erreurs à cause du typage dynamique.
De tous les langages que j'ai étudié jusqu'aujourd'hui, Erlang reste, avec Ruby, dans le top des langages que je préfère (Rust est en train de les rejoindre). Ce n'est pas le langage en lui-même (qui est inspiré de Prolog que tu cites plus haut), mais c'est tout le contexte (erlang/OTP). Bienb qu'étant fan de ruby, je n'aime pas Elixir qui casse un certain nombre de sécurités qu'Erlang utilise (variables non mutables par exemple) : je trouve que le mix ruby/erlang est pas du tout réussi.
L'absence de typage statique s'excplique tout simplement par le fait qu'Erlang permet un redémarrage à chaud des applications. Cette contrainte était une des exigences de base du langage et de son environnement (il s'agissait de pouvoir mettre à jour des équipements télécom sans avoir à les arrêter). Des recherches ont été faites sur ce sujet, des articles (assez intéressants d'ailleurs) sur le sujet ont été écrits. La conclusion du créateur du langage a été que ce n'est pas possible d'implémenter simplement un langage typé qui permettrait un démarrage à chaud. Je t'invite à faire quelques recherches dessus : j'avais lu quelques papiers à l'époquie sur le sujet. Les explications étaient très bas niveau et assez détaillées. Je n'ai pas tout compris parce que je ne maitrisais pas à cette époque toutes les subtilités du langage (c'était au début de mon appentissage), mais le document était suffisamment clair pour que je puisse comprendre dans les grandes lignes la raison pour laquelle il n'y a pas de typage statique dans ce langage ( mais trop complexer pour mon niveau pour que je puisse te l'expliquer aujourd'hui). J'essaierai de vois si j'ai pas encore ça quelque part, ou si je trouve un lien qui pourrait expliquer ça.
Maintenant, vu que cette fonctionnalité est loin d'être utilisée partout et par tout le monde aujourd'hui, peut-être serait-il possible d'introduire le typage statique avec une option à la compilation à activer lorsqu'une appli n'utilise pas le redémarrage à chaud au niveau d'Erlang, mais des méthodes autres pour ne pas couper le service lorsqu'elles démarrent ? (je pense notamment aux applis cloud).
# A propos d'Erlang
Posté par totof2000 . En réponse au journal Explorer des langages de programmation - édition 2020. Évalué à 5.
De tous les langages que j'ai étudié jusqu'aujourd'hui, Erlang reste, avec Ruby, dans le top des langages que je préfère (Rust est en train de les rejoindre). Ce n'est pas le langage en lui-même (qui est inspiré de Prolog que tu cites plus haut), mais c'est tout le contexte (erlang/OTP). Bienb qu'étant fan de ruby, je n'aime pas Elixir qui casse un certain nombre de sécurités qu'Erlang utilise (variables non mutables par exemple) : je trouve que le mix ruby/erlang est pas du tout réussi.
L'absence de typage statique s'excplique tout simplement par le fait qu'Erlang permet un redémarrage à chaud des applications. Cette contrainte était une des exigences de base du langage et de son environnement (il s'agissait de pouvoir mettre à jour des équipements télécom sans avoir à les arrêter). Des recherches ont été faites sur ce sujet, des articles (assez intéressants d'ailleurs) sur le sujet ont été écrits. La conclusion du créateur du langage a été que ce n'est pas possible d'implémenter simplement un langage typé qui permettrait un démarrage à chaud. Je t'invite à faire quelques recherches dessus : j'avais lu quelques papiers à l'époquie sur le sujet. Les explications étaient très bas niveau et assez détaillées. Je n'ai pas tout compris parce que je ne maitrisais pas à cette époque toutes les subtilités du langage (c'était au début de mon appentissage), mais le document était suffisamment clair pour que je puisse comprendre dans les grandes lignes la raison pour laquelle il n'y a pas de typage statique dans ce langage ( mais trop complexer pour mon niveau pour que je puisse te l'expliquer aujourd'hui). J'essaierai de vois si j'ai pas encore ça quelque part, ou si je trouve un lien qui pourrait expliquer ça.
Maintenant, vu que cette fonctionnalité est loin d'être utilisée partout et par tout le monde aujourd'hui, peut-être serait-il possible d'introduire le typage statique avec une option à la compilation à activer lorsqu'une appli n'utilise pas le redémarrage à chaud au niveau d'Erlang, mais des méthodes autres pour ne pas couper le service lorsqu'elles démarrent ? (je pense notamment aux applis cloud).