back to article After 20 years of Visual Studio, Microsoft unfurls its 2017 edition

Microsoft has released Visual Studio 2017, marking 20 years of the software development tool's, er, development. Visual Studio 97 was released on March 19, 1997. It came in two editions, Professional and Enterprise, and included Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, Visual InterDev and Visual FoxPro. Microsoft has …


  1. Not Terry Wogan

    Installed it today in a VM...

    ... and encountered two obvious and careless bugs in the IDE within five minutes. I'll be waiting until the first update until I try again.

  2. Anonymous Coward
    Anonymous Coward

    "Just one wafer-thin mint?"

    Springs to mind.

  3. Tom 64

    Always been clunky

    And once you start a project in VS, its hard to migrate away from it.

    I'm far happier developing in Visual Studio Code, its lightweight, fast and free.

    1. Adam 52 Silver badge

      Re: Always been clunky

      I think that may depend on your definition of "always". Visual Studio 6 was excellent and not at all clunky. Post 2013 it all started to go a bit wrong.

      It's only hard to migrate from if you use the wizards, but that statement applies to almost any code generation tool. You are tied to msbuild, but it's not that bad compared to the alternatives (ever tried to use Maven?)

      1. Aitor 1 Silver badge

        Re: Always been clunky

        I use maven, if you know what you are doing, it works ok.

        I did have some issues (as in the fucking project refuses to comply or even download the dependencies!) but the problem was mostly my ignorance and a non user friendly way of doing things.

    2. DrXym Silver badge

      Re: Always been clunky

      Assuming you're writing cross-platform C++, the best way to manage your project is to use CMake. Express your project using a CMakeLists.txt and generate an IDE-specific solution from that. The same CMakeLists.txt can generate a GNU make file or a bunch of other targets. Some IDEs such as CLion will work directly from CMake too.

    3. Colin Critch

      Re: Always been clunky

      SharpDevelop is free and good for small applications and services too

    4. davidak

      Re: Always been clunky

      Visual studio code is a web browser posing as a text editor. It is therefore the complete opposite of lightweight.

      1. DrXym Silver badge

        Re: Always been clunky

        Visual Studio Code is perfectly usable as a programming editor and its performance is absolutely fine for that role. It isn't an IDE but sometimes an IDE doesn't exist for what someone is doing or is unnecessary. It also runs cross platform which is useful.

        I've used it to develop and debug on Linux which is an interesting departure for a Microsoft product.

  4. AMBxx Silver badge
    Thumb Up

    Visual Interdev

    Thanks for the memory, forgotten all about that one.

  5. 45RPM Silver badge

    Getting better all the time

    I started in this coding malarkey with Turbo Pascal (2), kept going with Dephi (and, at about the same time, CodeWarrior). In 1999 I started using Visual Studio - and hated it. It was a grind to use, particularly since I was so used to better, more integrated, IDEs with a more complete feature set. I've kept up to date, through MSDN of course, and seen Microsoft's ugly duckling grow into a Swan. Not quite a beautiful Swan yet - there are still some rough edges - but it certainly isn't a chore to use, and it lives happily alongside Xcode in my workflow - just as my Mac lives happily alongside Windows and Linux.

    Microsoft and Apple really do have to up their IDE game though - because my workflow, and that of many other developers, now includes IDEs from JetBrains - and JetBrains' IDEs are a joy to use.

    1. Version 1.0 Silver badge

      Re: Getting better all the time

      @45RPM, it sounds like you've been coding for a while - I hope you are not planning to use the new edition to maintain the old code - because 2017 doesn't seem to compile anything that is more than a couple of years old.

      1. 45RPM Silver badge

        Re: Getting better all the time

        I always (okay, mostly. Sometimes, anyway) keep my projects updated for the latest version. Updating a project (in pretty much any IDE that I’ve used so far) between consecutive versions is fairly straightforward, especially if you’re diligent about fixing compiler warnings before they turn into errors down the line. If the versions aren’t consecutive then updating is a pain in the arse (I recently resurrected a project in Xcode that I abandoned a few years back - I sometimes wonder if it’d have been easier just to start from scratch!).

      2. CheesyTheClown

        Re: Getting better all the time

        Maintaining projects other than your own is always a problem. But updating to a new IDE and tool chain is just a matter of course and is rarely a challenge. I've moved millions of lines of code from Turbo C++ to Microsoft C++ 7.0 to Visual C++ 1.2 through Visual Studio 2017. Code may require modifications, but with proper build management, it is quite easy to write code to run on 30 platforms without a single #ifdef.

        I've been programming for Linux and Mac using Visual C++ since 1998. I used to write my own build tools, then I used qmake from Qt. Never really liked cmake since it was always hackish.

        Now I code mostly C# since I've learned to write code which can generate better machine code after JIT than C++ generally can since it targets the local processor instead of a general class or generation of CPUs. Since MS open sourced C# and .NET, it's truly amazing how tight you can write C#. It's not as optimized as JavaScript, but garbage collected languages are typically substantially more optimal for handling complex data structures than C or C++ unless you spend all your time coding deferred memory cleanup yourself.

      3. tiggity Silver badge

        Re: Getting better all the time

        I have to keep a copy of VS2008 around as last version of VS that supports old (v6.x) Windows mobile projects. Legacy apps still running on that platform (& rugged Win Mobile 6.x devices still being sold).

        In good VS style, no easy upgarde from mobile 6.x to 7 and beyond.....

        The replacement apps of functionality in the legacy win mobile code run on Android - that's what you get by not making an easy upgrade path! Legacy support needed just for windows mobile devices,

        Never understood why MS make it such a pain to keep old stuff alive when plenty of users like to run stuff for ages when it just works fine for them.

    2. Philip Stott

      Re: Getting better all the time

      I started similarly to you, except Turbo C instead of Pascal. Then Borland released the execrable Borland C++ builder, which I could find no love for even for want of trying. The sunlit uplands finally came with MS Visual C++ and (I shit you not VB). I could write the performance critical stuff in C++, expose the functionality as a .VBX then knock out a UI in VB - happy days ... But then MS started pooing on its own doorstep: IEV6 & ActiveX controls, abandoning proper documentation for random blogs, competing (incompatible) data access libraries: ado, redo, oledb, odbc, championing then abandoning major frameworks i.e. Silverlight. I do hobby development in the electronic hacker environment: arduino & eMbed, etc and really miss the convenience that Visual Studio brings to coding. Yes, they've had a bad decade, but it looks like Microsoft has finally turned a corner.

    3. b0hem1us

      Re: Getting better all the time

      I joined this madness a little earlier and the Turbo Pascal was probably the first proper IDE on the PC. First VS was such junk, hell it was junk until around 2010, but these new versions are quite usable. Still not JetBrains but comparing it to XCode is an insult. Apple had bad software from the get go and while Microsoft has upped their game, fan boys have no idea what kind of trash they are stuck with. Hardware on the other hand...

  6. Bob Vistakin

    I count the word "mobile" there twice

    And that's some crappy forms based simplest-bits-of-all-platforms failure. It's like microsoft are doing a corporate ostrich - even though the news this week is Android is teetering on overtaking global OS share for windows itself.

    Boy, they must love what Nokia are doing now.

    1. xeroks

      Re: I count the word "mobile" there twice

      Except the whole point of Core and Xamarin Forms is that they are cross-platform. You don't write an "android" app or a "windows" app.

      At least, that's the theory.

    2. RyokuMas Silver badge

      Re: I count the word "mobile" there twice

      "Boy, they must love what Nokia are doing now."

      Probably as much as Google must love that when you take mobile out of the equation (ie: look at productivity as opposed to calling, texting, posting pictures of your dinner on instagram and playing the latest clone of whatever's F2P game is popular right now), Android does not even register as a desktop OS, and Chrome OS has less than one percent market share...

  7. Hans 1 Silver badge

    Reboot required ...

    Requires a reboot after installation! How is it that an IDE requires a reboot ... sloppy design.

    1. Anonymous Coward
      Anonymous Coward

      Re: Reboot required ...

      It may be because of the debuggers and other system level stuff installed. It's not just a code editor.

      1. boltar Silver badge

        Re: Reboot required ...

        "It may be because of the debuggers and other system level stuff installed. It's not just a code editor."

        Why does a debugger and "system level stuff" require a reboot? Has it updated the kernel in some way? No? Then a reboot should NOT be required. Well, not in a proper OS anyway.

        1. Nick Ryan Silver badge

          Re: Reboot required ...

          While I can perhaps understand that an IDE has to install components at quite a low level, and given Windows these require a reboot, what is not acceptable is that it is impossible to uninstall Visual Studio and undo the "damage" that it does to the configuration of a system - i.e. masses of additional controls, libraries and registry entries that are no longer relevant.

        2. Anonymous Coward
          Anonymous Coward

          Re: Reboot required ...

          For example, .NET modifies the executables loader. "System level stuff" is not only "kernel stuff" - but also system code which is in user space, and could be already in memory. By design, Windows doesn't allow to replace files which are already mapped to memory, because it doesn't allow two different versions of the same system library to be loaded by two different processes (it may create IPC troubles... and Windows does far more IPC than Linux, as it is far more integrated among the different pieces).

          Restart Manager can be used to automatically stop and restart processes that are using a given file, but some system processes - even in user space - cannot be stopped and keep the system running.

          It looks you have a lot to learn about system programming, especially under Windows.

          1. boltar Silver badge

            Re: Reboot required ...

            "because it doesn't allow two different versions of the same system library to be loaded by two different processes (it may create IPC troubles... and Windows does far more IPC than Linux, as it is far more integrated among the different pieces)."

            I suspect that has far more to do with it being hard rather than a deliberate design choice. There's a reason unix shells have the LD_LIBRARY_PATH enviroment variable. Ditto replacing drivers without requiring a reboot and proper process forking.

            "It looks you have a lot to learn about system programming, especially under Windows."

            I've been doing unix system programming for 20 years. Perhaps I'm just used to non compromised OS's that were designed properly rather than flung together piecemeal.

    2. Alan Bourke

      Re: Reboot required ...

      Boo hoo. How often do you install an IDE like this? Is it that much of an issue?

    3. 9Rune5

      Re: Reboot required ...

      The VS2017 installer never asked me for a reboot.

      I also tried the RC back in December. Again: No reboot.


  8. Anonymous Coward
    Anonymous Coward

    ...And more snooping / telemetry...???

    Anything changed in 2017 or is it more of the same?

  9. GrumpenKraut Silver badge

    ...still not quite complete for C++11 and C++98

    Just had almost 20 years for the latter. Classy.

    1. dajames Silver badge

      Re: ...still not quite complete for C++11 and C++98

      Just had almost 20 years for the latter. Classy.

      There are features of C++98 that were never implemented by any mainstream compilers.

      One of these -- Java style exception specifications -- was realized not to be as useful as useful as people had hoped and was deprecated before anyone implemented it. It has effectively been replaced by the 'noexcept' specification identifying functions that are guaranteed not to throw any exception.

      Another -- the 'export' specification -- was found to be quite difficult to implement and was widely believed not to offer useful benefits (though experience with an experimental compiler that did implement it eventually showed that some benefits were real). It has since been deprecated in favour of the notion of separately-compilable modules, a specification for which is under development (I'm not sure whether it's included in C++17).

      All in all, the 1998 standard for C++ was not the language's finest hour, and lessons have been learned.

      1. boltar Silver badge

        Re: ...still not quite complete for C++11 and C++98

        "All in all, the 1998 standard for C++ was not the language's finest hour, and lessons have been learned."

        Sadly the lesson as to when to leave well alone hasn't. C++ is a dogs dinner. Now they're just adding syntactic sugar such as lambda functions, user liberals and language threads (pthreads arn't hard and if threads, why not process control too? In fact throw in half of Posix!) which mean yet more syntax to learn for interviews and debug when fixing someone elses code.

      2. GrumpenKraut Silver badge

        Re: ...still not quite complete for C++11 and C++98

        Thanks for the detailed answer. What I meant, though is stuff like for(int i=0; i<9; ++i) not being possible (you had to declare i before the loop, barf!). And obscure extensions to the language itself.

        I realize these complaints are about the language, not the IDE.

      3. Someone Else Silver badge

        Re: ...still not quite complete for C++11 and C++98

        Or how about the feature in C++98 that you can't pass a non-const reference to a temporary object in a function call. They still can't get that one right in 20 years, and that is not some esoteric unimplementable thing like export....

  10. John Smith 19 Gold badge

    MS "cross platform"

    Extend, enfold, extinguish.

    Incomplete support for C++ 1998 standard 19 years later.

    Says it all.

  11. Dwarf Silver badge


    The Visual Studio editor is enhanced in this release. New features include:

    Structure visualizer: hover the mouse on a closing brace and a tooltip shows the line of code above the opening brace (a neat feature).

    Well, call me unimpressed, even VI has has this feature, move onto a brace and it highlights the opposite, hit % and it goes to the opposite brace. Same goes for notepad++ and pretty much every other editor I've ever used.

    So, that's some cutting edge innovation from Microsloth, who always seem to be late to any party.

    1. Thought About IT

      Re: Unimpressed

      I'm still downloading it, so haven't tried it yet, but from the description, the difference is that by hovering you don't need to move the cursor position to see the scope of a block of code.

    2. JonP

      Re: Unimpressed

      To be fair the current version (2015) does it too ...!?!

    3. Just Enough

      Re: Unimpressed

      Sounds like you are describing related functionality, not the same functionality. Let me point out the key words there;

      * "hover"

      * "the line of code above the opening brace"

      But you're complaining that VS has new features because they are similar to other text editors? On that basis, we may as well stop development of all text editors right now. Regardless of how useful new features might be, nothing that anyone could now add is going to be totally unique.

      1. Dwarf Silver badge

        Re: Unimpressed

        @just enough

        So, remind me how long we've had mice then ??

        My original point stands. If this is really one of the key points of the new product then something is seriously wrong with product evolution (or the lack of it)

  12. Anonymous Coward

    Visual Studio is awesome, BUT....

    I think Visual Studio is a very solid environment which can even be fun to use. I started using it back in 2012 when I finally decided that ASP appealed more to me than Java EE, especially because I wouldn't be fully tied to IIS (right now my ASP.NET powered websites run fully on Apache + mod_mono). I was using a (paid) version of Expression Web & Expression Design (I still use those) and decided that the move to Visual Studio was the most logical step to take.

    VS takes getting used to. If you're using it for Web development (which is quite likely considering that Microsoft discontinued Expression Web and fully pushes Visual Studio) then you may have to adapt a bit because at first it might all feel a bit "static" (for example: code above, preview below, no customization possible). But once you looked past that you'll find a very inviting and most of all professional, well documented, environment. It's not perfect, it has its flaws, but Microsoft Help is quite useful. I also always welcomed the option to keep offline copies of the documentation, so that I wouldn't be tied into always having to use Internet.

    But there is a 'BUT', as hinted at.

    For starters I could never understand the logic of insisting to follow the GUI layout for their consumer platform. It always struck me as arrogant. VS 2012 was aimed at Win8 but I kept away from that horror story best as possible. I'm using it on Windows 7. Ergo: I have a rather alien looking development environment in comparison to the style of Windows 7. That's just weird.

    And it also shows you just how chaotic Microsoft operates. See the menu in the article screenshots? My menu consists of EASY TO READ MENU OPTIONS (VS 2012). Most people immediately labeled that as fail, Microsoft insisted there were advantages and here we are now. It's confirmed: #fail.

    My point? If you're a home developer and/or Microsoft enthusiast then do yourself a favor and stick with the VS community versions. At the very least try those first before even considering to apply for a license of your own. Using professional or above has some advantages, definitely, but if there are serious caveats which make VS usage awkward for you then don't expect Microsoft to try and help you out. I'm not kidding. Back in 2012 hundreds if not thousands of developers cried about about the obnoxious and plain out distracting interface and Microsoft did what they did best: ignored the whole thing.

    Of course in the next version did they address some problems and presented those as listening to their customers. However, while also presenting you a bill for yet another license, because a company like Microsoft knows nothing about upgrade (or loyalty!) discounts (for example: new VS license could cost you E 800,-, but as a returning customer you'd pay E 200,- or E 300,- instead for an upgrade).

    This will probably be less of a concern if your company provides these or if you got an MSDN subscription. But as an enthusiast you might want to keep this in mind: Microsoft wants your money first, and your happiness second. They haven't reached that point yet where companies realize that these go one on one.

    Now, don't get me wrong... I'm critical, sure, but not negative. Visual Studio is an exciting development and Microsoft honestly does their best to get us the best tools to help get us going to get things done. No arguments there. They're also not so childish by trying to tie us fully into their own environments (think cloud, Azure, etc.) but will easily allow you to set up your own environments as well. As mentioned above I use VS together with an Apache server using Mono, PostgreSQL all powered by FreeBSD and I can deploy my web projects easily from within Visual Studio with the click of a button. That is professional.

    But... I'd personally still recommend using the community versions instead of getting yourself a license. You'll most likely get less headaches and won't have to worry about possible issues which Microsoft then doesn't fix.

  13. DrXym Silver badge

    The most annoying thing about Visual Studio

    Every version of Visual Studio asks during installation if you want MS SQL Server Compact installed.

    What happens if you choose No? Nothing, the bastarding thing installs all that stuff anyway. And it's not just one package but about 10 of them, packages for T-SQL, packages for .NET framework etc. It takes about 30 minutes to remove them all again manually from add/remove programs.

  14. boltar Silver badge

    Visual programming fell out of favour

    No surprise there. Its fine for simple noddy logic for teaching kids or maybe webdevs, but any reasonably complex logic or expression handling becomes absurdly difficult to express in a visual format.

    Good luck finding a succinct visual way of expressing eg:

    reg = (reg >> 1) ^ ((uint16_t)-(reg & 0x0001) & 0xB400);

    1. Prst. V.Jeltz Silver badge

      Good luck finding a succinct visual way

      I was under the impression the idea was you draw boxes and buttons and then type expressions like that into , um , code snippets , behind them?

      I dunno i dont do guis , i just use npp

      1. boltar Silver badge

        Re: Good luck finding a succinct visual way

        No, thats just visual design which has been around since the 80s at least. Visual programming is actually drawing the code as a kind of diagram or flowchart using visual widgets. MIT tried it with the kids language Scratch recently but for anything beyond simple logic or expressions its simply hopeless. Its the difference between writing a novel or drawing a comic with very simple speech bubbles.

    2. Philip Stott

      Re: Visual programming fell out of favour

      Surely you just did ;-)

  15. HmmmYes Silver badge

    Just use VIM and Makefiles.

    Itll save a lot of time later down the line.

    1. Anonymous Coward
      Anonymous Coward

      For large, complex projects you'll spend more time managing makefiles and find the right file to open in VIM - and there are file you may need to manage which aren't simple text files, and require specific editors. While the integration with debuggers and profilers could be far less polished and powerful.

      There's a reason why Autotools and CMake exist - and IDEs are a true productivity tool and time savers when your need can't be addressed by simpler tools.

  16. druck

    I remember...

    ...before Visual Studio when it was Visual C++, and before that Visual C.

    The amount of cruft it's gathered since then is enormous. It is still quite useful though.


POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2019