In an interview with Mary Joe Foley, Joel Spolsky says that Indigo will make building applications easier, but it won't lead to a whole new class of applications.
If you look at the different aspects [of Longhorn], like Indigo, I'm not really even interested. It's just a big communications architecture that makes it easier for programmers to build communications things. But there's no application you can't build right now because you don't have a good communications architecture. It might be harder (without it), but it's not going to enable you to build a whole new class of applications.
I think there is some truth in this statement. As Steve Swartz has said, Indigo is a replacement of the infrastructure and an evolution of the programming model, through simplification and a unification. As Clemens has demonstrated that you can use existing Microsoft technologies (ASMX, MSMQ, Enterprise Services, and Remoting) to do many interesting things today. If you need to build a service oriented application it’s worth starting today and not holding off until Indigo arrives. However, I think Joel underplays the benefits of making the programming model for service oriented applications simpler.
The problem with building service oriented applications today is that it takes talented developers, like Clemens to do them. As Don has mentioned, one of Indigo's goals is to make things so easy that he will have to join MS to survive.
The applications that are developed on Indigo may not be ‘a whole new class of applications’ (though I think it’s highly likely that the killer apps of the future will be based on top of communication technologies), but the fact they are easier to develop them should lead to more of these types of applications being developed. This is in the same way that VB enabled an increased number of COM applications that could have been built with C++. It’s an interesting argument as to whether VB lead to ‘a whole new class of applications’ being developed.
There are several questions that I still have about the impact of Indigo:
- Where will the business imperative to build applications that communicate more come from? Is it that there is a demand today but businesses aren’t developing the applications because of the technical cost?
- Will the increased ease of development encourage businesses to build applications that they haven’t considered building today?
- Will the pool of distributed application developers increase, or will Indigo just be adopted by the developers who are already building distributed applications?
- Will the increased simplicity of Indigo mean that the architectural concepts behind service orientation will be more widely used? For example, I’m puzzled as to why MSMQ doesn’t get more love – message queuing is an important architectural design and MSMQ works very well with a very simple programming API – but I don’t see it used as widely as I think it could be.
Thoughts? Comments?