This post is amusing because it writes off Windows, but then claims that the UX and the developer tools are the two areas where there's a lot of work to be done on modern UNIX systems.
For those who haven't used them professionally, Microsoft's developer tools are absolutely fantastic. And not just the editors, debuggers, and code assistance -- the profiling, system monitoring, and large project workflow tools are years ahead of anything that you can get off-Windows. Even if you're willing to pay Real Money to IBM, the only other serious tools vendor left, or pre-merger Sun, which had the best non-Windows profiling support in-system. Coming back to XCode, the GNU stack, and Eclipse after years on the MSFT platform was like taking a flying leap back into 1998.
UX is pretty consistent on both the Apple and Windows platforms. Once you learn a couple of apps, you've basically learned them all. I can't say that for the Linux desktop, where apps still seem to be roughly as consistent as architectural patterns across 3rd party Java frameworks. It's hard to imagine something "better" without moving to a new device factor so that you don't alienate your user base.
"The profiling, system monitoring, and large project workflow tools are years ahead of anything that you can get off-Windows."
It's patently false that the profiling and system monitoring tools you can get on Windows are years ahead of anything you can get on a different platform. In fact, it's the opposite [1, 2]. And I wont even get into the fact that we're still catching up to 30 year old Lisp machines in the areas of editor integration, debuggers, and code assistance.
I don't think you've experienced the level of integration Visual Studio brings to this. DTrace and Valgrind are great but they would need to be seamlessly integrated into Eclipse to be comparable.
In-application integration is necessary? Higher integration just means that your debugging task is modal instead of allowing you to edit your comments while the debugger is running. It also means your application eats up more memory and takes longer to launch. It also means you can't substitute it as easily for something different.
I'll take my separation + hooks for launching any day over massive integration that means doing what you want is hard / impossible.
Depends on the language / framework. ASP.NET 2.0 with VB, for instance, does not. Furthermore, modifying a WebService doesn't inform the web server that it's been updated, so it keeps serving up old versions of your code.
ie, even MS's own products don't play nicely with each other. But you're more stuck with them than you would be with something more atomic and disconnected.
Uh, I have access to GDB, Valgrind, and DTrace through Emacs (either through GUD or a separate mode). The integration is seamless enough for me, and if it wasn't, I could spend an hour writing an Emacs Lisp extension to fix it. This is classic FUD.
As I noted in my previous post, it's pretty much out-of-the-box for Emacs as well. But even if it wasn't, who cares? You're going to spend the next decade at least using your development tools. The smart thing to do is to pick the highest quality tools and spend the time to learn them.
In no other creative or engineering profession is there this expectation that the most advanced tools are shrink wrapped together. Who gives a shit if you can buy paint together with your brushes? Just buy the best damn paint and brushes you can find, regardless of who sells them.
I'm not arguing with you about what is the "best" development toolchain. FWIW I'm an Emacs user myself.
But my point stands: if you do want the fully-integrated IDE experience, VS is state-of-the-art, there's nothing like it on any other platform. That is why I don't say "better" or "worse" I say "not comparable".
Incidentally, you should check out a guy named Richard P Gabriel. His company made Energize, an Emacs-based IDE (in fact they were responsible for the Emacs/Xemacs schism). You may judge the interest in full IDEs in the Unix world from the fact that it no longer exists...
I dunno, I've got a hate-hate relationship going with Visual Studio. I've encountered so many bugs in the system (a particularly good one: UI designer executing code which made the window I was building work, calling the DB, autocompleting its own variable name with the results, filling drop-downs and everything) and so many basic functions are a PITA or non-existent that I routinely find myself wishing they'd just give me a gdb terminal.
Personal main peeve: the debugger is far from intuitive, frequently chops off strings in the inspector w/o giving any way to read the rest of them (no magnifying glass), and offers no way to test anything which cannot be done in a single line of code - ie, anything to do with enumerators, and nearly 1/2 the .NET framework I've encountered.
I'll agree that UX consistency certainly isn't as good as it could be on Linux, but I wouldn't hold up Microsoft as a paragon of that. Every version of Office for the last decade has done things its own way and differently to the underlying system; most of those have just been visual (XP + 2003) but of course 2007 is considerably different with its funny logo thing in the top left and the Ribbon.
Windows 7 seems to be full of things like that; most programs still have the classic menu strip at the top; Office has a sort of one with the Ribbon and hides parts of it under that logo thing; Explorer doesn't have one at all any more and Paint has a Ribbon too but a funny blue lozenge instead of a logo.
I would contend that Ubuntu Lucid is rather more consistent than that; every preinstalled app I've used is GTK-based so they all look pretty much the same.
I used Visual Studio for a very long time, and I think you're overrating it. The developer tools on Linux are just as powerful but they are different from what you'd use in a Windows environment. Sometimes people confuse difference for inferiority.
So why, oh god why, do the Windows Driver Framework examples in their latest kit include no integration with Visual Studio? You need a command line build to build drivers.
Yeah. I was kind of disappointed that the tech literature boasted over and over "Hey! This is the new easy to use driver framework!" but did absolutely nothing with the toolchain.
I'm just pushing through this aspect of the project so I can get back to linux kernel driver hacking, which is now looking like summer vacation.
I can't agree on the web side(asp.net, sharepoint, web parts, etc) but on the desktop (.net, c#, wpf, silverlight, parallel programming) I can't found something similar and when somebody speaks about HTML5 replacing the desktop I can't find any sense (I can hold my bet for the next 4 years.) There are few people with strong experience in many technologies to have a good argument in favor of the WEB with RIA. I simple example: there are not strong graph libraries (like Tom Sawyer, Jung) in html/JavaScript except prefuse in Flash.
Of course, since your professional career has been spent at Microsoft working in the Visual Studio group, it is no wonder you would perpetuate this view.
Xcode is far superior to microsoft's development tools. I think you're simply exhibiting stockholm syndrome. Please go back to developing only for windows. Thank you.
That really is where he's coming from. I worked at Microsoft a few years back, with some Vista and IM guys, and none of them used Visual Studio, despite pleas for feedback from DevDiv. It was all gvim and build.exe and windbg (the latter vastly more powerful than the VS debugger, even though I think the same team produced both).
For those who haven't used them professionally, Microsoft's developer tools are absolutely fantastic. And not just the editors, debuggers, and code assistance -- the profiling, system monitoring, and large project workflow tools are years ahead of anything that you can get off-Windows. Even if you're willing to pay Real Money to IBM, the only other serious tools vendor left, or pre-merger Sun, which had the best non-Windows profiling support in-system. Coming back to XCode, the GNU stack, and Eclipse after years on the MSFT platform was like taking a flying leap back into 1998.
UX is pretty consistent on both the Apple and Windows platforms. Once you learn a couple of apps, you've basically learned them all. I can't say that for the Linux desktop, where apps still seem to be roughly as consistent as architectural patterns across 3rd party Java frameworks. It's hard to imagine something "better" without moving to a new device factor so that you don't alienate your user base.