Question

Je lis cette histoire sur slashdot aujourd'hui où ils annoncent un nouveau langage de programmation parallèle par Microsoft.

Quel est ce nouveau langage de programmation au sujet? Il dit la programmation parallèle. Mais est-ce que ça va être une solution de rechange / remplacement pour MPI, PVM, OpenMP et les bibliothèques / cadres parallèles similaires?

Toutes les pensées?

Était-ce utile?

La solution

Axoum est un langage structuré de telle manière à rendre la programmation concurrente sûre et plus simple performante. Les concepts modélisés par la langue évitent la nécessité de faire la synchronisation des threads explicite via l'utilisation de lock (en C #), Monitor, ReaderWriterLockSlim, etc ...

On pourrait faire valoir que bon nombre des idées dans Axum ont été dans le langage de programmation Erlang depuis 1986 - un langage conçu par des chercheurs travaillant en Suède pour Ericsson de fonctionner sur les commutateurs téléphoniques, et par conséquent pour soutenir un débit massif sous charge très simultanée était si essentielle qu'il a été conçu dans la langue. Alors que la plupart des idées Axum ne sont pas nouveaux, ils sont certainement à nouveau .NET et le CLR (au moins au niveau de la langue.)

existant bibliothèques .NET qui contiennent certaines de ces idées sont:

Comme Erlang, le passage de messages est un concept central dans Axum. Comme Erlang, Axum est largement indifférent de savoir si le destinataire du message se trouve en cours ou à distance. Axum fournit actuellement l'intégration avec WCF.

Axum diffère des bibliothèques mentionnées ci-dessus en ce qu'il comprend un soutien à ces concepts au niveau de la langue, non seulement par l'utilisation des bibliothèques. Les offres de compilateur Axum non seulement avec la langue Axum, mais aussi avec quelques extensions expérimentales du langage C # lui-même; à savoir le et isolated mots-clés readonly.

Ajout de nouvelles fonctionnalités à une langue n'est pas quelque chose à prendre à la légère. Spec # est une autre langue C # -superset développé à MSR (sans rapport avec la concurrence). Comme on le voit avec le soutien du code contrats dans .NET 4.0, Microsoft a décidé pour favoriser l'ajout d'une nouvelle API plutôt que de nouvelles extensions de langage (ce qui profite aux utilisateurs de toutes les langues sur le CLR.) Cependant, dans le cas d'Axoum, il n'y a pas assez de richesse dans le langage C # 3.0 pour exprimer les types de contraintes de immutabilité exigées des types et leurs membres pour la programmation concurrente vraiment en sécurité.

Après avoir tâté de Erlang et aimer ce que je vis, je suis très heureux de savoir où Axum pourrait nous prendre. Certaines des extensions du langage C # proposé par l'équipe sont utiles pour les projets réguliers C # aussi.

Enfin, je voudrais souligner qu'il ya plus à Erlang qu'un bon modèle d'accès concurrentiel. Erlang est un langage de programmation fonctionnelle stricte. Il prend en charge le code permutables à chaud, ce qui signifie qu'un système peut être mis à jour sans jamais être arrêté (une caractéristique souhaitable d'un commutateur téléphonique ou tout autre système 24x7). J'ai entendu un rapport d'une grande organisation de télécommunications britannique en cours d'exécution d'un interrupteur pour un an et seulement à défaut d'acheminer quatre appels à ce moment-là. Erlang a d'autres caractéristiques telles que la manipulation à distance exception aussi bien.

Autres conseils

Attend pour moi comme vous mettre le doigt dessus dans votre question. On dirait que l'alternative Microsoft.NET à certaines des langues / cadres que vous avez mentionnés. Jetez un oeil à Guide du programmeur ici:

Guide de Axum programmeur

On dirait qu'il devrait jouer bien avec le reste du .NET Framework. Il peut ouvrir une intéressante C # / F # / interactions Axum ...

Axoum est le nouveau nom pour la langue « Maestro » de Microsoft, qui était à l'origine une langue de recherche pour la programmation parallèle, mais a été « promu » à une langue de première classe tout récemment.

Un peu plus d'informations sur le canal 9 ici:

Maestro: une langue spécifique domaine géré programmation concurrente

... et sur le blog officiel de l'équipe Axum.

Voici une mise à jour sur l'état de Axum . Apparrently quelques-unes des caractéristiques de concurrence ne fera plus partie de C # / VB.Net.

  

... les concepts autour de parallélisme sûr et   programmation à base d'agents ont été vus par beaucoup comme trop loin en dehors de la   grand public à adopter maintenant dans des langues comme C # et VB. L'idée de   Axum était de ne pas forcer ces concepts sur les langues à usage général, donc   ceux d'entre nous qui ont un travail sur Axum ne sont pas surpris.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top