Pergunta

Eu li esta história no Slashdot hoje, onde eles anunciam um nova linguagem de programação paralela pela Microsoft.

O que é essa nova linguagem de programação sobre? Diz Programação Paralela. Mas é ele que vai ser uma alternativa / substituto para MPI, PVM, OpenMP e bibliotecas paralelas semelhantes / enquadramentos?

Qualquer pensamento?

Foi útil?

Solução

Axum é uma linguagem estruturada de tal forma a tornar programação concorrente seguro e performance mais simples. Os conceitos modelados pela linguagem evitar a necessidade de fazer a sincronização de threads explícita através do uso de lock (em C #), Monitor, ReaderWriterLockSlim, etc ...

Pode-se argumentar que muitas das idéias dentro Axum ter sido na língua Erlang programação desde 1986 - uma linguagem projetada por pesquisadores que trabalham na Suécia para a Ericsson para rodar em centrais telefônicas, e, portanto, apoiar a transferência maciça sob carga altamente concorrente era tão essencial que ele foi projetado para a língua. Embora muitas das idéias em Axum não são novos, eles são certamente novo para .NET e o CLR (pelo menos no nível da linguagem.)

bibliotecas .NET existentes que contêm algumas dessas idéias são:

Tal como Erlang, a passagem de mensagens é um conceito central em Axum. Como Erlang, Axum é em grande parte indiferentes quanto a saber se o destinatário da mensagem está localizado em processo ou remotamente. Axum atualmente fornece integração com o WCF.

difere Axum das bibliotecas mencionadas acima na medida em que inclui suporte para esses conceitos no nível da linguagem, não apenas através da utilização de bibliotecas. As ofertas do compilador Axum não só com a linguagem Axum, mas também com algumas extensões experimentais para si a linguagem C #; ou seja, os isolated e readonly palavras-chave.

A adição de novos recursos para um idioma não é algo a ser tomada de ânimo leve. Spec # é uma outra linguagem C # -superset desenvolvido em MSR (sem relação com a simultaneidade). Como pode ser visto com o suporte para Código em .NET 4.0, a Microsoft decidiu a favor adicionando uma nova API, em vez de novas extensões de linguagem (isso beneficia os usuários de todas as línguas no CLR.) no entanto, no caso de Axum, não há riqueza suficiente na linguagem C # 3.0 para expressar os tipos de restrições imutabilidade exigidas de tipos e os seus membros para programação concorrente verdadeiramente seguro.

Tendo se envolveu em Erlang e gostando do que eu vi, eu estou muito animado sobre onde Axum pode nos levar. Algumas das extensões para a linguagem C # proposto pela equipe são úteis para projectos regulares C # também.

Finalmente eu gostaria de salientar que há mais para Erlang do que apenas um bom modelo de concorrência. Erlang é uma estrita linguagem de programação funcional. Ele suporta código de hot swap, o que significa que um sistema pode ser atualizado sem ele nunca ter sido interrompido (uma característica desejável de um interruptor de telefone ou qualquer outro sistema 24x7). Eu ouvi um relatório a partir de uma grande organização britânica de telecomunicações executando um interruptor por um ano e só deixando de rota quatro chamadas em que o tempo. Erlang tem outras características como a manipulação de exceção remota também.

Outras dicas

Parece-me que você bateu o prego na cabeça em sua pergunta. Parece que a alternativa Microsoft.NET para alguns dos idiomas / frameworks que você mencionou. Dê uma olhada em Guia do Programador aqui:

Guia do programador Axum

Parece que ele deve jogar bem com o resto do .NET Framework. Pode abrir algumas interessantes C # / F # / Axum interações ...

Axum é o novo nome para a linguagem da Microsoft "Maestro", que originalmente era uma linguagem de pesquisa para programação paralela, mas foi "promovido" a uma linguagem de primeira classe apenas recentemente.

Um pouco mais informações sobre Channel 9 aqui:

Maestro: Um gerenciado específico domínio de idioma Para Concurrent Programming

... e na oficial Axum equipe do blog .

Aqui está uma atualização sobre o estado de Axum . Apparrently algumas das características de simultaneidade não será mais parte do C # / VB.Net.

... os conceitos em torno paralelismo seguro e -Agente baseado programação foram vistos por muitos como demasiado longe fora do dominante a ser adotado agora em linguagens como C # e VB. A ideia de Axum foi para não forçar esses conceitos em linguagens de uso geral, de modo aqueles de nós que têm trabalho em Axum não são surpreendidos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top