English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Erlang是一种功能编程语言,也具有运行时环境。它的构建方式使其对并发,分发和容错功能具有集成支持。Erlang最初是为在爱立信的多个大型电信系统中使用而开发的。
Erlang的第一个版本是由Joe Armstrong,Robert Virding和Mike Williams于1986年开发的。它最初是爱立信内部的专有语言。它随后于1998年作为一种开放源语言发布。Erlang以及OTP(Erlang中的中间件和库的集合)现在由爱立信的OTP产品部门提供支持和维护,并被广泛称为Erlang/OTP。
如果您具有以下要求,则应使用Erlang开发应用程序-
该应用程序需要处理大量并发活动。
它应该可以很容易地在计算机网络上分发。
应该有一种使应用程序对软件和硬件错误都容错的工具。
该应用程序应该是可伸缩的。这意味着它应该能够跨越多个服务器,而几乎没有变化。
它应该易于升级和重新配置,而不必停止和重新启动应用程序本身。
该应用程序应在一定严格的时间范围内对用户做出响应。
Erlang的官方网站为https://www.erlang.org/。
Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。Erlang问世于1987Ein Jahr, nach zehn Jahren der Entwicklung,1998Ein Jahr wurde die Open-Source-Version veröffentlicht. Erlang ist eine interpretative Sprache, die auf einer Virtuellen Maschine läuft, enthält aber auch einen lokalen Code-Compiler, entwickelt von der Högskolan i Uppsala (HiPE), seit R11B-4Ab Version unterstützt Erlang auch einen skriptbasierten Interpreter. In Bezug auf die Programmierparadigmen gehört Erlang zu den mehrparadigmatischen Programmiersprachen und umfasst funktionalen, parallelen und verteilten Ansätze. Eine auf der Reihenfolge ausgeführte Erlang ist eine funktionalen Programmiersprache mit frühzeitiger Evaluation, einmaliger Zuweisung und dynamischer Typisierung.
Erlang ist eine strukturierte, dynamisch typisierte Programmiersprache mit integrierter Unterstützung für parallele Berechnungen. Ursprünglich wurde er von Ericsson speziell für Kommunikationsanwendungen entwickelt, wie z.B. die Steuerung von Vermittlungsstellen oder die Transformation von Protokollen, und ist daher besonders geeignet zur Erstellung verteilter, Echtzeit-Soft-Parallelrechnungssysteme. Anwendungen, die in Erlang geschrieben werden, bestehen normalerweise aus Tausenden von leichten Prozessen und kommunizieren miteinander über Nachrichten. Der Kontext-Wechsel zwischen Prozessen ist für Erlang nur ein paar Schritte, viel effizienter als der Kontext-Wechsel zwischen Threads in C-Programmen.
Die Verwendung von Erlang zur Erstellung verteilter Anwendungen ist viel einfacher, da sein Verteilungsmechanismus transparent ist: Für das Programm ist es nicht bewusst, dass es in einem verteilten Betrieb läuft. Das Laufzeitumgebung von Erlang ist eine Virtuelle Maschine, ähnlich wie die Java-Virtuelle Maschine, so dass nach der Kompilierung der Code überall ausgeführt werden kann. Sein Laufzeitssystem ermöglicht es sogar, dass der Code ohne Unterbrechung aktualisiert wird. Außerdem kann der Bytecode auch in nativen Code kompiliert und ausgeführt werden, falls eine höhere Effizienz erforderlich ist.
Erlang wurde nach dem dänischen Mathematiker und Statistiker Agner Krarup Erlang benannt und kann auch Ericsson Language bedeuten.
Erlang ist keine neue Sprache, sie trat1987Das Jahr, aber zu jener Zeit gab es noch nicht so allgemeine Anforderungen an Parallelität und Verteilung wie heute, und es war eine Zeit, in der Helden keine Verwendung für ihre Fähigkeiten fanden. Joe Armstrong, der Begründer der Sprache Erlang, war damals bei Ericsson in der Entwicklung von Telefonnetzen beschäftigt. Er verwendete Smalltalk, aber zu jener Zeit war Smalltalk zu langsam, um die hohen Leistungsanforderungen des Telefonnetzes zu erfüllen. Joe mochte Smalltalk aber sehr, also bestellte er ein Tektronix Smalltalk-Maschine. Doch das Gerät brauchte zwei Monate, bis es anlief, und während Joe darauf wartete, war er sehr gelangweilt und begann, Prolog zu verwenden. Als das Tektronix schließlich kam, interessierte ihn Prolog mehr, und Joe war natürlich nicht zufrieden damit, nur Prolog zu beherrschen. Nach einer Zeit der Experimente fügte Joe Concurrency- und Fehlerrecovery-Funktionen zu Prolog hinzu, und so wurde Erlang geboren. Dies ist auch der Grund, warum die Syntax von Erlang und Prolog in vielerlei Hinsicht ähnlich ist, zum Beispiel bei ihren List-Expressions, die beide [Head | Tail] sind.
1987In diesem Jahr wurde eine Testversion von Erlang herausgebracht und im praktischen Einsatz ständig verbessert,1991In diesem Jahr wurde die erste Version für Benutzer vorgestellt, die mit Compiler und grafischer Oberfläche sowie weiteren Funktionen ausgestattet war.1992In diesem Jahr erhielt Erlang mehr Benutzer, wie z.B. das RACE-Projekt. Gleichzeitig wurde Erlang auf verschiedene Plattformen wie VxWorks, PC und Macintosh portiert, und zwei Produktprojekte, die Erlang verwenden, begannen ebenfalls ihre Arbeit.1993Die unabhängige Organisation innerhalb von Ericsson begann, die Implementierung und die Werkzeuge von Erlang zu unterhalten und zu unterstützen.
Im Gegensatz zu traditionellen objektorientierten Sprachen hat sie ihre eigenen Vorteile: Zunächst basiert sie auf Prozess-Parallelität, wobei die Prozesse leichtgewichtig sind und geordnet miteinander zusammenarbeiten, um Transaktionen zu verarbeiten. Der Benutzer muss sich keine Sorgen um spezifische PV-Operationen machen, diese Prozesse sind für das Betriebssystem transparent und für das Betriebssystem läuft nur ein Prozess. Außerdem verfügt jeder Prozess über eigenen Speicher, der bei der Prozesskommunikation vollständig auf Nachrichtenübermittlung angewiesen ist. Jeder Prozess verfügt über eigenen Briefkasten und sucht durch Musterabgleich die zu verarbeitenden Nachrichten heraus, die dann asynchron verarbeitet werden. Dies verringert die Kopplung zwischen den Prozessen und erhöht die Unabhängigkeit. Erlang verfügt auch über eine zuverlässige Fehlertoleranzmechanik, da die Prozesse relativ unabhängig sind, kann in Erlang mit einigen Prozessen andere Prozesse verknüpft oder überwacht werden. Wenn diese überwachten Prozesse aufgrund von Fehlern ausnahmsweise beendet werden, erhält das überwachende Programm die Nachrichten über die Beendigung dieser Prozesse und behandelt diese entsprechend. In OTP kann Erlang durch eine Überwachungsbäume Ein-zu-Ein- oder Ein-zu-Viel-Überwachung ausführen. Wichtigster Punkt ist die Unterstützung für Mehrkern-CPU, bei der die Multikern-Operationen in Erlang für den Entwickler nicht zu verwalten sind und für den Entwickler vollständig transparent sind. Wir müssen wie gewohnt programmieren. Schließlich unterstützt Erlang Hot Code Upgrades, in Erlang ist es möglich, den Code ohne Neustart zu aktualisieren, um eine Hot-Upgrades während der Softwareausführung zu ermöglichen. In der Versionsverwaltung von Erlang kann ein Modul beibehalten werden.2verschiedene Versionen und unterstützt das Rollback von Versionen.
Die Sprache Erlang konzentriert sich auf spezifische Bedürfnisse und ist nicht vollständig für alle Situationen geeignet. Während sie viele verlockende Eigenschaften hat, gibt es auch einige Nachteile: Die Abstraktionsfähigkeit der Sprache ist nicht stark, Erlang ist eine schwach typisierte Sprache, bei der die Anpassung des Inhalts oder der Anforderungen an die Muster der Nachrichten relativ bequem ist, aber wenn Fehler auftreten, sind diese Fehler stark verborgen. Außerdem zeigt sich, dass bei großen Projekten aufgrund der Eigenschaften der Sprache alle Teile flach werden, es gibt in den Programmen sehr viele Tupel und Record, die Programmstruktur ist durcheinander. Außerdem gibt es Unterschiede zwischen funktionaler Programmierung und traditionellen Sprachen, und die derzeit dominierenden Programmiersprachen sind C-basiert und objektorientiert. Die funktionalen Programmiersprachen fehlen noch reife Programmierungstheorien, und es gibt weniger Talente und Materialien in diesem Bereich, was die Lernschwierigkeit erhöht. Außerdem ist die objektorientierte Denkschule tief in den Menschen verankert, was es schwierig macht, sich beim Lernen der funktionalen Programmierung zu ändern. Wichtigster ist, dass Erlang eine IO-dichte Sprache ist und für Projekte mit starken verteilten Eigenschaften geeignet ist. Für berechnungsintensive Anforderungen ist es etwas anstrengend, aber es gibt immer noch Raum für Optimierung und Verbesserung.
In den letzten Jahren hat sich Erlang in China sehr schnell entwickelt und wird hauptsächlich für die Entwicklung von Spiele-Server-Systemen verwendet. Erlang ist leicht zu erlernen, hat eine hohe Fehlertoleranz und schnelle Iterationen, die sehr gut für die Entwicklung von Web- und Handyspielen geeignet sind. Besonders in Guangzhou, Shenzhen und einigen anderen kleinen und mittleren Spieleunternehmen wird fast überall Erlang verwendet. Mit c++Eine auf der Basissprache basierende Spiele-Server-Systeme erfordern eine lange technische Akkumulation und c++Die Entwicklungsleistung von Erlang ist nicht so hoch wie die von Erlang, und der hohe Personalbeschaffungsaufwand stellt auch für neue Unternehmen eine große Herausforderung dar. Aber kleine und mittlere Unternehmen legen mehr Wert auf Produkte als auf Technologie, was für die Entwicklung von Erlang in China nachteilig ist. Die meisten Unternehmen verwenden dasselbe etablierte Erlang-Framework, das sich auf die Verarbeitung spezifischer Geschäftslogiken konzentriert und die Optimierung der Unterlagen vernachlässigt. Dies ist äußerst nachteilig für die Entwicklung von Erlang.
Die Entwicklung von Erlang im Ausland dauert länger, als eine reife Sprache hat sich als bewährt erwiesen und wird derzeit in mehreren hundert bedeutenden Entwicklungsprojekten angewendet, einschließlich Breitbandlösungen, GPRS und ATM-Wechselfähigkeiten von Ericsson und anderen Systemen, mit reichhaltiger Projekterfahrung, die Programmierumgebung (OTP) bietet Erlang-Systemen eine Reihe von Werkzeugen und Bibliotheken zur Implementierung von Robustheit und Fehlerdetektion sowie ein vollständiges strukturiertes Framework. Aber im Vergleich zu Inlandsentwicklung für Spieleentwicklung wird es im Ausland hauptsächlich für Web-Dienste, Computertelefonie, Nachrichten 系统 und kommerzielle Banken und andere Bereiche verwendet. Zu Beginn dieses Jahrhunderts hatte die Website Erlang.org36000 Webseiten, zehn Jahre später stieg diese Zahl auf280 tausend, was darauf hindeutet, dass sich die Erlang-Community ständig erweitert, einschließlich kommerzieller, wissenschaftlicher und offener Projekte, Viral Marketing, Kombination von Büchern und Blogs, natürlich alles aus dem ursprünglichen Design von Erlang stammend-Der Bedarf und die Förderung zur Lösung spezifischer Problembereiche.