Slashdot Mirror


Microsoft Declines To Make a 64-Bit Visual Studio (uservoice.com)

OhPlz writes: A request was made back in 2011 for Microsoft to provide a 64 bit version of Visual Studio to address out-of-memory issues. After sitting on the request for all that time, Microsoft is now declining it, stating that it would not be good for performance.
After almost five years, the request received 3,127 votes on the UserVoice forum for Visual Studio. Microsoft instead recommended the vsFunnel extension to optimize memory by filtering low-priority projects, adding "we highly value your feedback." They cited a December MSDN post that had argued "smaller is faster," and that no performance benefits would be realized for users whose code and data already fit into a 32-bit address space, while most other issues could be addressed with better data design.

34 of 359 comments (clear)

  1. In other words... by ChodaBoyUSA · · Score: 4, Insightful

    We don't want to do the work.

    1. Re: In other words... by Anonymous Coward · · Score: 5, Insightful

      It's not about doing the work, it's the outsourced Indian team doesn't know how to do the work.

    2. Re: In other words... by PimpBot · · Score: 4, Funny

      Just tell them to do the needful!

    3. Re:In other words... by Z00L00K · · Score: 4, Interesting

      No, it's because they want to drive people to instead use cloud services so that they can get into control of all your data.

      To Microsoft and Oracle the desktop operating system is a necessary evil and they want a transit into thin clients. But they don't want the users to understand that they do it, instead it's a free "upgrade".

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re: In other words... by Austerity+Empowers · · Score: 5, Insightful

      It's not about doing the work, it's the outsourced Indian team doesn't know how to do the work.

      I am pretty sure this is the actual reason, not just cynicism. MS has fired or encouraged significant attrition amongst it's can-do types, focusing those few who remain and who know how to do things into certain areas. The rest...they've backfilled with H1B or outright offshoring. Any other company would have collapsed by now, but monopolies are a powerful thing.

    5. Re: In other words... by Anonymous Coward · · Score: 5, Interesting

      This right here.

      This is IE 6.0 all over again. Major products they push on everyone. Then let them rot in place.

      VS2015 is very cool. It is also *VERY* flaky. I have had to reinstall it no less than 5 times now because 'something' breaks. Woe unto you if you have to bring up the repair screen. Plan on that bitch taking 3-4 hours to change 1 package.

      They neglected C++ for so long on their train to .net (which is 64 bit hmmm). clang and gcc now regularly destroy them on compatibility and speed.

      They are so hell bent on making platforms they forgot to make product. I remember standing in long ass lines to buy windows 98. Fast forward to today. Very few actually *want* windows 10. For me getting network backups back again was worth the upgrade.

      Also they are making a rather extraordinary claim that x64 is slower than x32 with visual studio. They should do something like oh I dont know 'recompile it as 64 bit' and PROVE IT and show their work?! Perhaps oh I dont know ON A BLOG POST?! You couldnt find a few interns and a couple of seasoned guys to make it work? Out of a company that big? I call shenanigans.

      MS there is a reason everyone is jumping to other platforms. Yours is just not up to date and you change your mind every 3-4 years on what platform you want to push. Then the platforms MS comes up with are pretty much 0% compat with the old ones. So you can not even re-use your code. You have to throw it all out and start over. MS this is why devs no longer want to work with your crap.

    6. Re:In other words... by OhPlz · · Score: 5, Funny

      I submitted the story, so yea.. I read the links. I added my $0.02 to the linked issue years ago. One does follow the other. They're obviously willing to spend some money in some areas of the product, but unwilling in this case. Those oddles of plugins are what makes Visual Studio desirable. As for drowning kittens, there's a lot of that going around. So many 32-bit kittens, never going to grow up to be 64-bit.

    7. Re:In other words... by PolygamousRanchKid+ · · Score: 4, Funny

      Oh, it's not on the top of the list of their priorities. Just take a look at Microsoft's recent behavior, and it becomes crystal clear. Satya Nutella is not forcing Windows 10 down everyone's throat because he wants to annoy his customers: He is doing it because there is a clause in his contract that gives him a big bonus, if Windows 10 reaches a significant market share.

      Even if that means feeding folks Windows 10 like the way a Foie Gras goose is fed.

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    8. Re:In other words... by war4peace · · Score: 4, Funny

      FUCK YOU.
      Now I crave Nutella.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    9. Re:In other words... by thegarbz · · Score: 5, Funny

      I submitted the story, so yea.. I read the links.

      Slashdot has really gone downhill as of late. First readers are starting to RTFA, now submitters are RTFAing before they submit. Pretty soon we'll have well informed discourse and at that point why would anyone come to Slashdot to read the comments anymore.

    10. Re: In other words... by geoskd · · Score: 5, Informative

      They should do something like oh I dont know 'recompile it as 64 bit' and PROVE IT and show their work?!

      I don't have to see the compilation to understand that it is going to be slower: I can read processor spec sheets. All modern processors can do 32 bit pointer arithmetic in a single instruction. This is critical because pointer math is highly linear in nature and *will cause pipeline stalls*. 64 bit arithmetic by contrast is typically several cycles long, and will commonly stall the pipeline. The performance hit I have commonly heard is 10%, and seems to come from some amount of informal testing.

      Take a look at this for an idea of some of the testing that gets done on these kinds of things.

      --
      I wish I had a good sig, but all the good ones are copyrighted
    11. Re: In other words... by AReilly · · Score: 3, Insightful

      a) 64 bit processors can do 64-bit arithmetic in a single cycle.
      b) The 64-bit processors in question have more named registers (fewer stack spills), and a significantly more efficient function calling convention (ABI)
      c) 64-bit ABI doesn't touch the old x87 register set, which is another net performance win. (Not that VS2015 will use this much.)
      Ergo: most of the time they are faster.
      The only way to make a 64-bit program slower than a 32-bit one is to have enough pointer-chasing and associated irregular dynamic data that the change in pointer size materially affects the data cache miss rate. Certainly there is some code like that: VS2015 might even be an example.

      How fast do you need your IDE to be though, and how much is performance really the instruction set's fault? Versions of Visual Studio have been produced that run in everything from .NET to JavaScript, and that's fair because most of the cycles are going to be consumed in GUI and file stacks anyway. Native code performance is hardly going to be the issue.

      The issue is almost certainly that LLP64 is a dumb idea, and the code base will have lots and lots of pieces of historical code that assume that you can manipulate pointers with long arithmetic, and all of those are going to have to be found and fixed by hand, often involving real understanding and design decisions.

      --
      -- Andrew
  2. Summary : by SuperKendall · · Score: 5, Funny

    32 bits ought to be enough for anyone.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Summary : by hey! · · Score: 4, Funny

      32 bits ought to be enough for anyone.

      ... said the lead programmer after glancing through the megabytes of 20 year-old legacy code, and then realizing every single variable had been named with Hungarian Notation.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    2. Re:Summary : by lgw · · Score: 4, Insightful

      It was not stupid at all in the domain for which is was invented. Simonyi (the eponymous Hungarian) was apparently appalled at what it became.

      The original idea was to decorate objects of the same type, but different semantics, so that you wouldn't confuse them: specifically rows and columns int the Excel codebase. You could tell instantly that rwFoo - coBar was a bug, even though they were both ints and the compiler was fine with it. It's a fundamental weakness of C and C++ through today that's there's no way to make efficient, disjoint integral types.

      It can also be useful to distinguish between types that typedef to the same type on one platform, but might typedef to different types on another, but IMO it's not worth the clutter.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  3. Remember how long Excel sticked to max 64k rows? by heldal · · Score: 3, Interesting

    The day they broke that limit, some cheered. Others looked upon it with dread, knowing the hellspawn that would follow.

  4. 64-bit designer mode by Anonymous Coward · · Score: 5, Informative

    The real problem is that the fancy built-in designers, such as the WPF designer, only work with 32-bit components in 32-bit Visual Studio. When someone writes a component that is 64-bit, because it references a DLL that in-turn references, say, a 64-bit Oracle driver, which is part of code that we don't have control over. Now the designer won't load and shows a cryptic error message.

  5. visual studio by Anonymous Coward · · Score: 5, Insightful

    I have a quad core 3.5Ghz with 32GB of RAM, VS2015 installed on an SSD. It takes over 15 seconds to get to a working state. After the last update (2), then the Update patch, it now pops up some idiotic error about scc something-or-other every time it starts, and every time I open a project. An update for this POS software takes at least 15 minutes -- with far and away most of the time spent sitting at 99% complete with the status message: "Visual Studio is configuring itself -- this might take a while."

    Yeah no shit it might take a while.

    In summary Visual Studio has become one of the worst programs I use. It is horrifically bad in all aspects: Hard to use, impossible to navigate, useless documentation.

    When I wander over to the C++ forums on reddit I frequently see their runtime library/compiler guy -- I think his name is STL, sheepishly saying what an antiquated POS their C++ compiler is. That doesn't give me warm fuzzy feelings either.

    It's all just more nails in the coffin as far as I'm concerned. I rarely develop for Windows anymore and when I have to it's because I'm forced to. The entire Windows platform is a complete disaster from a developer's point of view. All the years of MSDN trying to sell whatever the current darling language, what's-old-is-new-again (C++ is back, did you notice?), terrible, TERRIBLE API design, and just general CRUFT (did I mention that COM is back too..?) have finally caught up to them.

    1. Re:visual studio by Dutch+Gun · · Score: 5, Insightful

      I've been using VS 2015 since it was released, and using VS professionally for close to 20 years. The quality of VS and the compiler has waxed and waned over the years, but I'm pretty happy with the way the current version is looking, given the general responsiveness, functionality, and stability of the IDE and the C++ compiler itself. It has pretty close to full C++ 14 compliance at this point - and certainly has the features *I* care about. If you're seeing such poor performance and odd error messages, there's something strange going on, as that's not a typical experience. My machine is rather *less* powerful than yours, and I just counted - it takes six second to get VS up and running for me.

      Stephan T Lavavej is the maintainer you're thinking of, and he maintains the standard C++ library, so it's pretty awesome his initials are STL. He's one of the few MS devs that interacts regularly with developers and speaks candidly about MS's development, and has given some pretty interesting talks. True, the MS C++ compiler is quite old, but they've been modernizing it in light of C++'s renewed interest and features, with pretty decent results (if slower than many wish, probably including STL). GCC is also quite old, if you recall, but software can be updated. Clang is the only "new" C++ compiler in widespread use I'm aware of, so it obviously benefits from a more modern implementation, having lessons learned applied during initial development.

      And COM never really went away (very few things in Windows do), but it's claim to fame was interprocess-communication and a language-independent execution model. New libraries have superseded the former, and .NET has largely replaced the latter. I'm not sure what constitutes "is back", but I've not heard anyone talking about it, and certainly nothing *new*. Maybe you're just hearing more about what's always been there since natively compiled code is making something of a minor comeback, with interpreted code like .NET never really having met promised performance expectations, even when JIT-compiled.

      As for 64-bit Visual Studio, it's strange that they're not looking more seriously at this, but my guess is they ran into some severe technical hurdles in early efforts to port it, so are downplaying the importance. I mean, who doesn't develop on 64-bit machines at this point? I'll bet they're working on it internally, but are not ready to commit to anything.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  6. 64-bit Windows by Yurka · · Score: 3, Insightful

    is and has always been a disgusting kludge on top of the 32-bit (that they finally managed to get in decent shape). Faced with the necessity to build something just as ugly for another product, I'm not sure I would have reacted differently than they did.

    Oh, and the bit about valuing the feedback is priceless, of course.

    --
    I can assure you, the best way to get rid of dragons is to have one of your own.
  7. Re:Didn't even realize until the other day by Opportunist · · Score: 5, Funny

    Damn right, any project this big should be done with professional tools!

    Glad MS finally admits it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  8. Re:32-bit visual studio by ShanghaiBill · · Score: 3, Informative

    Microsoft develops software the same way the British Army fought the Somme Offensive. They use massive amounts of cheap programmers, and just pound away until they have something to release. The code quality is so poor that they often just throw it way and do a complete rewrite for the next version. You may think that supporting 64 bit would mean just changing a few header files, tweaking some compiler flags, and typing "make world", but it would not be that simple. The code is likely riddled throughout with obscure 32 bit dependencies, and would require a huge and expensive effort to fix.

  9. The problem is debug, not build by Sarusa · · Score: 5, Informative

    The big problem is debugging.

    We've got a 64-bit app which VS will happily build and the app runs fine. But if we want to debug it live VS chokes, falls over and dies, out of memory once the app uses more than 3 GB.

    It's legit using > 4GB because it's heavy image processing of large color images at high dpi and the machines are specced for it. Obviously, we could page stuff in and out of memory ourselves, but that rather defeats the purpose of 64-bit OS and would slow everything down (speed is paramount here, burning memory to get it was a primary design decision) - and the program runs fine when not debugging in VS.

    1. Re:The problem is debug, not build by lgw · · Score: 4, Informative

      The debugger is msvsmon.exe. It has a 64-bit version, which runs automatically when you configure the project to be 64-bit. Visual studio just wraps a handy GUI around that. Something's wrong in your project settings if you can't debug a running app with lots of memory.

      The only problem I've ever had with large source trees is that Intellisense shits itself beyond some point - but I somehow doubt it's (only) a memory issue.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  10. Re:x64 considered harmful? by Man+On+Pink+Corner · · Score: 4, Interesting

    With a very few specific possible exceptions, x64 code is indisputably faster than x86. The reduction in register pressure buys you a speed increase of about 10% in my experience.

    The code is somewhat larger, of course, but instruction caches have also grown in size since this was observed to be an issue.

    Meanwhile, recompiling correctly-written C++ code to target x64 amounts to changing a couple of flags in the build script, so laziness is no real excuse.

  11. Re:32-bit visual studio by lloydchristmas759 · · Score: 4, Funny

    "also, fuck you, developers."

    Shouldn't that be:
    "also, fuck you, developers, developers, developers" ?

    --
    I'd give my right arm to be ambidextrous.
  12. Re:32-bit visual studio by Anonymous Coward · · Score: 3, Insightful

    I did a couple of 64-bit ports in the past and that's pretty much what it took. The first application was about 50000 lines of code that I had worked on for about a year, i.e., I didn't write it, but I fixed it and refactored it. That conversion took about 2 days, and most of that was making small fixes because the header files were reorganized between gcc 3 and gcc 4.

    The second time I did it was for a code base of about 2 million lines of code that I did not "own" in the same way. That took about three weeks, plus about another week from another developer. This was not code that had been developed in a well-disciplined way, but it worked, and the conversion ended up being very successful and took a lot less time than management had expected.

  13. Why do you even need VS? by melted · · Score: 4, Informative

    I worked at MS in early 00s. We didn't use VS to write code. We used a stripped down version of VS or even WinDbg to debug. Nowadays I use Vim and YouCompleteMe (on Linux) and it just works. Zero dollars, easy to set up.

    1. Re:Why do you even need VS? by BlackPignouf · · Score: 5, Funny

      Nowadays I use Vim

      I've also been using Vim since the early 00s.
      I'm stuck, and still didn't figure out how to quit the editor.

  14. Re:32-bit visual studio by Fragnet · · Score: 5, Insightful

    I've been a developer for 15 years and I can say Visual Studio environment is way better than anything available on Linux. The code dependencies can be resolved in 64 bit but Microsoft is a business and there's an opportunity cost associated with doing that rather than something else more people actually need.

  15. Re: 32-bit visual studio by Malc · · Score: 3, Insightful

    I bet their compiler catches most of the bad shit that only works on 32-bit builds... But they have so many warnings they can't see this.

  16. Re:32-bit visual studio by thegarbz · · Score: 5, Informative

    The code quality is so poor that they often just throw it way and do a complete rewrite for the next version.

    Based on what? For the most part when MS projects have either had source code leaked or made open source the analysis of the code has shown some pretty fine programming. Re-writes seem to be based on strategic decisions and also decisions to not end up with endless layers upon layers of cruft (something that also supports code quality in a positive way).

  17. Re:32-bit visual studio by maugle · · Score: 4, Insightful

    I'm sure Visual Studio works quite well for you. But, to counter one anecdote with another, I found Visual Studio to be lackluster and irritating in a thousand little ways, and its marginally-better code completion isn't enough to make me prefer it over either Eclipse or QT Creator.

    As for a 64-bit Visual Studio, my guess is that the code problems of porting to 64-bit are dwarfed by the bureaucratic maze involved in releasing a new edition of a product.

  18. Re:32-bit visual studio by MachineShedFred · · Score: 5, Insightful

    It would probably suck worse, because the memory leaks and plug-in bloat would be only bound by physical memory, rather than the enforced 32-bit memory space.

    If Microsoft is telling people that they should just write better code in order to stay inside of a 32-bit boundary, they should start practicing what they preach and lead by example.

    --
    Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.