Pregunta

Yo leo este historia en slashdot hoy donde anuncian un nuevo lenguaje de programación paralelo de Microsoft.

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

¿Alguna idea?

¿Fue útil?

Solución

Axum es un lenguaje estructurado de tal manera que simplifica la programación concurrente segura y eficaz.Los conceptos modelados por el lenguaje evitan la necesidad de hacer explícita la sincronización de subprocesos mediante el uso de lock (Cª#), Monitor, ReaderWriterLockSlim, etc...

Se podría argumentar que muchas de las ideas dentro de Axum han estado en el lenguaje de programación erlang desde 1986, un lenguaje diseñado por investigadores que trabajaban en Suecia para Ericsson para ejecutarse en conmutadores telefónicos y, por lo tanto, el soporte para un rendimiento masivo bajo una carga altamente concurrente era tan esencial que fue diseñado en el lenguaje.Si bien muchas de las ideas de Axum no son nuevas, ciertamente lo son para .NET y CLR (al menos a nivel de lenguaje).

Las bibliotecas .NET existentes que contienen algunas de estas ideas son:

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

Axum se diferencia de las bibliotecas mencionadas anteriormente en que incluye soporte para estos conceptos a nivel del lenguaje, no sólo mediante el uso de bibliotecas.El compilador Axum se ocupa no sólo del lenguaje Axum, sino también de algunas extensiones experimentales del propio lenguaje C#;es decir, el isolated y readonly palabras clave.

Agregar nuevas funciones a un idioma no es algo que deba tomarse a la ligera. Especificaciones# es otro lenguaje de superconjunto C# desarrollado en MSR (no relacionado con la concurrencia).Como se ve con el apoyo a Contratos de código en .NET 4.0, Microsoft ha decidido favorecer la adición de una nueva API en lugar de nuevas extensiones de lenguaje (esto beneficia a los usuarios de todos los lenguajes en 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 concurrente verdaderamente segura.

Después de haber incursionado en Erlang y haberme gustado lo que vi, estoy muy emocionado de saber adónde nos llevará Axum.Algunas de las extensiones del lenguaje C# propuestas por el equipo también son útiles para proyectos habituales de C#.

Finalmente, me gustaría señalar que Erlang es mucho más que un buen modelo de concurrencia.Erlang es un lenguaje de programación funcional estricto.Admite código intercambiable en caliente, lo que significa que un sistema se puede actualizar sin necesidad de detenerlo (una característica deseable de un conmutador telefónico o de cualquier otro sistema 24 horas al día, 7 días a la semana).Escuché un informe de una gran organización de telecomunicaciones británica que utilizó un conmutador durante un año y solo no pudo enrutar cuatro llamadas en ese tiempo.Erlang también tiene otras características, como el manejo remoto de excepciones.

Otros consejos

Me parece que se ha puesto el dedo en la cabeza en su pregunta. Parece que la alternativa Microsoft.NET a algunos de los idiomas / marcos que usted ha mencionado. Echar un vistazo a la Guía del Programador aquí:

Guía del programador de Axum

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

Axum es el nuevo nombre para el lenguaje de Microsoft "Maestro", que originalmente era un lenguaje de investigación para la programación paralela, pero ha sido "ascendido" a un lenguaje de primera clase recientemente.

Un poco más de información en el canal 9 aquí:

Maestro: Un dominio específico del lenguaje de programación concurrente Gestionado Por

... y en el oficial Axum blog del equipo .

Aquí está una actualización sobre el estado de Axum . Apparrently algunas de las características de concurrencia ya no será parte de C # / VB.Net.

  

... los conceptos alrededor de paralelismo y segura   basada en agentes de programación fueron vistos por muchos como demasiado fuera de la   la corriente principal que se adoptará ahora en lenguajes como C # y VB. La idea de   Axum era no forzar estos conceptos sobre los idiomas de uso general, por lo   aquellos de nosotros que tienen trabajo en Axum no se sorprenden.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top