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