| I know this is getting a lot of fanfare but let us apply four major costly problems I'm having with the CLR/Framework at the moment: 1. Microsoft.Build.Tasks (the bit that has been screwing with me all day) contains static sealed classes with nothing in them. I thought this was a reference source rather than a source of empty interfaces and empty implementations? Still having to resort to reflector to find out what is going on. Problem not solved. 2. So, ReaderWriterLockSlim has a bug in it with respect to low CPU allocation in virtual machines where 20 concurrent threads accessing a locked object at the point of write cause the spin lock in the implementation to thrash and up blows a race condition taking out the process. I can actually see where the bug is now. Where do I submit this bug, bear in mind I can actually recreate it? I phoned up our MSDN rep - they said raise it on Connect. There isn't a place for it on Connect. Phone up generic paid support, three levels of technical staff bounce me around for a week. as a PAID UP GOLD PARTNER, this sucks. If you open your source, track bugs openly too. Problem not solved. 3. This is only the core framework. We really need the entire lot including all dependencies and external tools. There aren't any symbols on symbol server or this for VSTO or Sharepoint for example? What we do get is another black box somewhere in the system that we can't inspect or poke inside even though it's a wrapper for a COM API or a product API. Problem not solved. 4. Does Rosyln/next MSBuild support parallel compilation? Being tied to a single compilation core on a VS2013 build means we have 8 core Xeons sitting there doing nothing. Our only hope of speeding this up is cranking up to high end i7 to get one core with crazy integer performance. 20 minute sit down compiles are too much these days. http://xkcd.com/303/ I understand this is progress and Roslyn is cool and all that, but what does it deliver for every day users of the CLR/Framework? It doesn't really make our day much easier. In fact stuff that really improves developers' lives has stopped appearing completely and instead we get tedious reengineering projects and new features designed only to lock us further into the system (VS online+sign in anyone?) Also how does this compare to say LLVM/Clang? I imagine this semantic compilation stuff will make some static analysis stuff easier and stamp on the toes of Coverity etc but that's about it. Edit: sorry if this is purely a content-free rant and unpopular but after 12 years of this crap from Microsoft, I want to see new wheels, not the same ones reinvented and remarketed. Developers are lapping up this crap constantly as if it's as good as it gets. We need some REAL CHANGE towards openness and consistency and to ask the community and users what they want rather than telling us what we need. |
To take from another conversation, msbuild is very powerful but it's not very usable at all. So much tribal knowledge and secret handshakes you can't learn unless you have a contact in devdiv.
Beyond that, I've opened 3 incidents with Microsoft in the past and they've been nothing short of amazing. One guy even busted out an assembler and stepped through my code to identify that our issue was actually a deliberately closed accidental exploitation path. Enormously frustrating at the time, but he even provided a workaround for us but, like you say, it took several months.
To be specifically productive though: I feel like Roselyn does provide lots of value to developers in terms of what VS plugins can do. There are infinity re-implementations of the MS Compiler out there in terms of plugins and analysis tools. Would be nice to have everyone at least speaking the same language. I think the other thing this initiative does is put the license out there with permissiveness and clarity. Mono can feel comfortable lifting the concepts and integrating it in to their own without worrying about being sued now. This is all great things that they are making available their compiler as a tool and non-platform limited licensing. But - it's only a step it's not the end-game.
What are things you think really improve developers' lives that microsoft used to build they don't build now?