Slashdot Mirror


Microsoft Releases New Concurrent Programming Language

zokier writes "Microsoft has released a new programming language called Axum, previously known as Maestro and based on the actor model. It's meant to ease development of concurrent applications and thus making better use of multi-core processors. Axum does not have capabilities to define classes, but as it runs on the .NET platform, Axum can use classes made with C#. Microsoft has not committed to shipping Axum since it is still in an incubation phase of development so feedback from developers is certainly welcome."

19 of 297 comments (clear)

  1. WTF is a "Concurrent Programming Language"? by Alethes · · Score: 5, Informative
    1. Re:WTF is a "Concurrent Programming Language"? by Alethes · · Score: 4, Insightful

      Because the PHBs like a single vendor. Nothing confuses them more than saying, "We're getting the OS from Microsoft, the database from Oracle, the language from Sun and the hardware from Dell." The less companies in this list, the better, regardless of the merits of technology.

    2. Re:WTF is a "Concurrent Programming Language"? by theArtificial · · Score: 4, Insightful

      Synergy. "With our development suite you have tools that specialise in X Y Z allowing you to do A B C. Give us your money."

      I thought the general consensus on this site especially with regards to open source software was that choice is a good thing? I'm sure if they used an existing language Microsoft would employ an embrace and extend strategy that would have developers/purists up in arms.

      --
      Man blir trött av att gå och göra ingenting.
    3. Re:WTF is a "Concurrent Programming Language"? by Tanktalus · · Score: 4, Funny

      "What do you mean? We bought you Visual Studio with Visual C/C++ and Visual BASIC!"

      Don't confuse them with facts. They'll just retaliate by making your life worse.

  2. Focuses on Interfaces to Ease the Pain by eldavojohn · · Score: 4, Informative
    Much like web services, the importance seems to be in the interfaces. After scanning the developer's guide, the most important aspect of this language seems to be that it's a C# plus Axum libraries that allow you to describe "channels" with input/output keywords. Your Primary Channel is your main program or main 'thread.' If you define an input like:

    input int foo;

    in your channel class then you can communicate with agent instances that implement that channel quite easily like:

    bar_agent::foo <-- 134;

    If the data can't be sent over a channel you use (and this word should sound familiar to you web guys) a schema.

    From there on out it gets a lot more complicated with state and domain communications/sharing. It looks better thought out than most of Microsoft's libraries I've been forced to use but--as always--new languages need many releases before they are production worthy. A noble effort to simplify concurrency. With some really slick operator coding and overloading, you could probably get a similar thing going in Java or C++.

    One last thing I'd like to bitch about is that this download is an MSI. Really? You really need to do that? For the love of christ, I'm a developer. Could you please just give me a standalone zipped up SDK directory that I could add to my path if I want to? I'm not even going to install this because it's going to get all up in my registry n' shit.

    --
    My work here is dung.
    1. Re:Focuses on Interfaces to Ease the Pain by ShadowRangerRIT · · Score: 4, Interesting

      One last thing I'd like to bitch about is that this download is an MSI. Really? You really need to do that? For the love of christ, I'm a developer. Could you please just give me a standalone zipped up SDK directory that I could add to my path if I want to? I'm not even going to install this because it's going to get all up in my registry n' shit.

      While I realize that bitching about MS products is a common hobby, you could just extract the files directly and avoid any installation.

      msiexec ships with Vista (and possibly earlier versions of Windows, I haven't checked). There are a number of third party programs that could do it as well, just look around.

      --
      $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
    2. Re:Focuses on Interfaces to Ease the Pain by ipoverscsi · · Score: 5, Informative

      Off topic, but here goes.

      The package must be shipped as a Windows Installer simply because it's got .NET objects in it. These objects must be installed in the Global Assembly Cache (GAC), which means they must be versioned and reference counted. It is possible (though unlikely) that the installer doesn't even create any registry entries.

      Now, .NET was supposed to give us "xcopy installs", so it's possible that MS could ship a ZIP SDK pacakge; but then you'd be responsible for lugging around all of your dependencies from install to install of your own software. Plus, then MS would have to manage two different installation packages, and we all know how easy it is to keep different versions of the same thing in sync.

    3. Re:Focuses on Interfaces to Ease the Pain by ClosedSource · · Score: 5, Insightful

      I don't know about "devlopers", but real developers use whatever OS they need to get the job done.

    4. Re:Focuses on Interfaces to Ease the Pain by Jurily · · Score: 4, Funny

      For the love of christ, I'm a developer.

      MS applies that term to Visual Basic users too, you know.

    5. Re:Focuses on Interfaces to Ease the Pain by BitZtream · · Score: 4, Informative

      As a developer you should be fully aware of the fact that you can extract the files from the MSI if you really want to. I'll help though. For most MSI files a simple:

      msiexec /a filename.msi /qb TARGETDIR=C:\tmpdir

      Will do what you want.

      There is also the Less MSIerables app from the WiX project: http://sourceforge.net/projects/wix/ that will let you extract the files directly. Plenty of tools to accomplish what you want if you'd take the 2 seconds to Google for it.

      You should also be aware of the fact that the MSI probably goes ahead and integrates the SDK with Visual Studio so the libraries, binaries and help are in path and available without a bunch of extra crap to do on your part, which for me personally, I'd rather have it do than wasting my time trying to figure out what needs to be done even if they did bother to document everything.

      I realize that most of the slashdot crowd thinks having to do everything from the command line based on a man page is a good thing, but for the rest of us it stopped being cool when we got out of school and had to get a job where they expected us to actually get shit done and not sit around all day with our thumbs up our asses playing with Linux.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  3. My feedback by Anonymous Coward · · Score: 4, Funny

    The windows version works great, but Axum on Linux isn't ready for prime time, yet. However, Axum is powerful enough that you should probably change your platform to permit its use, so if you have a new app being developed, I'd force your engineers to use Axum and develop it on windows.

    And I know what I'm talking about because I'm an IT manager at a Fortune 500 company.

    1. Re:My feedback by ultrabot · · Score: 5, Funny

      Axum on Linux isn't ready for prime time, yet. However, Axum is powerful enough that you should probably change your platform to permit its use, so if you have a new app being developed, I'd force your engineers to use Axum and develop it on windows.

      I agree. I'm uninstalling Linux as we speak.

      I expect 15% of the software to be written in Axum within 4 year, with the rest being split between Ruby on Rails, Silverlight and Adobe Flash Player (tm).

      --
      Save your wrists today - switch to Dvorak
  4. This will be fun... by Tenek · · Score: 4, Interesting

    I see Microsoft is doing its best to help developers all over the world create race conditions. I wonder how many programmers there are who never really 'got' concurrency. Hopefully I'm not one of them. (And no, there is no programming language that can prevent you from screwing it up.)

  5. Re:So, where did they steal this idea from? by thrillseeker · · Score: 4, Interesting

    The "channel" technique makes me think of Occam.

  6. Queue a new internet Want ad by Like2Byte · · Score: 5, Insightful

    Wanted:
    Senior Software Engineer
    Windows Platforms
    MFC C++ - 10 Years
    C# - 5 years
    Axum - 5 years

    You *know* it's going to happen.

  7. The good points of a concurrent language by Tetsujin · · Score: 4, Insightful

    I see Microsoft is doing its best to help developers all over the world create race conditions. I wonder how many programmers there are who never really 'got' concurrency. Hopefully I'm not one of them. (And no, there is no programming language that can prevent you from screwing it up.)

    Concurrent programming is becoming increasingly important for any kind of high-performance project. This doesn't necessarily mean one needs a "concurrent programming language" to do it - but whatever the chosen mechanism, the goal is the same - write a program that uses all cores effectively. One way or another, professional programmers are going to need to 'get' concurrency in the coming years.

    The benefit of a language that provides parallelization as a basic assumption is that the language itself can provide infrastructure (for message-passing, task-scheduling, and so on) useful to the task. Such a language encourages programmers to think about problems in terms of how they can be parallelized, but leaves the compiler or the runtime engine free to make decisions about how the parallelization is to occur.

    Another benefit of such a language is that a language that takes certain ideas as base assumptions can help guide the programmer's approach to a solution. This can involve a significant learning curve for the programmer (see, for instance, Prolog or various functional languages...) but it can help programmers to achieve a new way of solving their problems: in this case, one that is rather well suited to the current needs of high-performance CPUs.

    The challenge with synchronization in Axum, presumably, is that it's possible to write code that will run in the engine that won't conform to the rules for an "actor" - that it will perform some non-thread-safe access to a file, or that it will otherwise do something that won't be safe when run in parallel. From that perspective it's no different from (almost) any other language - as you say, it's still possible to screw up. What it does provide, however, are guidelines and framework to help keep you from screwing up.

    --
    Bow-ties are cool.
  8. Not "Insightful", "Clueless" by SuperKendall · · Score: 4, Informative

    Because you would whine and bitch about them "stealing" the language if they were to co-opt another concurrent programming language to run in their .NET environment.

    Come on, who ever complained about Microsoft "stealing" any of the existing languages supportted by .Net? That was not true for Eiffel or managed C++ or IronPython, or... you get the point.

    Now it is true that C# was taken lock, stock and barrel from Java when the Microsoft embrace and extend strategy was slapped down there (read the memos), but no-one ever complained about other languages being added in just as no-one accuses Java of "stealing" all the languages that VM supports now. So using an existing concurrent language would make a lot of sense and annoy no-one.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Not "Insightful", "Clueless" by Burkin · · Score: 4, Interesting

      Come on, who ever complained about Microsoft "stealing" any of the existing languages supportted by .Net? That was not true for Eiffel or managed C++ or IronPython, or... you get the point.

      Actually there have been many criticisms of IronPython and Managed C++ in the usual "embrace, extend" whining on this site and on other tech sites.

      So using an existing concurrent language would make a lot of sense and annoy no-one.

      Bullshit. People would whine no matter what because it's Microsoft.

  9. Re:So, where did they steal this idea from? by kohaku · · Score: 4, Interesting

    I think most concurrent languages have been derived at least in part from CSP, so they'll probably all 'feel' like occam; it's just occam got there first. Incidentally, if you already knew about occam, you might want to check out David May's (the guy behind Occam) new startup XMOS.
    I'm not affiliated, but I do own their dev kit :-)