English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Erlang est un langage de programmation fonctionnel qui a également un environnement d'exécution. Sa conception le rend intégralement supporté pour les fonctionnalités de concurrence, de distribution et de tolérance aux erreurs. Erlang a été développé initialement pour être utilisé dans plusieurs grands systèmes télécom d'Ericsson.
La première version d'Erlang a été développée par Joe Armstrong, Robert Virding et Mike Williams1986Développé1998Publié comme langage open source enErlang/OTP
Si vous avez les exigences suivantes, vous devriez utiliser Erlang pour développer des applications-
L'application doit gérer un grand nombre d'activités concurrentes.
Elle doit pouvoir être distribuée sur le réseau informatique de manière très facile.
Il doit y avoir des outils qui permettent à l'application d'être tolérante aux erreurs de logiciel et de matériel.
L'application doit être scalable. Cela signifie qu'elle doit pouvoir traverser plusieurs serveurs sans presque aucune modification.
Elle doit être facile à mettre à jour et à réconfigurer sans arrêter et redémarrer l'application elle-même.
L'application doit répondre aux utilisateurs dans un certain temps strict.
Le site officiel d'Erlang esthttps://www.erlang.org/
Erlang est un langage de programmation généraliste orienté concurrence, développé par le CS de l'entreprise suédoise de télécommunications Ericsson-Le développement de langage de programmation et d'environnement d'exécution pour faire face à des activités concurrentes à grande échelle. Erlang est apparu1987Après un développement de dix ans, en1998L'année a été publiée en version open source. Erlang est un langage interprété exécuté sur un environnement virtuel, mais il contient également un compilateur de code natif développé par le projet HiPE (Högprestanda Erlang) de l'Université d'Uppsala, depuis la version R11B-4Depuis la version, Erlang a également commencé à soutenir l'interpréteur de scripts. En termes de paradigme de programmation, Erlang est un langage de programmation multiparadigme, couvrant fonctionnel, concurrent et distribué. Erlang exécuté en ordre est un langage de programmation fonctionnel de valorisation précoce, d'affectation unique et de type dynamique.
Erlang est un langage de programmation structuré, dynamique et de type, avec un soutien intégré aux calculs parallèles. Il a été initialement conçu par Ericsson pour des applications de communication spécifiques, comme les commutateurs de contrôle ou les protocoles de transformation, et est donc très approprié pour construire des systèmes logiciels distribués et temps réel, avec des calculs parallèles. Les applications écrites en Erlang sont généralement composées de milliers de processus légers qui communiquent entre eux par messages. Le basculement de contexte entre processus est simplement une ou deux étapes pour Erlang, beaucoup plus efficace que les changements de threads dans les programmes C.
Il est beaucoup plus simple d'écrire des applications distribuées en Erlang, car son mécanisme de distribution est transparent : pour le programme, il ne sait pas qu'il fonctionne en mode distribué. L'environnement d'exécution d'Erlang est un environnement virtuel, un peu comme le Java Virtual Machine, de sorte que le code, une fois compilé, peut s'exécuter n'importe où. Son système d'exécution permet même la mise à jour du code sans interruption. De plus, si vous avez besoin d'une plus grande efficacité, le bytecode peut également être compilé en code natif pour l'exécution.
Le nom Erlang est dû au mathématicien et statisticien danois Agner Krarup Erlang, et Erlang peut également représenter Ericsson Language.
Erlang n'est pas un nouveau langage, il est apparu1987En 2001, bien que les besoins en concurrence et distribution n'étaient pas aussi universels qu'aujourd'hui, l'époque était vraiment une période où les héros n'avaient pas de terrain de jeu. Joe Armstrong, le fondateur du langage Erlang, travaillait à Ericsson sur le développement de réseaux téléphoniques, utilisant Smalltalk, mais à cette époque, Smalltalk était trop lent pour répondre aux exigences de performance des réseaux téléphoniques. Mais Joe aimait vraiment Smalltalk, donc il a commandé une machine Tektronix Smalltalk. Mais le machine a fallu deux mois pour arriver, et pendant ce temps, Joe s'est ennuyé et a commencé à utiliser Prolog. Quand le Tektronix est arrivé, il était déjà plus intéressé par Prolog. Joe ne s'est pas contenté d'être expert en Prolog, et après un certain temps d'expérimentation, il a ajouté le traitement concurrent et la récupération des erreurs à Prolog, et ainsi est né Erlang. C'est pourquoi la syntaxe d'Erlang a beaucoup en commun avec celle de Prolog, par exemple, leurs expressions de List sont [Head | Tail].
1987Ensuite, la version de test d'Erlang est lancée, et elle est améliorée constamment dans l'application réelle des utilisateurs, et1991Ensuite, la première version est lancée pour les utilisateurs, avec des fonctionnalités supplémentaires telles que le compilateur et l'interface graphique.1992Ensuite, Erlang accueille plus d'utilisateurs, tels que les projets RACE, etc. Dans le même temps, Erlang est porté sur de multiples plateformes telles que VxWorks, PC et Macintosh, et deux projets de produits utilisant Erlang commencent également.1993L'organisation indépendante de la société Ericsson commence à maintenir et à soutenir l'implémentation et les outils Erlang.
Contrairement aux langages orientés objet traditionnels, il possède ses propres avantages : tout d'abord, il est basé sur la concurrence par processus, ces processus sont légers et traitent les affaires de manière ordonnée et coopérative, l'utilisateur n'a pas besoin de s'inquiéter des opérations PV spécifiques, ces processus sont transparents pour le système d'exploitation, pour le système d'exploitation, il n'y a qu'un seul processus en cours d'exécution. De plus, chaque processus possède sa propre mémoire indépendante, il dépend entièrement de la communication par message pour la communication entre processus, chaque processus possède sa propre boîte aux lettres et utilise la méthode de correspondance de modèle pour rechercher les messages à traiter, puis procède à un traitement asynchrone. Cela réduit la couplage entre processus, améliore l'indépendance. Erlang possède également un mécanisme de tolérance aux pannes fiable, en raison de l'indépendance relative entre processus, on peut utiliser certains processus pour lier ou surveiller d'autres processus dans Erlang, lorsque ces processus surveillés quittent de manière anormale en raison d'erreurs, le programme de surveillance responsable reçoit des messages sur la sortie de ces processus et traite ces processus de manière appropriée. Dans OTP, Erlang peut utiliser l'arbre de surveillance pour effectuer une surveillance un à un ou un à plusieurs. Le plus important est le soutien aux CPU multicœurs, dans Erlang, les opérations multicœurs ne nécessitent pas la gestion des développeurs, pour les développeurs, c'est complètement transparent, nous n'avons besoin que de programmer comme d'habitude. Enfin, Erlang prend en charge la mise à niveau de code en chaud, dans Erlang, il est possible de mettre à jour le code sans arrêt le service, pour réaliser la mise à niveau en chaud du logiciel en cours d'exécution. Dans la gestion des versions d'Erlang, il est possible de conserver un module de2différentes versions, et prend en charge le rollback des versions.
Le langage Erlang se concentre sur des besoins spécifiques et n'est pas entièrement adapté à toutes les situations. Bien qu'il ait de nombreuses caractéristiques attrayantes, il a également des inconvénients : sa capacité d'abstraction n'est pas très forte, Erlang est un langage de type faible, il est assez facile de modifier le contenu des messages ou les exigences des motifs lors de la correspondance, mais lorsque des erreurs se produisent, ces erreurs sont assez cachées. De plus, lorsque la taille du projet est grande, on remarque que en raison des caractéristiques du langage, les différentes parties apparaissent avec des caractéristiques plates, et les structures des programmes contiennent de nombreux tuples et enregistrements, ce qui rend la structure du programme confuse. De plus, la programmation fonctionnelle diffère des langages traditionnels, et actuellement, les langages de programmation dominants sont le système C et les langages orientés objet. Actuellement, la programmation fonctionnelle manque de théories de programmation matures, et il y a un manque de talents et de ressources dans ce domaine, ce qui augmente la difficulté de l'apprentissage. De plus, l'idée orientée objet est profondément enracinée dans l'esprit des gens, ce qui rend difficile la transformation de la pensée lors de l'apprentissage de la programmation fonctionnelle. Le plus important est que Erlang est un langage intensif en entrées/sorties, adapté aux projets avec des caractéristiques de distribution évidentes. Pour les exigences intensives en calcul, il peut être difficile, mais il existe encore de l'espace pour l'optimisation et l'amélioration.
Le développement d'Erlang en Chine ces dernières années a été très rapide, principalement utilisé pour le développement de systèmes de serveurs de jeux. Erlang est facile à utiliser, a une haute capacité de tolérance aux erreurs et une itération rapide, ce qui est très approprié pour le développement de jeux web et mobiles. En particulier, dans des villes comme Guangzhou et Shenzhen, la plupart des petites et moyennes entreprises de jeux utilisent Erlang. Avec c++Il nécessite une accumulation technique prolongée pour les systèmes de serveurs de jeux basés sur une langue de programmation de base, et c++L'efficacité de développement de la version chinoise simplifiée n'est pas aussi bonne que celle d'Erlang, et le coût élevé de recrutement est également un défi majeur pour les entreprises émergentes. Cependant, les petites et moyennes entreprises accordent plus d'importance aux produits qu'aux technologies, ce qui est défavorable au développement d'Erlang en Chine. La plupart des entreprises utilisent le même cadre Erlang établi, se concentrant sur la logique des affaires spécifiques et négligeant l'optimisation du niveau inférieur. Cela est extrêmement défavorable au développement d'Erlang.
Le développement d'Erlang à l'étranger a une longue histoire et comme un langage mature, il a été prouvé, actuellement appliqué à plusieurs centaines de projets de développement importants, y compris les solutions de systèmes d'échange de large bande, GPRS et ATM d'Ericsson, etc., avec une riche expérience de projet, le cadre de programmation (OTP) fournit à l'Erlang système une série d'outils et de bibliothèques pour réaliser la robustesse et la tolérance aux pannes et un cadre structuré complet. Mais par rapport à l'industrie du jeu en Chine, à l'étranger, il est principalement utilisé pour les services web, téléphonie informatique, systèmes de messagerie et banques commerciales et autres domaines. Au début du siècle, le site Erlang.org avait36000 pages environ, après dix ans, ce nombre a atteint280 millions, ce qui montre que la communauté Erlang ne cesse de s'élargir, y compris les entreprises, la recherche et les projets open source, la combinaison de la marketing viral, de livres et de blogs, bien sûr, tout cela provient du design initial d'Erlang-La nécessité de résoudre des problèmes spécifiques à des domaines et de promouvoir.