我今天在slashdot上阅读this故事,他们宣布微软推出了一种新的并行编程语言。
这种新的编程语言是什么?它说并行编程。但它是否会成为MPI,PVM,OpenMP和类似并行库/框架的替代/替代品?
有什么想法吗?
答案 0 :(得分:9)
Axum是一种语言结构,可以使安全和高性能的并发编程更简单。由该语言建模的概念避免了通过使用lock
(在C#中),Monitor
,ReaderWriterLockSlim
等来明确线程同步...
可以说,阿克苏姆的许多想法自1986年以来一直在Erlang programming language - 这是瑞典工作的研究人员设计的一种语言,用于爱立信在电话交换机上运行,从而支持大规模的吞吐量。高度并发负载是如此重要,它被设计成语言。虽然Axum中的许多想法都不是新的,但它们对于.NET和CLR来说无疑是新手(至少在语言层面。)
包含以下一些想法的现有.NET库是:
与Erlang一样,消息传递是Axum的核心概念。与Erlang一样,Axum对于消息的接收者是位于进程中还是远程位置基本无动于衷。 Axum目前提供与WCF的集成。
Axum与上面提到的库不同,它在语言层面包括对这些概念的支持,而不仅仅是通过使用库。 Axum编译器不仅处理Axum语言,还处理C#语言本身的一些实验扩展;即isolated
和readonly
个关键字。
为语言添加新功能并非易于理解。 Spec#是另一种在MSR开发的C#-superset语言(与并发无关)。正如.NET 4.0中对Code Contracts的支持所示,Microsoft决定支持添加新的API而不是新的语言扩展(这有利于CLR上所有语言的用户。)但是在Axum的情况下,那里C#3.0语言的丰富性不足以表达类型及其成员所需的不可变性约束,以实现真正安全的并发编程。
在涉及Erlang并喜欢我所看到的内容之后,我对Axum可能带给我们的地方感到非常兴奋。团队提出的对C#语言的一些扩展对常规C#项目也很有用。
最后,我想指出Erlang不仅仅是一个好的并发模型。 Erlang是一种严格的函数式编程语言。它支持热插拔代码,这意味着系统可以升级而不会被停止(电话交换机或任何其他24x7系统的理想功能)。我听到一家大型英国电信组织的报告,该组织运行一年的转换,但在那段时间内没有拨打四个电话。 Erlang还有其他特性,例如远程异常处理。
答案 1 :(得分:5)
在我看来,就像你在问题中击中头部一样。看起来像Microsoft.NET替代您提到的一些语言/框架。在这里查看程序员指南:
看起来它应该可以很好地与.NET Framework的其余部分一起使用。它可能会打开一些有趣的C#/ F#/ Axum交互......
答案 2 :(得分:4)
Axum是微软“Maestro”语言的新名称,该语言最初是并行编程的一种研究语言,但最近才被“提升”为一流的语言。
这里有关于第9频道的更多信息:
Maestro: A Managed Domain Specific Language For Concurrent Programming
...以及official Axum team blog。
答案 3 :(得分:1)
以下是Axum状态的更新。显然,一些并发功能将不再是C#/ VB.Net的一部分。
......关于安全并行性和安全性的概念 许多人认为基于代理的编程远远超出了 现在采用C#和VB等语言的主流。的想法 Axum不是强迫这些概念用于通用语言,所以 我们这些在阿克苏姆工作的人并不感到惊讶。