MS Technology Redux
Thank you (even for those who call me a fear mongerer) when I wrote about the transience of Microsoft technologies. I’ll try my best to respond.
But, first off some corrections and apologies.
Scott Hunter of Microsoft has said that there are still people working on Dynamic Data, and they will be preparing it for release. Being a bit of a data geek, I always felt DynamicData is a very clever perspective on the relationship between data and its presentation. It will never be suitable for mainstream use, but I’m glad to have seen it come into being. DynamicData should really live on CodePlex the way Silverlight Toolkit does (i.e. these a code drops of an actively developed product), so that aficionados can try out new ideas on it.
Also, I’m removing COM from the killed list. It has reached a higher and more exalted status. It is the basic building block of MS technologies, and is very stable, and will follow Windows wherever it may go.
Microsoft wields considerable power over the software development ecosystem. It is the default toolmaker for Windows. There is a good side to this though, just like the sun has a rudimentary API to earth, and the API is raw (just light and heat), there is something special and transformative going on. You have various specialized flora and fauna converting the raw light and heat into usable material, and the resulting ecosystem is complex and is almost magical when you look at how amazing it is.
Traditionally, when MS releases a piece of technological framework, it is reasonable but usually half baked (as in not complete). As developers find that the “Grid doesn’t work well for xyz scenario” etc, an ecosystem of control makers develops and provides solutions. As this runs, applications that are developed on top become more capable and powerful than what MS had provided. These applications get used for 10 years, and 10 years of bug fixes delivers a polished product experience. This is nothing to be laughed at. Many large companies are built on top of servicing contracts that these applications generates. People pay for this because the application is capable and complete.
This ecosystem thrives under two conditions: API stability and clout. Supplementary tool makers can only invest if they believe that the platforms are going to be still going to enjoy clout in 5 years time. ADHD on the part of DevDiv hurts this. It also means that software developed on top of “old” platforms will be poorer for it, because the toolkit is now incomplete. VB6 may still run but who would write more toolkits for it?
Many readers have argued that it is the price of progress. I believe it is a issue of mindset. I am reminded of an magazine interview with a developer over at the Office division. This guy hasn’t been out of college for long, and he said that he had to be very careful of any changes he makes because this code was originally written before he was born. In reality, Office development is more or less independent of the tools division. They still run VBA. Their UI may have changed, but code is touched with reverence, not with a “not my idea” type of attitude. I bet you there are some VBA macros I wrote 15 years ago that are still in production use with minor modifications. David Archer wrote about the durability of MS Access. I believe this is because MS Access is run by the Office division. They think differently there.
Luke G said
VB6? Really? I still maintain at least a dozen legacy programs written in VB6/ADO. They run fine and can be installed without any massive online framework downloads in less than 2 minutes. I wish I could say the same for Java and .net.
For the legacy software needs of the company I work at, the combination of VB6/ADO Just Works™ and has no current need of replacement. I’m not going to go so far as to say that I’ll force VB6 as the only solution for new development projects though…
VB6 will have to survive in a room that has no oxygen. If you have a 300kLOC product on VB6 what are your choices? There are still feature requests that are piling up. I work for a company that makes products on top of VB6. You couldn’t imagine how much the cost of migrating to .NET is. In the end, the customers are worse off because some of the toolkits we developed internally had to be redone, and porting means we don’t have time to work on customers new feature requests.
Arsalan Ahmed writes:
Technology changes with time. Software developers must keep up with the rest of the world… yes, even Microsoft developers. Embrace the change or you will become an also ran.
Arsalan, technologies should be a business enabler. When technology begins to wags business’s tail, this is a sign of sickness. Survival depends on a careful balance between stasis and change. “A rolling stone gathers no moss”. You cannot improve on something that keeps on being torn up.
I would like to see your justification for most of the 2011 category particularly:
◦Silverlight – I know MS is going through and trying to reenergize Silverlight but I don’t believe it is in anyway dead. Also HTML5 does not fully replace Silverlight and HTML will never keep up with the rate of enhancement that Silverlight or Flash can. Therefore, it won’t be long before enhancements to Silverlight breathe new life into it that HTML won’t see for decade(s).
◦WebForms – MVC isn’t replacing Web Forms it is just another alternative, which has it’s own strengths and weaknesses. I was at Mix 2011 and Damian Edwards was saying there is still extremely high demand from the community for improvements to Web Forms and MS is actively continuing to work on web forms enhancements.
◦SOAP: Maybe so time will tell as adoption of specifications (like ODATA) pick up but still the SOAP specification was 13+ years old wasn’t it time for this to either be majorly overhauled or outright retired.
Stagnation sucks so I for one and glad of the progress.
Thank you WhyId. You made very good points. On the point of Silverlight though, there is intense competition in rendering and animating HTML. There are some signs that it is HTML perf is overtaking Silverlight. In the end, it depends on how close the implementer can get the scenegraph concepts (HTML or Silverlight) to map to hardware. On WebForms: I am glad to hear this. There is no reason why MS needs to stop development on it. WebForms is a good start and it still needs polish. Here’s what I mean:
I don’t think the design decisions are to blame. Once MS writes something and throws it over the wall, they need to keep iterating on it. They can’t do this if they keep jumping on to the next fashionable bandwagon.
ASP.net MVC looks to be the bees knees today, I don’t disagree. However, we have to acknowledge whether we are looking through it from a fashion mindset (e.g. 80s hairstyle) or an architecture for the ages (The construction of Sagrada Familia began in 1882, and is anticipated to be finished in 2026. As time progresses, new technologies and materials are used).
Where to next?
The software landscape today is as confusing as ever. Stacks are still being torn up at a dizzying pace. And yet, the fundamental purpose of software hasn’t changed. It is to assist people and businesses to manage their data efficiently so that businesses can run faster. They live on a diet of Forms and Databases. The core functionality requires only one small team, or one dedicated developer who is willing to support one framework for his entire career. To this, I recommend evaluators closely look at CLSA. The name may be boring and tells you nothing about what it is. But behind the framework, is Lhotka, who is a someone who has committed much of his life’s work over how to properly architect business applications. His choices are carefully made and relatively technology agnostic, though much is built on top of MS technologies like WinForms and WebForms. If only his voice has Microsoft’s clout, it would be even more widely used today.