27 karma · joined April 12, 2010
Rumor has it WPF is going the way of Windows Forms. It will be supported but no new features. With that in mind, think of all the UI frameworks MS has had wrapping up Win32: MFC, ATL/WTL, WinForms, WPF. Nothing seems to stick. Office just writes their own stuff that they KNOW they can depend on it being there. Duplication sure. But DevDiv is notorious for releasing things and deprecating the past "great" technology within a few years.
There is another reason they ignore the new tools: managed is slow for the client. For the server world managed is great and has won. Nobody in their right mind would write native web apps. They write the stuff that needs to be native (db, webserver) then glue the app together with python, ruby, C#, or Java (I know, a vast oversimplification of webapps).
Clients don't have the advantage of the webapps. We don't have a lot of computer to do things in parallel. Every millisecond counts to make the app appear as responsive as possible.
Why does managed suck for the client? JITing is slow and the code it generates isn't nearly as good as a compiler. NGENing is possible but still slow because of garbage collection and marshaling data between native and managed code. Little things like that add up and slow down responsiveness a lot on the UI side of things and that is what the user notices and complains about.
This is what I think of when the subject is talented people leaving MS: http://www.techflash.com/seattle/2008/12/Key_data_center_arc...
http://googletesting.blogspot.com/2009/06/james-whittaker-jo...
I think Amazon and Google are better because of it.
What I really wanted to address was performance. There was indeed a huge push after Beta2 to improve perf. At the end of the day 2010 is still slower than 2008 and eats up more memory. I guess that's an accomplishment if sucking less is considered good. But will people upgrade? I don't know. Hopefully because that's good for me. But I am pessimistic and currently looking for other employment as the experience was that bad.
Why was it so bad? Well I feel most of the pain points could have been avoided. Management ignored a lot of the performance/memory issues last summer and had an attitude of ship ship ship with NO regard for quality. I was responsible for reporting an overall grade for the areas I tested. I reported them to be poor and fair. I also listed all the known bugs in those areas. Management boosted the rating to good on the basis that memory and performance bugs don't count.
Let me reemphasize that last point: I was told memory and performance bugs DID NOT count towards the overall quality rating of the product. This was management's attitude through most of the product cycle. We could never give an honest assessment of the product because they would challenge it and argue that it wasn't that bad.
I believe their reason was simple for doing this. They need to take the data to their managers and up the chain of command to paint a pretty picture of how great the product is. Even if that's an illusion. Basically telling the truth of product quality is punished. If I lied about quality managers would be ecstatic about how a great a job we did. If I told the truth about quality instead of thanking me for figuring out where customer pain points might be the attitude was ALWAYS this should have been found earlier. The problem is many times I did find it earlier and they did their best to bury it before the next meeting they were heading off too report product quality.
I will say this. IntelliSense is much better for C++. Even though other native tools might suck. IntelliSense teams seems to be doing a pretty good job. It has always has been my favorite VS feature.
But money is silly. The best thing MS can do is create an environment in which Senior Developers don't leave. But the only way MS knows how to do that is with $$$. Which is not sustainable.