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).
Good. Microsoft can officially go to hell with respect to desktop development after the day I've had today dredging through a debugging job from hell.
75% of my time writing software is:
* Watching VS crash miserably. It's just seriously unreliable.
* Digging through MSDN trying to find out cryptic errors.
* Desperately trying to debug issues with various black boxes (today was 4 hours on a w3wp crash due to a CLR.dll bug related to stack usage resulting in an interesting session with EDITBIN).
* Dredging through hotfix lists trying to find out which one solved a problem.
* Sitting on the phone for HOURS to MS support who barely speak a work of English these days and don't give a shit - they just want you to fuck off so they can close the case. This is usually because two products won't talk to each other (IE and ClickOnce for example).
* WAITING LITERALLY FUCKING HOURS for things to compile and rebuild.
* Endless fucking updates that take several minutes to apply, sometimes an hour plus. I WANT TO USE MY FUCKING COMPUTER.
Not much:
* solving problems of my own.
Sorry for the rant but that's why it's really dead.
Good riddance.
It's all a "me too" as google and apple have app stores.
I think the problem is with the software you are developing rather then the IDE. If it is taking you hours to compile, there is something very wrong. I recently worked on a couple of 1 mill+ loc projects made up of more than 100 projects in a solution, which compiled in a few minutes.
For what it's worth, I found VS2010 to be so slow and prone to crashing that I reverted to 2008. Since installing the VS2011 beta, though, I haven't looked back. It's been great.
I work on C++ desktop apps, though, and they aren't huge. Your mileage may vary.
Indeed I'm trolling so bad because I've only clocked approximately 18000 hours of using it in real life since the first beta drop of VS.Net 2002 to 22:15 this evening...
Yes that's really three zeroes rounded down heavily (8 hours a day, 23 days a month, 12 months a year for 10 years)...
Being that there was never a VS.Net 2002...It was merely Visual Studio.NET
But I digress.
Even if I assume honesty from you, what does it say about you that you would use a tool for 18K hours and then berate it in such a way because you had a bad day today? I have been using VS in its various forms since 1995 and while it can be buggy and can crash - it is still a venerable tool. I use XCode, MonoDevlop, RubyMine and Eclipse as well and they all have problems. Claiming VS is 'seriously unreliable' basically makes people ignore everything you say after that because millions of people know better. Crash yes, on occasion...unreliable is different.
It is referred to as VS.Net 2002 after VS.Net 2003 came out with .Net 1.1 if you want to be pendantic.
If you really want to be pedantic, Visual Studio .Net 7.0.
It's not just today - it's been 10 years of hell. Unfortunately it pays the bills (just about).
It's not venerable tool. It's like sitting in front of a pressing machine that pokes you in the eye once an hour, but not quite enough to do you serious damage.
It could be related to what he's working on and the tool chain he's using. If you venture out of the box, you can have a very different VS experience. I use C# + nothing else, so everything is very stable for me (occasionally I encounter bugs).
Really, Eclipse is the same way (if you don't add any extra plugins, it works very very well!).
It seems Microsoft only has one reliable tactical move: leverage the installed base of Windows users. They always fall back on this strategy whenever they want to prop up some other product.
For developers, they often provided carrots to encourage them in a certain direction. This tended to work sort of well, as there are always large numbers of new CS students expecting the Microsoft-recommended stack to provide a reliable career ticket. Maybe after they saw what Microsoft just did to Silverlight developers and they're not so eager to follow that path.
I never thought that they'd go so far as to actually take the stick to native Win32 developers. How can they not realize how much of their app ecosystem is still built on native code and how much easier it is to get started with that type of development on other platforms?
(In every one of these forums one or two people pop up to say how great this will be for developers and you can still use the free Visual Studio 2010 Express Edition to write native code or managed code to write C++. This is not correct, that product is crippleware and the managed code stuff is not anything like native C++.)
Directly contrary to the thesis of the article: Microsoft is absurdly generous with software licenses if you're going to build on their stack. Even without getting a deal from the inside, you can get on their e.g. BizSpark program, which gets you essentially every software product made by Microsoft for free for three years.
You're right it is absurd -- to think it's generosity. Whilst most development stacks these days are free in-beer-and-use for life - Microsoft gives you unlimited access to try out all their wares hoping you get hooked on as much of it as possible so when the 3 year is up, you're up for the lump some of your IT development infrastructure. It's a lot harder to move off a platform once you're hooked on it so by doing this Microsoft expects a life-long re-occurring income as your infrastructure upgrades and grows.
This 3 year "absurd generosity" is nothing more than a classic bait and switch Marketing strategy - although it does have the pleasant side-effect of not immediately obvious, and is sometimes mistaken for generosity.
By the time your biz has been developing for Windows for 3 years you should be able to afford the tools. It's not bait-and-switch, it's helping customers use a product to make money with which they can pay for the product - more a "pay only if it works for you" model. Fair enough.
> It's not bait-and-switch, it's helping customers use a product
It's only helping customers choose their product and "3 years free!" makes the MS Stack look like a better choice than it really is against the "really is free for life" stacks. This all happens at the most critical time for a business - when stakeholders decide what platform they're going to adopt.
Meanwhile whilst your busy building your business on their stack MS is free to raise their prices - and SQL Server is amongst the most expensive licences and hosting there is, which has recently seen liberal price increases - whilst at the same time offering a sweet migration path to their expensive subscription-in-the-sky services (aka Azure).
So do you feel the same way about Basecamp or ZenDesk or Salesforce offering 30-day free trials?
They also have the ability to crank up the price whenever they feel like it. They're also offering their product 'for free' at the most critical time for a business - when deciding what product to use.
The only way what you say makes sense is if people buying into the program are dumb enough or ill-informed enough to not know that there are open-source alternatives available for what they want to do.
But no one is confusing their free-trials as anything other than a marketing strategy to maintain a low barrier to entry to get more people to first try then use their product.
i.e. I've never heard anyone say SalesForce is absurdly generous because of their free trials.
> By the time your biz has been developing for Windows for 3 years you should be able to afford the tools
The point is that with their competition, customers are never required to afford the tools.
> it's helping customers use a product to make money with which they can pay for the product
Again, it's helping customers into a position they'll need to be customers in the future, if they have a future. If they don't, why would Microsoft care?
Do you know anybody who got "hooked" or "baited" this way? Or is this just your impression looking at it from the outside?
One datapoint: I've been developing on the MS stack for a little over 15 years, paying for my own tools. I've never paid anything close to full price for any of it.
Patricks's assessment of reality is a lot closer to the mark than yours. Microsoft really does want developers for their platform more than they want developers' money. All their stuff has price tags, but they lots of people on their payroll whose only job in life is to make sure nobody pays the price listed on those tags.
This 3 year "absurd generosity" is nothing more than a classic bait and switch Marketing strategy
As someone who is currently enjoying the benefits of BizSpark, you're completely wrong.
Your sense of entitlement is simply amazing. I write software, and I charge for it. I would never expect a package as complex and high quality as Visual Studio to be free. The fact that I can use it for free for three years is fantastic, and I'm grateful for it.
This seems like a huge over reaction, and bordering on misinformation.
First of all, for the longest time there were no free versions of Visual Studio for producing any kind of application.
Second, even the recent "Express" versions have always been severely crippled. Where were the "No-cost 64-bit development is Dead on Windows 7" when the previous Express versions were released?
The Express versions are more like promotional tools than real versions of VS. For any serious development you'll probably need to buy a VS license anyway.
Yes, Express has always seemed like something of an amateur development tool useful mainly to students who will graduate before writing 3000 lines of code.
But the command line compilers in the SDK and DDK are a different story.
Peter didn't say anything inaccurate as far as I can tell (I read the original MSDN post). He also laid out the history of VS Express very well.
You can do serious development with Express, its actually a quite nice and small IDE, great for laptops with capacity issues. If you are doing C# programming on .NET, then really what else do you really need?
This is not true, but I don't have the ability to downvote. You can define new class library projects in Express 2010, you can add it to other projects, you can do whatever.
I started off as a hobbyist developer who thought you had to use Visual Studio to develop for Windows. So I pirated a copy because I couldn't afford the real thing. As soon as I figured out that there were cheaper or open source alternatives, I uninstalled and went that route. The Express versions made me look at Windows development again.
Even though I can afford the Professional version now, I really don't like to see the way that they are going. I think its boneheaded and might close them off to a new generation of programmers. Open Source and IOS development are already seen as the "cool thing". I don't see how this move gets Microsoft back into the good graces of a younger generation of programmers.
I see this as just another side-effect of letting a marketing guy (Balmer) take the helm instead of a developer (Gates). As soon as visual studio became segmented into different versions it no longer represented a product designed to increase developer adoption of Windows. Instead, it became a potential profit center. A short-term financial gain at the long-term expense of Windows applications and market share.
Companies that are willing to take long term risks are not valued in a world of high frequency trading. Balmer is hoping that by force feeding Windows 8 Metro apps down developer throats he will convince Wall Street that Microsoft isn't dead yet.
"It's very likely that most productivity applications will stick with the desktop for some years to come. The same is true of utility programs, AAA-gaming titles, and a large swath of current Windows software..."
My bet is most of these developers currently pay for Visual Studio professional versions anyway. So, not much different for them. Seems like the new restrictions are just for hobby development - they'll be forced to make Metro-style apps, which is what they (MS) wants.
I actually remember trying to decide between eclipse and VB6. What whim made me end up choosing the latter now completely escapes me. I think it was because it didn't have those weird {} braces. Ah, C#, the irony.
Why any platform vendor would charge money for even the most powerful possible development tools is completely beyond me. All I can figure is that it makes sense to non-hackers who aren't competent to run a technology company.
At the time I was a hobbyist straight out of uni where £100 was rather a lot of money (yeah, they always convert dollars to pounds over here, greedy buggers). And I didn't need a manual as I picked up a 'learn VB6 in 30 days book'. Classic.
The trouble with all these 'cheap cause you use it all the time' tools is that to start with you don't want to use them all the time. So they're relatively very expensive.
For example I was just re-learning programming to prove a point to my boss that the internal IT program sucked.
No, more often than not they'll grow up writing Linux, iOS, Mac, and Android tablet apps. I've never actually even seen a WP7 device or a Metro app. Even shrinkwrapped apps coded entirely in dotnet are relatively rare. Even once Windows 8 starts shipping it will many years before Windows developers can ignore the billion-or-so computers still running Windows 7, Server 2k8, and below.
Compatibility with the native Win32 app ecosystem is the primary source of Windows' monopoly on desktop computing. Microsoft products rarely succeed outside of that (like any other company). For them to actively try to kill that off is truly insane IMHO.
That's not always the case. I have grown overwhelmingly comfortable writing all my utilities and demos in Visual Studio, but I no longer work for a Microsoft shop, which is where I've always gotten my VS licenses. On any new computer I purchase for myself or at a non MS-centric job, I rely on Visual Studio Express, and this news really sucks for me.
For years I did all my hobby development with the SDK command line C++ compiler. But I do that on Linux now anyway. Every time I think about making some of it portable to MSVC again MS pulls something like this to remind me why I left.
If my VS 2010 Express Edition works, why should I care?
Not having the 2011 IDE isn't going to affect my productivity anywhere near the degree that a lack of coding expertise does...it's not like I need to rush out and upgrade just for the sake of upgrading. If I have an excuse to skip an upgrade cycle next year, that's fine with me.
Over the long term, I expect Microsoft to continue to provide appropriate tools for the amazing price of free as in beer...again, it's just hard for me to see what someone is complaining about when 2010 Express Edition will continue to be available.
Finally, Reading through the comments, there's very little, "I use VS Express and now I'm screwed." I've played around with Windows Phone SDK, and it's easier to produce something that looks good than with WPF or Forms. Though I hate to say it, switching to all Metro for anything desktop related will probably make me more productive not less.
(edit) If I want to write a command line utility, I'll continue to use powershell.
I used be one of those suckers who would fork over $hundreds to Microsoft every few years to keep up with the latest-greatest VC++ and SDKs. Always annoyed me how Microsoft would cripple its affordable tools in ways that I feel actually hurt Windows in the long run. It definitely made me shelve my own Windows projects and get into web development instead, and there's no regrets there.
I don't understand why they would do this. Seems like people will just shrug and migrate towards the free tools that will help them solve a variety of problems in more interesting ways (e.g. gcc, python, ruby, JS, etc.). Then they'll start migrating towards platforms that make it easy to create those solutions (Linux, OSX).
I've found myself a nice sweet spot - Windows Driver Kit (WDK) - it ships with Compiler (MSC 15.0) that can target MSVCRT.DLL
It's unusual to use something like the WDK for Desktop Apps, but it works.
The compiler is a bit outdated, and there is need for some trickery to get stl7 (internal naming) to work, but if something is missing you can install latest WSDK with it and reuse missing libs/headers from there (platform sdk)
At work I do use VS2010 with .sln/.vcxproj, but for my projects I just stay away from this - either makefiles, shell scripts, or some other tool, but not .sln/.vcxproj
Then again, I don't do much UI stuff, and If I do - I do it in code.
Debugging is there (but a bit harder, then again much more powerful) with WinDBG. There is also OllyDBG.
So WDK + SDK (missing pieces) and I'm set. And since I avoid heavy C++ projects, prefer to stick to C it's not problem for me. Occasionally I have to fix simple problems, like variable not declared at the top of the block, which never "C" compilers are okay, but MSC 15.0 is not (the one from WDK 7.1)
Reminds me of OS/2: a great OS with expensive development tools, and some of us remember how it ended... except that Windows 8 is not so great in comparison with contemporaries.
I remember reading a Jerry Porunelle column where he described the difference between talking to IBM and Microsoft at COMDEX that year (1991?). IBM was charging something like $400 for its driver development kit at the time. He said "if I go over to the Microsoft booth and tell them I want to write device drivers for Windows, they'll stuff diskettes in my bag".
But I'm sure IBM was thinking "if you're making hardware devices why couldn't you afford $400 for a OS/2 driver developer license?" Like Microsoft's dim early understanding of open source software, completely missing the point.
For those just reading the headline and not the article, it is important to note that Visual Studio 2010 Express will continue to be available for free. (But it won't take advantage of changes to the compiler or the environment.)
Only a fool would base their development environment on the hope that an outdated compiler version will still be downloadable from Microsoft's website into the future.
That thing is crippleware anyway, it can't even produce native 64-bit executables. Raise your hand if you're still on a 32-bit operating system.
Well over half of the Windows install base is 32-bit. And 32-bit apps work just fine on 64-bit Windows (excluding system level utilities/drivers, of course).
I assume this matters in case you might later need to reinstall?
Just make a local copy of the installer after you download it then. Even if you forget to do this, prominent files like this don't disappear from the Internet; at worst you could torrent it. (And that should be legal since I don't think the software expires.)
I agree with Ars that the VisualStudio changes are bad, but is there any confirmation that the SDK change isn't temporary/won't have an official solution by the time of shipping? Microsoft has distributed the C++ compiler for years; it'd be very odd for them to do an about-face now. This reminds me off the uproar when Xcode 4 was suddenly a $5 purchase...except that it wasn't for users on the newer OS, when it actually shipped.
It has the appearance of being free and open, but a lot of the framework is not and has aggressive licenses.
It's easy to creep into those bits unintentionally via ignorance or dependency and then you're stuck with the vendor's extensions (MS) which are hard to shake.
(I've been a C# developer since pre-beta days so I'm fairly experienced at getting shot by these things).
Java is pretty much open, there are several implementations and most components in their stacks and application stacks on top are 100% pluggable (including J2EE). The same is not the case for anything which involves WCF, ASP.Net etc.
Ideally ANSI common lisp would be better as there are several competing implementations and one core standard.
Don't think that starting with lisp is going to cut it for a "Software Engineering" - type track. Took a CS level "functional programming" class however as part of my Software Engineering track and it has made my life all the more better...
I'd recommend to hire someone from an all-functional-languages school over a .NET or Java school. I would be confident that they would find things like Java or Python very easy.
Not all of us run Windows. I used Linux through my whole degree. Luckily my CS program was very good about very rarely requiring closed source or windows only software. There was only once, for some software engineering course, that I had to go down to the lab and use their machines. I think the homework was required to be done in Visio or something like that.
Definitely see your point. During my time in college I only used Linux also. Now I work for a niche company where using C# allows us to get a lot done very quickly for the size of the company, and it's efficiency for getting stuff done is amazing. I love how great it is for completing stuff, but does suck not being able to use on any platform.
That being said unless it's just a quick hack for myself I tend to stray from C# due to it not being usable on all platforms.
I used to be devoted VS2010 user, but when C++11 came out, I realized that Microsoft had no intention of incorporating all of the changes into its products in the near future. Accordingly, I moved to MinGW with gcc 4.7 and use Code::Blocks as my IDE. Although I'm giving up a considerable amount of usability, the trade off was well worth it.
> Accordingly, I moved to MinGW with gcc 4.7 and use Code::Blocks as my IDE.
I note that eclipse + MinGW works quite well, though I wish the debugger was a little more configurable. I haven't used Code::Blocks, so I can't compare.
Why are restrictions on WinRT boneheaded? Windows on the desktop and Android on mobile shows us how spyware and viruses are a very big problem without those restrictions, compared to, say iOS. Not to mention battery life and security.
Why should Microsoft or Apple decide what software I can run on my device?
Right now, one of the top stories on HN is Rogue Amoeba's Airfoil Speakers Touch iOS app being removed from the App Store (http://news.ycombinator.com/item?id=4019660). If the devices I use subscribed to the "user must be totally protected from themselves" philosophy, then I'd be totally unable to use their product. However, that's thankfully not the case -- I can still purchase and use Airfoil for Mac and Windows, two (currently) mostly open platforms (http://rogueamoeba.com/airfoil/).
Mountain Lion's Gatekeeper, iOS, and the WinRT restrictions make me wary of the future.
Why should Microsoft or Apple decide what software I can run on my device?
I believe their argument is to allow them to retain a semblance of control on their respective platforms. Something about people always blaming the maker of their operating system for the glitches which may or may not actually be the OS's fault, and can tend to be the programmers fault.
iOS has full W^X (aka DEP), Android does not. This prevents JITs on iOS, but it also makes exploits more complex. iOS also has full ASLR (even kernel-level ASLR likely coming in 6.0), Android doesn't to the same extent. iOS also has a more restrictive an low-level sandbox, which denies access to many kernel interfaces; Android has a sandbox, but less restrictive. iOS also has app review; with Android, malware could (and has) easily enter the user-facing market. All code that runs on iOS must be signed by Apple, this significantly hurts exploit development as all code must be written using "gadgets" from existing, signed code. Android will run anything.
Android also has the issue of updates: most Android 2.x phones are not going to ever get the improvements in later versions.
Can't comment on whether it's more or less secure than iOS. What I can say is that it's openness is not only it's biggest strength, but also weakness.
Quite simply because a network operator or handset manufacturer (often both) make their own changes to what is, I imagine, a relatively secure base platform.
That requires users to trust the NetOp and manufacturer's intentions and, assuming that's all good, users must trust that the NetOp and manufacturer's code is secure.
My trust, like my respect, is earnt. It's not handed away on a silver platter.
> Android on mobile shows us how spyware and viruses are a very big problem without those restrictions, compared to, say iOS
Which I took as saying Android is inherently less secure, but I agree after your clarification that isn't what you were actually saying.
That said, this doesn't show Android is more susceptible to viruses than iOS devices, and iPhones are not immune to botnets either (http://nakedsecurity.sophos.com/2010/03/09/8000-iphone-andro... - though this only affected jailbroken iPhones). Previous jailbreak exploits that worked through Safari could have been disastrous as well - it's not that iOS is more secure, but I do agree it seems to be less targeted. As the popularity of iOS seems to be on the rise I believe this will change.
> Windows on the desktop and Android on mobile shows us how spyware and viruses are a very big problem without those restrictions, compared to, say iOS.
But then, OSX and Linux don't have quite as many spyware and viruses, so the lack of restrictions is NOT the problem.
(yes, OSX has recently seen a surge in malware - the vast majority of it predicated on exploiting Java. Java might be a problem. Lack of restrictions isn't)
In August 2011, Gartner estimated Apple's PC market share in US as 10.7% for Q2 2011. Apple's worldwide market share is not listed, because it is not in the list of top 5 computer manufacturers, and is inferred to be 5% or lower.
Popularity seems to a better gauge. OS X was not very popular till recently and now it is getting the attention of malware writers. The fake antivirus malware for OS X didn't even target Java or Flash, it just plain got people to download an executable.
To sum it up, my assertion is:
Popular and lack-of-restrictions implies malware is made.
And what you said does not contradict that assertion.
> Popular and lack-of-restrictions implies malware is made.
That's a more reasonable assertion (but isn't what your original post said, nor was popularity implied).
And while it is reasonable, I don't think there's really a way to draw a conclusion here; e.g. in the early 2000s, Apache had something like 6 times the market share of IIS and about 1/30 of the exploits; product design DOES make a difference here.
I don't know how easy it is to get someone to run an OSX executable, but a linux virus spreading by email would have to include instructions to the user along the lines of
save this file as really_innocent_file, drop into a shell, run
chmod a+x really_innocent_file && exec really_innocent_file
and you'll see a naked picture of $CELEBRITY.
My current favourite is the one that goes something like, "Hey, did you know you can use the terminal to make sounds? Linux has this hidden 'xxd' sound device! Try this, it's the Imperial March from Star Wars!"
I hope nobody minds too very much if I inject just a little bit of reality here: we are just about the only profession/trade/occupation on the planet that seems to believe that our tools should be free (as in beer). Carpenters, mechanics, hairdressers, even window-washers all have to pay for their tools (and the associated supplies and tool maintenance), and most of them don't get anything like the ROI that a door-to-door ASP.NET site peddler would get pounding the pavement in downtown Lesser Podunk after buying the ultimate all-in version of VS. Maybe it's time we dropped the entitlement attitude.
>>we are just about the only profession/trade/occupation on the planet that seems to believe that our tools should be free (as in beer).
That is because software development tools like all other software is just data, once written and debugged. Data can be copied at zero cost, which can not be said about physical tools, at least for now.
Visual Studio 2010 will continue to work just fine. As will 2008 or even 2005. Anyone with a business license, even a $50 sole proprietorship, can get every piece of software Microsoft makes for zero dollars via free MSDN subscription [1]. This includes licenses for Office, XP/Vista/Win7 home/pro/ultimate, Visual Studio Ultimate, SQL Server, and so on and so forth. The licenses are free forever and ever.
Its an interesting trend. The Ars prose was a bit more breathless than I'd prefer but there is an underlying 'computer as appliance' trend that has been steadily growing for some time. Some folks talk about the 'Post-PC' era but I feel like its more like things that didn't use to require a computer are being aggregated and replaced by something that contains a computer. TV/Book/Catalog/Phone/Game thingy. The canonical example is an iPad.
That said, there are more folks who could care less about writing code on a PC doing work or using one, than people who do write code. That fact coupled with the cost of tool maintenance leads Microsoft to choose the route they are on.
Computers, and dedicated personal computers, will continue until the heat death of the universe as far as I can tell but the number of folks who need the 'general purpose programmability' seems to have flattened out.
As opensource library developer I think this sucks hard. They should at least let the command-line tools working so people can test if software still compiles/runs with their compiler without having to buy a license just for that (Borland C++ is this way these days). VS 2010 staying free is nice, but certainly it's missing some new C++11 features and obviously the amount of missing features will only increase over time.
Also I'm wondering something about Metro... so far I haven't found a wrapper for OpenGL, but only Direct3D. Yet another attempt at killing a competing standard?
C++ is a slowly fading language. Most universities/colleges are abandoning it and those that still cling to it are in an anti-MS mindset. Therefore, not to much to loose here.
FWIW, I've been hearing this since about a year or two after Sun released Java. I'll consider believing it when I see a major web browser or office suite written in something else.
>From a business perspective this makes sense.
C++ is a slowly fading language. Most universities/colleges are abandoning it and those that still cling to it are in an anti-MS mindset.
Don't know where you got that impression. No one in the industry that always used C++ abandons it. That is, any kind of shrink-wrapped software, from Office and Photoshop, to Final Cut Studio, to databases, to games etc. Even the biggest of the web shops rely on it, namely Google and Facebook.
If anything there has been a tremendous comeback of C++ in the last year, especially with the new standard.
But what you got more wrong is the assumption that MS somehow abandons C++ with this move? Actually MS heavily touts C++/0x for Metro and general windows development.
They even had a huge conference touting the return to emphasis to C++ a couple of months ago, titled "back to native".
Is this saying that no way to develop c++ applications with VS 11 Express? If so, it is horrible for beginners, and I don't see how MS is going to benefit from this move.
You already have tons of other super-lightweight great tools enabling you to create great client applications using only javascript and html5 already so server side languages are pretty soon mostly restricted to creating rest services consumed by the same javascript applications. Also when you can just use node.js to create the rest services the need for a tool like visual studio is really fading.
Why are people complaining? This is exactly what one would expect with the MicroSoft OS option. This is their business model -- to make money and then use that money to deliver a user experience. Long term Windows users should not be surprised or offended by this.
I am happy about this. Now c++ developers will hopefully look at the other options (Qt Creator, please try it) and normal users will look at other operating systems (ubuntu).
This is an absurd article. Microsoft spends tons and tons of time and money making this product that is Visual Studio. How dare they want people to pay for the full version. Express is a demo, nothing more and nothing less. Be happy they provide it at all.
Why is Microsoft so hell-bent on destroying the desktop OS that made them what they are today? The Metro stuff is fine for tablets, but it's a TERRIBLE user experience on a traditional desktop computer.
I don't even understand this "everything must be a super simple little app" approach that both Apple and (and now because they're a big copy cat) Microsoft are taking. Is this really what the populace wants? I understand that constraints often yield the best designs, but this is a little crazy.
And as far as the dev tooling - that was one area that Microsoft was notably competent. I really can't see how this will benefit them in the long term. Seriously, what is the upside for them? A few more Metro apps? They'll win the battle but lose the war.
It's a disease. Once everyone realized that touch (and mobile more generally) interfaces were going to "replace" the desktop for many day-to-day uses, they all went nuts trying to rearchitect and "evolve" the desktop in that direction.
Thus Unity, and Gnome 3, and Lion, and Metro. And most of these things don't even suck, they're just needlessly different.
What irks me and others, I suspect, is that the standard WIMP desktop was a mature, well-understood, and very usable metaphor. There's nothing wrong with it.
For you. For me. Not for grandpa. And there are more grandpas than hackers right now.
Immediate visibility of functionality, dropping the filesystem metaphor, standardizing and simplifying the installation of software, and enforcing a consistent UX works better than WIMP for a significant portion of people who would rather not expend effort on making their tools carry out their will. (Only, of course, if their wills are relatively simple. But the intuitiveness vs. power tradeoff is a technology problem, and one there is going to be market pressure to solve.)
This sounds like a statement out of 1985. It's belied by simple facts: penetration of smartphones and tablets into the "general population" is no better than it was for web browsing and general desktop computing 10-12 years ago. It's selling more devices, mostly because they're cheaper but also because they're inherently personal. Kids that would have shared the family PC in 1998 now expect their own 4S to carry.
And that's not to say that there aren't usability enhancements in the new devices that are worthwhile. But don't pretend that smartphones are "opening computing to a whole new world", becuase they aren't. Like the desktop PC before them, they are the tools of the middle class.
Well, given that there's been little to no innovation in native Windows applications in the past five years, I think it's fair to say the populace doesn't want the status quo.
Microsoft has to do something. I don't like what they chose to do (I worked on Win8 for a while before quitting, in part because of their direction), but it's clear to me that they had to take some risks or be faced with an inevitable slow obsolescence.
Maybe we are seeing a second system effect for Windows - now that they're committed to taking a clean slate, they're going nuts and throwing the baby out with the bathwater.
Microsoft still gives away the compilers, SDKs, .NET Runtime/SDKs, no?
Is the expectation that an IDE as powerful as Visual Studio be given away for free? Or just that the Windows Store not charge a fee for utilizing their distribution infrastructure?
There was a time before Express editions.
edit: I failed to scroll through the rest of the article, feel free to ignore me. I would delete but I don't like stranding replies. Apologies.
If you read the article, you will find that MS is currently declining to ship compilers as part of the Windows 8 SDK, which is why Ars is so concerned. But I'd also point out that Visual Studio Express 2010 is indeed free, and far more flexible than its 2011 replacement. This represents a massive policy shift.
The Windows SDK no longer ships with a complete command-line build environment. The Windows SDK now requires a compiler and build environment to be installed separately.
Below that they also list a dozen tools and a bunch of documentation and samples that they also no longer include in the SDK. My guess is that they're just trimming down their SDK downloads. Their SDK has been getting more and more bloated over the years with utilities and samples and stuff that most devs don't need.
Completely dropping their command line tools doesn't make sense for anyone who runs build servers; it doesn't make sense for their Powershell tools; and it really doesn't make sense when you consider their recent moves in Open Source. My guess is that the command line tools will be separate downloads from the basic SDK and you'll still be able to write C# code in Notepad++ if you like. The basic SDK will be targeting people writing Metro apps (which they want to encourage by default), but they aren't going to just drop everything else. This is a company that lives and breathes backward compatibility, after all.
It's just a case of poor messaging by Microsoft. Remember last year when everyone thought that all Windows 8 apps were going to be Javascript/HTML 5?
That's also my guess, which I indicated elsewhere in the thread. I'm definitely withholding judgment until we get a wee bit closer to the release date and have a better idea what Microsoft's actually trying to accomplish here. The lack of simple compilers in any capacity is bizarre, if taken as a final statement, since it'd really throw the wrench in pretty much every Windows build farm ever. I suspect this is simply that, right now, given that VS.NET 2k11 Ultimate beta is free anyway, they don't yet have the compiler or doc downloads. I expect them to show up soon.
This really isn't a big deal for me. Mainly because I have no urge to develop for Windows now, nor will I have the urge to do so then. That makes things so much easier.
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.