Axum Programmer's Guide-Introduction
Why Another Language?(为什么要另一种语言?)
编写并行程序需要将解决方案划分成一系列相互平行的任务。一些问题很容易并行化,因为所有任务都可以独立的运行。但在另一些问题中,任务之间则相互依赖并需要协同。
例如ray tracing,一种通过追踪光的路径生成图像的方法,就是一种并行的方法,由于追踪每一条射线可以作为一个独立任务来完成--处理一条光线对处理其他光线没有影响。
另一方面,在游戏模拟中,游戏被建立成为使用并行但相互影响的对象模型。对象的状态和行为对其周围对象是有影响的。
通过Axum,我们提供了一种语言使得程序员可以以接近他们问题的自然定义的方式安排组件之间的协同关系。换句话说,如果你能够建立起解决方案的组件相互作用模型,使用Axume是编码将是十分直接的,而且你可以避免许多常见的协同相关的程序问题。
编写并行程序一个明显的动机就是让其运行的更快。与其紧密相关的地则是使程序在运行时可以做更多的事。在后台任务处理的同时处理用户输入,这一点对于交互型应用程序来说是至关重要的。
交互性应用程序的响应常常被用户输入或I/O等长等待时间的组件而阻断。比如,邮件客户端必须等待可能在比较慢的网络中的服务器传来的数据。使得程序在向服务器请求数据时保持响应就变得十分有意义。
Axum的一个目标就是让程序员在编写程序时不用担心协同性问题。你的程序将在默认设置下快速正确运行,而不是之后修改的结果。
最后,Axum还是出在试验之中。我们希望将其做的更好并且我们希望知道你的想法。我们见十分感谢你对这个语言的评论,以及你想使用Axum怎样编写软件。请通过MSDN论坛分享你对Axum的建议、想法和评论。