这个新的Axum编程语言是什么?

10
我今天在Slashdot上读到了这个故事,他们宣布了一种由Microsoft开发的新并行编程语言。
这种新的编程语言是关于什么的?它说是并行编程。但它是否将成为MPI、PVM、OpenMP等类似并行库/框架的替代品或替换品?
有什么想法吗?

哦,以前从未听说过Axum。非常有趣。加油微软!先是ASP.NET MVC,然后是F#,现在又来了Axum?太棒了! - Gabriel Florit
3
如果有人已经用这个做出了有趣的东西,请在此发帖链接到你关于它的博客文章。 - Tim Matthews
Axum和Parallel C#之间有什么关系? - reinierpost
4个回答

9
Axum是一种结构化语言,旨在使安全且高效的并发编程更加简单。该语言所建模拟的概念避免了显式使用锁(如C#中的lockMonitorReaderWriterLockSlim等)进行线程同步。
可以说,自1986年以来,Axum中的许多思想都已存在于Erlang编程语言中——这是由瑞典的Ericsson公司的研究人员设计的一种用于电话交换机的语言,因此在高度并发负载下支持大量吞吐量是其设计的重要部分。虽然Axum中的许多思想并不新颖,但它们对.NET和CLR来说肯定是新的(至少在语言层面上)。
包含其中一些思想的现有.NET库包括:

像Erlang一样,消息传递是Axum中的一个核心概念。与Erlang类似,Axum对于消息的接收者是否位于进程内部或远程并不关心。目前,Axum提供了与WCF的集成。

Axum与上述库的区别在于,Axum在语言层面上支持这些概念,而不仅仅是通过库的使用。Axum编译器不仅处理Axum语言,还处理了一些实验性的C#语言扩展,即isolatedreadonly关键字。

向一门语言添加新功能并不是一件轻松的事情。Spec#是另一种C#超集语言,由MSR开发(与并发无关)。正如我们在.NET 4.0中看到对Code Contracts的支持一样,微软已决定更倾向于添加新API而不是新的语言扩展(这有利于CLR上所有语言的用户)。然而,在Axum的情况下,C# 3.0语言中没有足够的丰富性来表达类型及其成员所需的不变性约束,以实现真正安全的并发编程。
我曾涉猎Erlang,并喜欢我所看到的内容,我对Axum可能带给我们的未来感到非常兴奋。团队提出的一些C#语言扩展对于普通的C#项目也很有用。
最后,我想指出的是,Erlang不仅具有良好的并发模型,还是一种严格的函数式编程语言。它支持热插拔代码,这意味着系统可以升级而无需停止(这是电话交换机或任何其他24x7系统的理想特性)。我听说过一个来自英国大型电信组织的报告,他们运行了一年的交换机,在那段时间内只未能路由四个电话。Erlang还具有远程异常处理等其他特性。

2
哦,我还以为CCR代表着Credence呢。 ;) - harpo

5
看起来你在问题中的提问非常准确。这似乎是微软.NET对你提到的某些语言/框架的替代方案。请查看此处的程序员指南: Axum程序员指南 看起来它应该与.NET Framework的其余部分很好地配合。它可能会开启一些有趣的C#/F#/Axum交互...

我发现你提供的那份PDF通俗易懂,并且作为一个介绍性的材料非常有用。 - Drew Noakes

4

1
这里是Axum现状的最新更新。显然,一些并发特性将不再成为C#和VB.Net的一部分。
引用: “……安全并行性和基于代理的编程等概念被许多人视为过于超出主流范围,无法在像C#和VB这样的通用语言中采用。 Axum的想法是不强制将这些概念应用于通用语言,因此我们在Axum上工作的人并不感到意外。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接