Axum ist eine Sprache, die so strukturiert ist, dass sie eine sichere und performante gleichzeitige Programmierung vereinfacht. Die Konzepte der Sprache modelliert, um die Notwendigkeit zu vermeiden, um die Thread-Synchronisation explizit über die Verwendung von lock
(in C#) zu machen, Monitor
, ReaderWriterLockSlim
, etc ...
Es könnte argumentiert werden, dass viele der Ideen in Axum wurden in die Erlang programming language seit 1986 - eine Sprache, die von Forschern entworfen wurde, die in Schweden für Ericsson arbeiten, um auf Telefonschaltern zu laufen, und folglich Unterstützung für massiven Durchsatz unter hoch konkurrierender Last war so wesentlich, dass es in die Sprache entworfen wurde. Während viele der Ideen in Axum nicht neu sind, sind sie sicherlich neu zu .NET und die CLR
Vorhandene .NET-Bibliotheken, die einige dieser Ideen enthalten sind (zumindest auf der Sprachebene.):
wie Erlang, Message Passing ist ein zentrales Konzept in Axum. Wie Erlang ist Axum weitgehend gleichgültig, ob der Empfänger der Nachricht sich in Bearbeitung oder entfernt befindet. Axum bietet derzeit die Integration mit WCF.
Axum unterscheidet sich von den oben genannten Bibliotheken dadurch, dass es die Unterstützung dieser Konzepte auf Sprachenebene bietet, nicht nur durch die Verwendung von Bibliotheken. Der Axum-Compiler beschäftigt sich nicht nur mit der Axum-Sprache, sondern auch mit einigen experimentellen Erweiterungen der C# -Sprache selbst; nämlich die isolated
und readonly
Schlüsselwörter.
Das Hinzufügen neuer Funktionen zu einer Sprache ist nicht leicht zu treffen. Spec# ist eine andere C# -Superset-Sprache, die unter MSR entwickelt wurde (unabhängig von Nebenläufigkeit).Wie in der Unterstützung für Code Contracts in .NET 4.0 zu sehen, hat Microsoft entschieden, eine neue API anstelle von neuen Spracherweiterungen zu bevorzugen (dies kommt allen Benutzern der CLR zugute). Im Fall von Axum ist jedoch nicht genug Reichhaltigkeit vorhanden in der C# 3.0-Sprache, um die Arten von Unveränderbarkeitseinschränkungen auszudrücken, die von Typen und ihren Mitgliedern für eine wirklich sichere gleichzeitige Programmierung erforderlich sind.
Ich habe mich in Erlang versucht und mochte, was ich gesehen habe, ich bin sehr gespannt, wohin Axum uns führen könnte. Einige der vom Team vorgeschlagenen Erweiterungen der C# -Sprache sind auch für normale C# -Projekte nützlich.
Abschließend möchte ich darauf hinweisen, dass es mehr als nur ein gutes Parallelitätsmodell zu Erlang gibt. Erlang ist eine strenge funktionale Programmiersprache. Es unterstützt hot-swap-fähigen Code, was bedeutet, dass ein System aufgerüstet werden kann, ohne dass es jemals gestoppt wird (eine wünschenswerte Eigenschaft eines Telefonschalters oder eines anderen 24x7-Systems). Ich hörte einen Bericht von einer großen britischen Telekommunikationsorganisation, der ein Jahr lang einen Switch führte und nur vier Anrufe in dieser Zeit nicht routete. Erlang hat auch andere Eigenschaften wie Remote-Exception-Handling.
Huh. Nie zuvor von Axum gehört. Sehr interessant. Geh Microsoft! Erste ASP.NET MVC, dann F #, jetzt Axum? Böse! –
Wenn irgendjemand damit etwas Interessantes gemacht hat, poste doch hier einen Link zu deinem Blogeintrag. –
Das wäre nett. –