2009-05-12 14 views
9

Leo this historia en slashdot hoy donde anuncian un nuevo lenguaje de programación paralelo de Microsoft.¿Qué es este nuevo lenguaje de programación Axum?

¿De qué se trata este nuevo lenguaje de programación? Dice Programación Paralela. ¿Pero va a ser una alternativa/reemplazo para MPI, PVM, OpenMP y bibliotecas/marcos paralelos similares?

¿Alguna idea?

+0

Huh. Nunca escuché hablar de Axum antes. Muy interesante. ¡Ve a Microsoft! Primero ASP.NET MVC, luego F #, ¿ahora Axum? ¡Malvado! –

+3

Si alguien ha hecho algo interesante con esto, publique un enlace aquí a su publicación del blog al respecto. –

+0

Eso estaría bien. –

Respuesta

9

Axum es un lenguaje estructurado de tal forma que simplifica la programación concurrente segura y eficaz. Los conceptos modelados por el lenguaje de evitar la necesidad de hacer explícita la sincronización de hilos a través del uso de lock (en C#), Monitor, ReaderWriterLockSlim, etc ...

Se podría argumentar que muchas de las ideas dentro de Axum han estado en el Erlang programming language desde 1986, un lenguaje diseñado por investigadores que trabajan en Suecia para que Ericsson funcione con conmutadores telefónicos, y por lo tanto soporte para un rendimiento masivo bajo una carga altamente concurrente era tan esencial que fue diseñado en el lenguaje. Mientras que muchas de las ideas en Axum no son nuevos, que son sin duda nuevo en .NET y el CLR

bibliotecas .NET existentes que contienen algunas de estas ideas son (al menos en el nivel de idioma.):

Como Erlang, el paso de mensajes es un concepto central en Axum. Al igual que Erlang, Axum es en gran medida indiferente en cuanto a si el destinatario del mensaje se encuentra en proceso o de forma remota. Axum actualmente proporciona integración con WCF.

Axum difiere de las bibliotecas mencionadas anteriormente en que incluye soporte para estos conceptos en el nivel de idioma, no solo mediante el uso de bibliotecas. El compilador Axum trata no solo con el lenguaje Axum, sino también con algunas extensiones experimentales del lenguaje C# en sí mismo; es decir, las palabras clave isolated y readonly.

Agregar nuevas características a un idioma no es algo que deba tomarse a la ligera. Spec# es otro lenguaje de superconjunto C# desarrollado en MSR (no relacionado con concurrencia).Como se vio con el soporte para Code Contracts en .NET 4.0, Microsoft ha decidido favorecer la adición de una nueva API en lugar de nuevas extensiones de idioma (esto beneficia a los usuarios de todos los idiomas en el CLR). Sin embargo, en el caso de Axum, no hay suficiente riqueza en el lenguaje C# 3.0 para expresar los tipos de restricciones de inmutabilidad requeridas de los tipos y sus miembros para una programación simultánea verdaderamente segura.

Después de haber incursionado en Erlang y me gustó lo que vi, estoy muy emocionado acerca de dónde podría llevarnos Axum. Algunas de las extensiones del lenguaje C# propuestas por el equipo también son útiles para proyectos regulares de C#.

Finalmente, me gustaría señalar que Erlang tiene más que solo un buen modelo de simultaneidad. Erlang es un lenguaje de programación funcional estricto. Es compatible con el código intercambiable en caliente, lo que significa que un sistema se puede actualizar sin que se lo detenga (una característica deseable de un conmutador telefónico o cualquier otro sistema 24x7). Escuché un informe de una gran organización de telecomunicaciones británica que ejecuta un cambio durante un año y que solo no pudo enrutar cuatro llamadas en ese momento. Erlang tiene otras características como el manejo remoto de excepciones también.

+2

Huh, y pensé que CCR representaba a Credence. ;) – harpo

5

Me parece que golpeaste el clavo en la cabeza en tu pregunta. Parece la alternativa de Microsoft.NET a algunos de los idiomas/frameworks que mencionaste. Echar un vistazo a la Guía del Programador aquí:

Axum Programmer's Guide

parece que debería jugar muy bien con el resto de .NET Framework. Podría abrir algunas interesantes interacciones C#/F #/Axum ...

+0

Encontré el PDF que vinculó allí muy legible y útil como introducción general. –

1

Aquí hay una actualización del estado de Axum. Aparentemente, algunas de las características de concurrencia ya no serán parte de C#/VB.Net.

... los conceptos alrededor de paralelismo seguro y programación basada en agentes fueron vistos por muchos como demasiado fuera de la corriente principal ser adoptado ahora en lenguajes como C# y VB. La idea de Axum era no forzar estos conceptos en lenguajes de uso general, por lo que aquellos de nosotros que trabajamos en Axum no estamos sorprendidos.

Cuestiones relacionadas