I think that non-windows devs don't realize how much Windows devs LOVE Visual Studio. They will spend however much money it costs to use it. Also, VS is like $500-600? Devs pay that for IntelliJ all day long, so why not VS?
Honestly, for a tool you would use all day long at work, $500 is cheap. If you NEED Visual Studio for C++, then it's worth the money.
Sure, on Linux and OS X you get free dev tools like XCode and GCC, but MSFT spends a lot of money building these tools, so if they decide they no longer want to subsidize them by offering them free, it's their business.
They want devs making Metro apps, not old Win32 C++ apps. If they don't get Metro apps to be built in a big way, Windows 8 tablet edition for human beings 2012 is never going to take off.
Maybe this is more of an internal fight between DevDiv and Windows. DevDiv's team had been stripped, their projects like WPF and Silverlight end-of-lifed, while the Windows team has made a fourth version of XAML.
The only for DevDiv to regain its honour is by reminding Windows Divisino that the oxygen Windows lives on is in DevDiv creating new developers. Given that VS11 Express is only a toy, and requires a presumed $99 annual subscription to deploy, it is going to be difficult for any students to justify.
This civil war is going to maim the Windows ecosystem at a time when it is especially weak.
This is a very insightful theory and I really, really hope you're wrong.
Regarding students, though, Microsoft has DreamSpark, which looks like BizSpark for students (all the way down to high school students, apparently). They can get free access to VS and at least some subset of operating systems.
developers only like visual studio because either they haven't had much experience with anything else, they use languages that require massive amounts of IDE to be practical or they paid for it which results in 'money bias'.
Its rarely because they knowingly like it.
That's the opinion I've managed to deduce after working with over 200 heavy vs users over 10 years.
I beg to differ. I've written code on Windows, OS X, and Linux, with tools ranging anywhere between Xcode, VS, and plain old vim.
Visual Studio is a fine IDE that has a lot of things going for it. Hell, now that I write Obj-C for a living I wish Xcode was more like VS (especially when it comes to stability).
In contrast, I'd rather marathon American Idol than use Eclipse for a single day.
I use ex-vi (the original Bill Joy) version for preference, in 80x24 xterms tiled using fvwm2.
I am not really a GUI person.
I ... loved Visual Studio + VB6 for UI heavy apps. The programming language was kinda lame but it was just about good enough, and the form designer tools were excellent.
I debugged using whatever the (now lost from my memory) appropriate colloqualism for printing to stderr was, because yeah, sorry, I'm like that. But I loved it for everything else even so.
Do not underestimate the awesomeness that is Visual Studio once you've had time to develop enough Stockholm to ignor the crazy quirks.
XCode has matured very recently. It's gone from worst IDE to arguably best in a very short amount of time.
Recent additions include integrated Git, code intelligence so good that it understands C++ templates, in-IDE static analysis, one-keystroke to fix typos in identifiers, etc.
No scripting. Cretinous window layout facilities. No search and replace in selection. No mixed source/disassembly view. Registers view disappears when as you debug. No keyboard shortcut for rectangular selections. Code browsing menu 'thing' doesn't show structs. That stupid log navigator is too damn narrow, and has a proportional font. Pasting of rectangular selections doesn't work. No column/line number display. Lacks numerous basic simple text manipulation commands.
If only Xcode could refrain from crashing long enough to take advantage of those new features.
As a Mac dev for about two decades, I find that Xcode has taken a massive downhill slide latel. It went from merely mediocre to nearly unusable in a remarkably short amount of time.
I know a professional developer or three who write low level and high level code on multiple platforms and use vim and gdb fluently and who prefers Visual Studio for coding on Windows. If you do the kinds of development that it is designed for, especially the dotnet managed stuff, it is a really good development environment.
But for doing lower-level native Win32 code, the kind of thing Microsoft seems to be wishing would just go away, I prefer a command line compiler. Linux and Mac are generally much better for that kind of development.
I disagree. For a few hundred/thousand line projects it's ok.
I deal with large (1Mloc+) 10 year+ old codebases in C#/ASP.Net and it is in no way capable of handling a large project without chopping it into miniscule assemblies and having solutions for each.
The IDE is monolithic enough to have severe usability and performance problems. It doesn't scale well and therefore is a risk if you want to continue using the platform for many years.
It's true. I have to split off separate .slns when the code gets to be large like that. I would not try to handle 1M lines in a .sln. UI responsiveness took a huge hit after VC6 with the dotnet stuff and never really recovered.
>developers only like visual studio because either they haven't had much experience with anything else, they use languages that require massive amounts of IDE to be practical or they paid for it which results in 'money bias'.
Disclaimer: I work for Microsoft.
Your assertions about why developers like Visual Studio are nonsense... I like it over Sublime Text, RubyMine, WebStorm, gedit, XCode, and a slew of other tools / editors I've used. Why?
Because it has a great extension ecosystem (ReSharper, dotCover, TestDriven.NET, Git Extensions, VisualSVN), has by far and above the best live debugging tools on the planet, the best code completion, IntelliSense, and a slew of other features that make my development faster and easier.
And I say this as someone who's done plenty of C# in MonoDevelop too, without the aid of many of those VS features.
So no, Visual Studio hasn't jedi-mind-tricked me into liking it - I like it because it gives me the best experience and makes me more productive.
Interesting. I develop C++ on windows, linux, and mac OS X, and I find visual studio better than any of the alternatives. Obviously visual studio only excells for those languages it has support for, but for those it is best.
Or they paid for it because the alternatives weren't any better. Visual Studio Debugger is very nice, I don't know of anything that's as good, and as mature. Attach To Process with a nice UI is a great tool compared to the command line debugger.
VS 2008 and 2010 are worlds better than 2005 -- so if we count the last 10 years nearly half of that will be people using 2005, and yes that was awful. Two version later, is it worth asking for a good price for a full featured version? Probably.
DDD, Netbeans debugger and Eclipse's debugger are on equal standing. I've used all heavily.
However, I tend to rarely use the debugger on my own code in any language since I started doing incremental TDD and using assertions galore all over the place to check inputs, outputs and assumptions. Prevention is better than cure (or debugging).
You can't assert everything, you can't test everything (like the tests themselves).
You can't assert a list of hard coded values are all correctly spelled via an assert. You can't determine if a library that has it's own asserts is failing or your code is failing. You can't always add asserts to legacy code, etc.
Hats off to you if you can use DDD heavily. I've given up on that shortly after every time I've tried to use it. It seems very prone to crashes and lockups. MSVC will too sometimes, but it's really pretty rare.
I can only suggest that either your users or your perception of these users is heavily skewed in an odd direction. VS is not without issues (bloat, Intellisense) but imho it's absolutely the best at most of what it does. Specific users with specific preferences will prefer something else, and in most cases they will consider themselves 'super power users', but for most developers anything that's not VS is a step down in features and usability.
I've only used VS for 180ish days, but it is good enough that my confidence in LightTable increased when I found out Chris Granger was previously involved with VS.
The biggest problem is that they apparently will no longer provide free compilers. That will make continuous integration windows backends even harder to deal with than they currently are, and basically unavailable to most open source projects.
Really? I'm pretty sure csc.exe (the C# compiler) ships with the .NET client re-distributable, for free. On any box that has any kind of .NET installed I can fire up notepad and a command prompt and compile something. Are you confusing IDE with compiler? Or talking about only the C++ compiler? There are also a plethora of free IDEs Qt Creator, SharpDevelop, Monodevelop et.al. I don't see what the big deal is.
The article mentions that the Windows 8 SDK will no longer ship with a compiler tool chain. So, it's not just the IDE - the compilers are also gone - you could still use older compilers, just like you could use older versions of Visual Studio.
We're not talking about C#, we're talking about native code C++ development with the Win32 API. What most commercial Windows apps are still written in and what Microsoft used to call "Windows Platform SDK" or just "the Windows SDK".
It sounds to me as though your logic double-flipped at the end of your message... I'm going to try to break it down into propositions:
Proposition A: Developers who write windows apps love
Visual Studio.
Proposition B: Developers who NEED Visual Studio can
afford a $500 piece of software.
Proposition C: Other OSes still provide free tools
Proposition D: MSFT spends money on developing this, so
they can choose to charge money for
supplying this
Proposition E: MSFT wants people to make metro apps in a
big way, and not to work on win32 stuff
Conclusion: Charging money for Visual Studio is sensible
Propositions A, B, and D form a coherent argument in support of your conclusion, and Proposition C may be nice to include, but isn't helping here. Proposition E appears to run entirely counter to your point.
edit: as my responder points out, I'm incorrect in this assessment -- proposition E fits into the argument just fine. This is the folly of reading comments before having read the article!
Proposition E is actually in line with his point: if you read the article, WinRT development remains free. It's Win32 development only that now requires a paid Visual Studio license. So, in essence, what I read the original poster as saying is:
"Visual Studio is sufficiently awesome that full-time developers--the ones who need Win32 support--can easily afford $500. For those who can't, Microsoft is making a deal: they'll give you a free copy of Visual Studio, but it's only good for targeting the new Windows 8 Metro environment. In other words, if you're willing to take the risk of developing for the new hotness that currently has basically zero apps for it, Microsoft will foot the bill. If you want to target the massive installed base that is Windows 7 and younger, you foot the bill."
I'm not saying I agree, but the argument is coherent.
Thank you for pointing this out! I tend to read comments before the article to get a feel for the cultural context and perceived value of an article (it filters a lot of linkbait), and then I jumped the gun here. I've added a note to my original comment.
After having read it, the article's title really doesn't fit the reality. If you want to develop traditional win32 apps, you can keep using VS2010. VS2011 has all the latest and greatest tech for them, but that's similar to the present divide between Express and Ultimate. This article appears to be trying very hard to frame the debate or sensationalize things.
It's fair to point out that if this trend continues into the next generation so that VS2010 becomes a sort of ghetto-compiler it's very bad, but we have no reason to believe right now that it will. Microsoft probably isn't stupid enough to shoot themselves that hard.
Apple spends money developing Xcode yet when they started charging $5 for it there was a huge outcry. I feel like HN often upvotes the most contrarian comment by default (assuming it's well argued).
As a rule of thumb, Windows devs are mentally locked into Visual Studio and GUIs. They do not want to touch the command line. Open source scares them because it's libre & free. It's like some freaky movie where the Alien Software got downloaded into human brains and started issuing commands.
It's like some of these guys don't do computer programming any more. They program Visual Studio using C#. Of course, Visual Studio ain't bad, but the Visual Studio users are pretty rabid.
They would fork over thousands for their addiction.
I disagree. Your points are not substantiated and are attacking fellow programmers.
I know many programmers (myself included) who have programmed and are reasonably competent in different languages using different text editors and IDE's on different operating systems and have made a conscious decision to use Visual Studio because, well, it is the tool that allows them to be the most productive. Companies choose Visual Studio because it allows their teams to be most productive.
I find myself using VS more and more for personal projects, as I haven't found anything that can beat the combination of F# and C# when used from VS. The .NET framework and languages have seen the introduction of some really exciting stuff such as LINQ, Reactive Extensions etc. etc. which are all supported by VS and offer more than enough for developers to keep interested in the platform.
That has not been my experience at all, even at primarily Windows targeting shops. Yes, Windows devs do love Visual Studio for intellisense and debugging. However, the few that I've met that weren't competent with gcc/cygwin/ssh/git/cmake/&c were more embarrassed about it than anything else.
Your "rule of thumb" is a pretty rash generalization. I use Visual Studio because I have a Windows machine, and on this platform it's the best tool for the job I'm doing. I am primarily a C++ developer, both at my day job and on my own projects. I got started using vim, gcc and make. I am perfectly comfortable on a Unix terminal, but I avoid terminals on Windows because - and maybe you've noticed - Windows terminals are dreadful.
Here's a rule of thumb for you: Good developers use the best tool for the job without getting religious about platforms.
Indeed - why not make a $2500 MSDN subscription compulsory to develop for the Windows desktop. After all if you are writing apps you can afford it.
If they decide that they don't want any apps on Windows other than Office it's their business. But it's a bit of a change from developers-developers-developers!
>Indeed - why not make a $2500 MSDN subscription compulsory to develop for the Windows desktop. After all if you are writing apps you can afford it.
You're being sarcastic, but it would a possible move too. And yes, if you're writing apps you can afford it. It's not like Windows has too few apps, anyway, the could use the price as a quality control to throw one-man software companies out (there goes 99% of shareware).
Honestly, for a tool you would use all day long at work, $500 is cheap. If you NEED Visual Studio for C++, then it's worth the money.
Sure, on Linux and OS X you get free dev tools like XCode and GCC, but MSFT spends a lot of money building these tools, so if they decide they no longer want to subsidize them by offering them free, it's their business.
They want devs making Metro apps, not old Win32 C++ apps. If they don't get Metro apps to be built in a big way, Windows 8 tablet edition for human beings 2012 is never going to take off.
It makes sense for Microsoft.