Why Microsoft may be in the lead again

On this years PDC Microsoft has shown several interesting products and projects which maybe will give them a step or two in advance to the Java application stack:

  • The Microsoft Azure Platform: Microsoft finally gets into the cloud hype, after Amazon and Google. Azure is highly integrated with Windows, naturally, but I think for the first time in history the outside world is supported from the start. OpenID will be used as authentication service, also nearly all services are accessible by REST or native clients in Java and Ruby. Azure by itself could provide what BPEL and W3C Web-Services have promised but never provided, a easy to implement solution to collaborate between different process participants without investing into new middle ware systems.

  • The evolution of C# continuous: Not only that C# 4.0 will repair the generic type systems, finally Co- and Contravariance are supported, they also will introduce a very neat solution for handling dynamic data types. This will be a big advantage over Java where generics will not be corrected in near future, at least not with Java 7, and although Groovy and JRuby are extremely good replacements if it comes to dynamic languages, it hurts that the original language does not evolve (but Scala and Clojure are showing what could be possible). Backwards compatibility is already broken, so why not go after C#?

  • Concurrency in implementation and test: Besides the already existing Parallel Extensions for .Net FX, which are also part of the Visual Studio 2010 CTP, Microsoft goes a step further with the Concurrency and Coordination Runtime (CCR) and Decentralized Software Services (DSS) Toolkit. In my opinion this is the most interesting and workable solution for computational grids I have seen so far although the Java frameworks GridGain and TerraCotta are also very nice. But Microsoft has found and API which successfully abstracted away the nasty synchronization locks and gives a very RESTfull way to monitor ongoing activities. The second interesting project is CHESS which allows it for the first time to really test concurrency in implementations. Normally finding Heisenbugs is very tedious and you must always have a bit of luck. With CHESS, they can be found much faster and backtracked to their cause.

  • Oslo as Meta-DSL: Maybe this will not be the final solution, but Oslo is a nice looking Meta-DSL which allows it to define textually grammars for DSL or schemas. Mostly textual descriptions are a lot more maintainable as graphical descriptions and it is definitely easier to process them as XMI or MOF models.

Advertisements

6 comments so far

  1. florin on

    Well, I’m confused. Except ‘Oslo’ you have an (prior) existing solution in the Java world that you point out.

    So what gives the title?

  2. Mike Johnson on

    Sorry, but calling terracotta a framework is completely backwards. It tries very hard to be a transparent cluster solution.

    The only thing you might choose to include in your code is annotations to customize how the cluster works with your data, but that can easily be done in a single config file.

    I’m not affiliated with them, just a happy user. 🙂

  3. 1 on

    Cloud may mean something to startups, but not corps, where java is dominating. There is no way they move data to someone else. It may be the shared hosting/vps 2.0 though. Read what Larry Elisson says about it.

    “Backwards compatibility is already broken” how is it broken? Scala is definitely better than Java, but there is one moment – there are too many good things in Scala. Java has the balance – it’s simple enough, C# – not really.

    There will be new fork-join framework in jdk7, and yes – there are terracota, hadoop and lots of other alternatives which actually work well.

    Oslo? Jetbrains MPS!

  4. rmeindl on

    – I knew of Jetbrains MPS, which is free available as EAP, but Microsoft Oslo starts with a simple text based concept, not only for the language but also for the repository. Both are supperior to OMG concepts.
    – Clouds are extensions, not replacements for corporate networks. But also SaaS can work, as salesforce.com has shown. An a lot of corporate networks are running Windows based office networks.
    – Compare Terracotta with GridGain or CCR/DSS is not fair because they realized, I agree successful, a transparent distribution infrastructure for shared data structures but Terracotta exactly no computational grid, but you can build solutions on top.
    – Doug Leas Concurrency library already contains the Fork/Join framework which is the ancestor of the new one in Java 7.
    – Most of the more interesting libraries for Java bound today to Java5/6 language features or the newer class formats. Some features can realized on Java 1.4 with backports, but it is cumbersome. C#, especially 3.0, has a lot of features which makes code more readable: properties, delegates, events, the lambda syntax for them and especially LINQ. This maybe a matter of taste, but Java needs Groovy to achieve the same … and generics without type information makes the life sometimes a bit complicated.

  5. David Hofmann on

    What you will always see is thta microsoft always make very good IDE support does not grow with the language features/frameworks which you don’t find it in the other languages

  6. David Hofmann on

    Sorry my english, discard the message before

    What you will always see is that Microsoft always make very good IDE support as its language features/frameworks grows, and that you don’t find it in the other language


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: