55 comments

[ 2.5 ms ] story [ 84.5 ms ] thread
Highlights of the less obvious but the most serious problems:

- By intentional design(+), it can't produce an executable which runs on Windows XP, because "you" really don't want the applications that run on the 50% of all PC's of the world,

http://www.tomshardware.com/news/Windows-XP-Windows-7-market...

- Keyboard macros are removed, because "you don't need them."

Oh yes, and they changed the color theme to distract the attention of the developers population from the mentioned serious problems.

Thank you, Microsoft.

+) They had to remove the code which already existed in their DLLs to achieve this and also to stop shipping you the procedure to build your own versions of the same DLLs.

XP is over ten years old. To develop for ancient platforms, one can keep using the ancient tools.

Apple is actually worse in this regard, because a copy of Xcode from 2005 produces binaries that don't work at all on new Macs anymore. Windows 8 can at least run anything developed using Visual Studio 6 on Windows XP.

You are mixing up something. It's not about old VS code not running on "new PCs" it's about the newly compiled executables not running on 50% of PCs right now!

See also:

http://social.msdn.microsoft.com/Forums/en-SG/vcgeneral/thre...

"Windows XP Embedded or Windows Embedded Standard 2009, both based on Windows XP Pro binaries will get security updates until Jan 8, 2019"

If 50% of all PCs run Windows XP as we speak, do you really consider it "ancient?" Do you think they will really stop delivering updates, even if they wish?

It is ancient. Someone who is still using XP has a computer that's more than five years old and has never upgraded.

For most new app development, these users are not a very appealing target market -- if they don't buy computers nor upgrades, do they buy software either?

But I'm sure there are business cases where it makes sense to target such users (even GeoWorks and OS/2 are still around, after all, so there's someone interested in software that runs on 486 boxes).

> It is ancient. Someone who is still using XP has a computer that's more than five years old and has never upgraded.

Or they work for a corporation who can't upgrade to a decent OS because they invested heavily in IE6-only web applications which their business runs on.

if they don't buy computers nor upgrades, do they buy software either?

Many of our customers (mainly large companies and government departments) have pathetic computers, never upgrade (and in fact downgrade any new computer purchased to XP) and buy the cheapest hardware you can imagine, yet spend huge amounts on software. I don't have any stats on hand, but at a guess I'd say at least 50% still use XP.

Someone who is still using XP has a computer that's more than five years old and has never upgraded.

Or, they assemble computers from scratch and don't want to shell out extra cash for an upgrade, especially considering that Windows 7 is slower, has compatibility issues with older software and has made questionable "improvements" to UI.

I run XP on my 3 month old super-duper Lenovo. It might be "ancient", but it is not obsolete.
Pretty much every single hospital that I've visited runs XP on brand new HW. I'm quite sure that large enterprises work the same way on every sector. Standardizing on an operating system has nothing to with upgrade frequency.
It isn't quite that simple. I'm working with a large multinational that has tens of thousands of XP machines, some of which run in-house LOB apps, but many of which are just used for mail and Office.

The upgrade effort (never mind the expense) is huge, and there has to be a compelling case to move on from XP... which there certainly wasn't for Vista. Win 7 is gradually being adopted but it is taking a long time.

So while I can appreciate Microsoft's desire to move on from supporting apps on XP, it means that there is at least one large customer who won't be able to adopt VS11 for development.

I'm a Windows and Mac developer, and I'll tell you why Apple isn't worse: their users don't hold on to old versions.

With free or 30 dollar major OS upgrades, upgrades that are consistently better than their predecessors (or at the very least (Lion?) not noticeably worse!), great and constant innovation to make the upgrades compelling and appealing, smooth/streamlined and automated "SP" deployments over the net, and many other things that I won't bother listing, they ensure that their users are, by and large, using the latest version of their OS.

They can break compatibility every time, for all I care. But when Windows 7 (or for all we know, Windows 8 too) provides no real enhancements over XP (at the very least, in the eyes of a consumer) except bloat and a confused interface, then and only then do I complain about how "evil" they are for (possibly purposely, if you look into the details of the hack I posted in another comment, you'll see why) breaking support for older operating systems.

their users don't hold on to old versions.

Tell that to my G5 Mac Pro. :(

I'm sure there is an amount of 10.5 users... (Looking at my old PB12.).
"They can break compatibility every time, for all I care."

that's why apple won't find much traction in the business world. backwards compatibility is very important. You want to write software once, not have to continually update to migrate it to the latest OS

Does it matter? They make plenty of money anyway and the company stock is doing better than those who attempt to go for the enterprise market.

Sometimes it seems that the business world assumes that everything revolves around it.

Yes it's quite funny. Just like people debate Apache vs. Nginx back and forth here while Microsoft is laughing all the way to the bank taking almost all the profits from the web server market with IIS.
Terrible comparison, IMO. Microsoft doesn't sell IIS standalone, it comes bundled with their server licenses.

The Windows Server, Exchange Server, SQL Server licenses are what make the money. IIS is just included in all of them.

If they tried to charge money for IIS and shipped it for any other OS, it would fail pretty quick as it's not very sys admin friendly and most of it's performance is heavily dependent on Windows threading model.

"profits from the web server market"... WHAT profits? Apache & Nginx are both... wait for it... FREE! So is the underlying OS. And who's number 1 and 2 in the market? Oh yeah, Apache and Nginx...
And if we return our attention to VS 11, the main topic here, and MSFT who produces it, they already hold enterprise market, and now they want to ignore it because they expect to be better Apple than Apple? I suspect they are making themselves less relevant by such moves, actively stimulating enterprises to consider alternatives. How about making a successful consumer product instead of trying to make the established Windows to be everything for everybody including enterprises, making Windows more "consumery and breakable"? I am talking about "Professional" and "Server" products now, not about "home" ones.

Maybe they should rebrand VS 11 to "VS 11 Home."

> that's why apple won't find much traction in the business world. backwards compatibility is very important.

By all appearances they don't care to be in that market, and for that very reason. So, the system works.

But if you don't want to upgrade you are out of luck on Apple. this was at least true the last time I had a mac. It was a G5 iMac with OS X 10.3. If you didn't upgrade hardly any hardware worked correctly , but everything after OS X 10.4 just didn't really work on this. I was pretty dissapointed and left the Mac world after this experience.
That's a complete fallacy in my experience developing high-end VFX software for three platforms (Linux, Windows, OS X).

OS X is causing us so much trouble compared to other platforms. With XCode developer stuff, you can only target two versions of OS X, so that's 10.5&10.6, 10.6&10.7 and soon to be 10.7&10.8.

Some of our customers want Lion support. But a lot still want 10.5 support and most of them still want 10.6 support. There's no way of us providing this short of completely separate builds for OS X targeting different versions of the SDK.

And the "consistently better" part is a joke for certain things, e.g. OS X OpenGL support seems to be getting worse despite supporting a later version (3.2) to some degree.

Maybe things are better for more "consumer orientated" developers, but definitely for high-end stuff, it's getting to the point where it's getting more trouble than it's worth to develop for OS X.

Once Steve Jobs compared PCs to trucks and tablets to cars. It seems that Apple doesn't care about the "truck" market. They left server market for Linux and professional desktop PCs for Microsoft.

I guess Apple cannot tell this directly but probably you should stop develop highly specialized software for OS X.

I haven't downloaded it yet, but I assume you're referring to the same limitation VS2010 (w/ the latest SPs) had with exes not running on Windows XP.

Assuming it's the same, then adding this ASM file to your project should solve the problem:

https://github.com/NeoSmart/UtfRedirect/blob/master/UtfRedir...

No, executables made with Visual Studio 2010 run on Windows XP SP3. They don't run on Windows 2000. See:

http://tedwvc.wordpress.com/2010/11/07/how-to-get-visual-c-2...

There is an in-depth overview of all the things MSFT have removed to prevent the compiled executables from running on Windows 2000. These things still existed in VS 2008, it's not that they had to develop them.

Reading comprehension needed:

Me: "Executables made with Visual Studio 2010 run on Windows XP SP3."

You: post the link to the article titled "Executables built with Visual C++ 2010 do not run on Windows XP prior to SP2"

Note the SP numbers and the word "prior" please. Anyway, I know what I write since I have to support Windows 2000 for the projects I'm involved and I have to use Visual Studio 2008 for that. Do you compile any native executables for Windows platforms?

I did not see the "SP3" there when I replied, but I'll give you the benefit of the doubt. And I'm going to ignore your personal attacks and insults.

Regardless, "No, executables made with Visual Studio 2010 run on Windows XP SP3. They don't run on Windows 2000" and "No, executables made with Visual Studio 2010 run on Windows XP SP3. They don't run on Windows XP SP2" are entirely different statements.

Nope. The Visual Studio 11 CRT does not run on anything below Windows Vista because it relies on API's that were only introduced then. You cannot write applications that run on Windows XP with Visual Studio 11.

This is such a bone-headed move I can't believe where that came from. They can't be out of touch that much. I guess people with existing code bases don't have any options anyway, so they though this would be a nice 'incentive' for vendors to pester users into upgrading to new Windows versions.

Very disappointing.

Why not just use Visual Studio 2008 or 2010? XP is a drag on new development paradigms and practices they want to get rid of.
Sure, using an old VS is the obvious workaround, but that doesn't really make VS 2011 better. And well - good for them if they can afford to just cut old ties, unfortunately many of us don't have that luxury. I thought market of XP is down to 20-30% by now and falling (but maybe that's only true for typical gaming systems), but that's still a rather big market share to ignore for now.
I've just did some calculations: if there have been around 1 billion PC's in 2008

http://www.worldometers.info/computers/

and there should be 2 billions in 2015, let's assume there's at least 1.4 billion PC's at the moment now. Even if XP has just 25% percent of that, it's 350 million of PC's in the world on which the executable built with VS 11 can't work.

to me that sounds like a market waiting to be developed: some enterprising (get it?) coder can cook up an IDE and compiler and target the XP market.
They actually prevent you to use some elementary standard C++ constructs which are in newer VS but not in VS 2008. I hope you understand that you'd be able to write the same standard C++ code independently of the XP or Windows 7 had MSFT not removed some previously existing code sections from the DLL's linked with VS 11.

Yes I believe you're right when you say: "new development paradigms and practices they want to get rid of" even if it is a Freudian slip.

You make it sound so sinister, but this is how progress is made. As an example, OS X is so good now because Apple had the courage of their convictions to make breaks with the past. I don't think it makes sense to expect an IDE released this year to support Windows XP.

They changed the UI chrome because that's what they always do. You make these people sound like Gargamel for Christ's sake. They're just trying to make software.

I absolutely don't expect the new VS IDE to run on XP but I certainly expect to be able to compile my program to an executable which can run on 50% of all PC's of the world.
They're trying to force those people to upgrade. I don't know if that's a good idea, but that's clearly their intent.
OK, and I don't expect that. XP is obsolete, and if people want new software they can upgrade. If they don't, well, XP appears to be working just fine for those folks, doesn't it? This is how we move forward.
>This is how we move forward.

This is how a monopolist forces us to move forward. Good for them. Not so good for us.

AFAIK tools to develop for XP are free (VS express). They are certainly pushing you in their direction, but it's not an ultimatum by any standard.
Interesting, the only company in the world that bends over backwards for backwards compatibility gets slagged when they break it once while all the other software/hardware makers that drop support in a pinch get a free pass. What has a monopoly got to do with it anyway? Apple does it very frequently and EOLs software in a mere few years.
It's all well and good to "break with the past" so long as what you end up with is an improvement.

When the entire world is using your OS, the onus is on you to either make upgrades people will be happy to use (and then happy enough to pay for), or continue to support the last "proper" release you made that literally half your customers still use.

You are essentially arguing that Windows Vista, 7, and 8 do not offer substantial improvements over XP. They do, though.

But anyway, given their customer base and the history of their decisions, there's not a lot MS can do to make everyone happy. All they can really do at this point is make the best of a situation that is pretty crappy in a lot of respects. Bitching about it, however valid, seems sorta useless to me. The plane has already crashed into the goddamn mountain, to quote the Big Lebowski.

I'm not arguing that they don't offer improvements - they do, especially at the lowest levels with improved stacks, drivers, etc. The problem is that what the user sees hasn't improved in any proper way, and has in may ways actually regressed.
Everybody is talking about lack of support for Windows XP. Seems a little premature, but I've no doubt that XP market share will decrease over time.

Nobody is talking about lack of keyboard macros. And yet, keyboards will be the primary programmer input device for a while yet.

So it sounds like MS have done their research on this one ;)

Yes, I'm really afraid that if the dumbing-down trend continues I'll be able to spend even less time in their new IDE.

Visual Studio 6 (released 1998) has keyboard macros, as well as every version that followed, until now, when VS 11 from year 2012 doesn't?

I've read somewhere that they "measured" that too few developers use macros. I guess they use metrics which you have to accept to be sent to Microsoft, and that the very same people who use macros simply do not want to have the IDE sending metrics over Internet at the times they don't control.

http://en.wikipedia.org/wiki/How_to_Lie_with_Statistics

Disclaimer: I do use macros, that's the first thing I add whenever I install Visual Studio. It seems that unless something changes, I won't be able to use them on VS 11.

Running it now, and definitely feels much snappier than 10. Waiting on VS10 was one of my biggest gripes.
Yeah 2010 was quite painful compared to how fast VS08 was. VS11 is not back to VS08 speeds but it is a good improvement over 2010 thank god. The big problem now is this new UI. I find it much harder on my eyes than previous versions. I didn't like the glossy/plastic look 2010 had and while this is a step away from that look it is more of a huge leap in a random direction rather than returning to a softer, cleaner look.

Today has been quite disappointing with Win8 CP and VS11 leaving a nasty taste in my mouth after the first bite.

Does this beta have an expiry date? As in, if I upgrade am I going to be surprised by it deactivating in ~3 months time?
This is a beta version of the product which will sell for around 10 thousand pounds in the UK (it's an "Ultimate Edition"). Can you really expect it won't have an expiration limit?

I expect it has the limit though I still haven't found out what it is. Anybody knows?

If it's like the old VS betas it will last for 180 days.