Role in IT decision-making process:Align Business & IT GoalsCreate IT StrategyDetermine IT NeedsManage Vendor RelationshipsEvaluate/Specify Brands or VendorsOther RoleAuthorize PurchasesNot Involved

Work Phone:

Company:

Company Size:

Industry:

Street Address

City:

Zip/postal code

State/Province:

Country:

Occasionally, we send subscribers special offers from select partners. Would you like to receive these special partner offers via e-mail?YesNo

Your registration with Eweek will include the following free email newsletter(s):News & Views

By submitting your wireless number, you agree that eWEEK, its related properties, and vendor partners providing content you view may contact you using contact center technology. Your consent is not required to view content or use site features.

By clicking on the "Register" button below, I agree that I have carefully read the Terms of Service and the Privacy Policy and I agree to be legally bound by all such terms.

Microsoft's Axum Parallel Programming Language Advances

Microsoft comes one step closer to delivering a commercial parallel programming language to application developers by turning the Axum incubation project over to the MSDN DevLabs portal where Microsoft houses some of its more innovative projects that are being worked on and evaluated for commercialization.

Microsoft has come one step closer to delivering a parallel programming language to developers.

According to a Microsoft description, Axum "is a language that builds upon the architecture of the Web and principles of isolation, actors and message-passing to increase application safety, responsiveness, scalability and developer productivity."

By being hosted on MSDN DevLabs, Axum moves a bit closer to commercialization-either as a stand-alone technology or as part of a larger system such as the Visual Studio IDE (integrated development environment).

Further reading

"Our goal is that many of these technologies will eventually be incorporated into Microsoft products in some form or another. Others may be retired or released into the shared-source community. Some projects highlighted here are already in a released state but they have new concepts within them that we are trying out, to see how developers react to them for possible inclusion in other Microsoft products. Some are in prototype packages that will evolve into larger, well-known products."

Niklas Gustafsson, a software architect in the Microsoft Developer Division and member of the Axum team, said in a blog post alerting developers to the recent Axum move to DevLabs:

"It needs to be reiterated that Axum is an incubation effort, which means that we're not committed to shipping it in any particular product release or in the form offered by this preview. A lot will depend on your response and involvement with us.This language is not a finished product-we are quite certain that it is too big and we have some ideas on what to take out, but would like to hear from you about it. We welcome suggestions on syntax, but we are more concerned about getting the semantics right first-only where syntax stands in the way of comprehension is it really a big deal for the moment."

Other DevLabs projects include Popfly, which aims to provide an easy way to build and share mashups, gadgets, games, Web pages and applications; Small Basic, a project to make computer programming accessible to beginners; and Code Contracts, which are static library methods used from any .NET program to specify the code's behavior.

Moreover, "Axum makes use of several concepts to enable safe parallel programming," Somasegar said. He added that these concepts include:

"??Ã Domains isolate state, which helps you avoid implicit dependencies in your code that can result in difficult-to-find concurrency bugs. Domains make you more productive by allowing you to worry less about concurrency and focus more on your algorithms and code.??Ã Agents are threads of control that process messages asynchronously to stay scalable and responsive. Axum employs a cooperative blocking model that utilizes latencies to do meaningful work; agents that wish to receive a message will block, allowing another agent to execute in its place.??Ã Message-passing isn't always feasible-in certain situations it just implies too much overhead. With Axum, you have the option to declaratively state how an agent intends to use domain state. The compiler will enforce that agents uphold their stated intentions and the runtime will schedule your agents accordingly to maintain safety.??Ã In Axum, concurrency is the default. All agents execute concurrently unless you explicitly restrict them. This means you spend less time on boiler plate code for multi-threading and more time on your code.??Ã Agents can be hosted in a single process, in a separate process, or on a separate machine. This unified programming model means you don't need to rewrite your code when you want to run it in a distributed scenario. "

Advertiser Disclosure:
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.