Microsoft Continues Porting Visual C++ To Linux (microsoft.com)
Long-time Slashdot reader Billly Gates shared some news from Microsoft's Visual C++ blog: Visual Studio 2017 now lets developers write C++ code for Linux desktops, servers, and other devices without an extension, targeting specific architectures, including ARM:
Visual Studio will automatically copy and remotely build your sources and can launch your application with the debugger... Today Visual Studio only supports building remotely on the Linux target machine. It is not limited to specific Linux distros, but we do have dependencies on the presence of some tools. Specifically, we need openssh-server, g++, gdb and gdbserver.
...I wonder if they licensed any of that technology. I bought a copy of VisualGDB a few years ago and it was slick as hell. I had to port a bootloader written in C that was Windows-only, turning it into a simple command-line program on Linux. It was easy as using a native toolchain (easier, in fact, if you have Visual Studio muscle-memory), and so seamless that it was easy to forget that this was all over-the-wire interaction between a Linux box and Windows.
In my case I was porting it over to a Raspberry Pi to prototype a portable diagnostic device for a hardware project. Came out swimmingly, was one of the highest-impact things I did for them. I was starting with all Windows code, both C and C#. Between VisualGDB and Mono, the porting was extremely easy to do.
And Emacs has been there since the 80's. So...? The article was about Visual Studio finally getting some serious work done on being more multi-platform. Which is good news for a segment of developers. That there are already multiplatform IDE's out there is not news.
What makes you think that doesn't happen now? If they were going to do that (and I'm not yet so paranoid as to think they do that), not like this feature would have been the only way to do it.
This is yet another step in the disappearance of Windows altogether.
"First they came for the slanderers and i said nothing."
Well, it's might introduce latency, or it might not, it really does depend on exactly how it's all setup.
I can imagine VS working on a shared filesystem, so that sshing and invoking the build (probably via cmake as cmake support is new in VS2017) is pretty quick and painless if the machine is nearby. If it runs the build, and integrates build/test results with the IDE, then it's going to be a performance win for some people who are very VS centric, and who are developing cross platform libraries.
Anything that reduces the pain of cross platform development is welcome - it's not easy to do well, and you really don't want to be switching between multiple toolchains too much as it'll make your brain hurt. Each additional platform takes much extra effort, and keeping that number in check will really help.
You do realise that "remote" in this instance is you own Linux machine, right? Not a closed build server owned by Microsoft - you are asked for connection information to a Linux machine so VS can copy sources, build, run and connect the debugger.
A 30 second scan of the link in the summary would have shown that up, but that might have held up your shit posting...
So basically they're just porting the IDE.
Remind me again why I'd spend money on this instead of just freely using eclipse or netbeans or something?
Are they porting compiler and build system or the entire IDE?
If they are porting IDE than with what? Isn't VS IDE done with WPF these days? Perhaps they target...ehem...WINE?
Or are they rebuilding it around Visual Studio Code?
4wdloop
If I were going to switch to anything other than gcc (or support anything in addition to it), I would first go for clang and then maybe icc. I can't imagine what value vc++ would add over those.
gcc's warning/error messages are pretty awful and I really like that clangs almost always point me precisely to where the problem is, as opposed to where the problem finally made the compiler lose its mind. Does vcc++ improve on clang in that respect? If it does, I could supporting it as a build target for automated builds to get the nice diagnostics (I do this now for a project with clang), but I can't imagine it would be worthwhile for something that gets deployed.
icc is nice if you are on Intel hardware and want the sooper-dooper extra special optimizations, but that is about it.
Each additional platform takes much extra effort
This, exactly.
Since I'm developing for a Linux platform, I already have one of these here. So explain again why I have to drag another platform (Windows with Visual C++) into my toolchain when perfectly good IDEs are available for the native Linux environment.
Have gnu, will travel.
Depending on exactly what you are doing, you could run Linux in a VM on the same machine.
This, exactly.
Since I'm developing for a Linux platform, I already have one of these here. So explain again why I have to drag another platform (Windows with Visual C++) into my toolchain when perfectly good IDEs are available for the native Linux environment.
Explain who, exactly, is putting a gun to your head to switch to a different tool chain when what you are using now is perfectly fine?
I guess you could also go the other way, and use Linux as the host machine, and put Windows in the VM.
And I want it because...why?
Maybe I'm the one with the problem. Given how easy it is to sell people something they already have for free (Dropbox, Slack, GotomyPC, etc), you'd think I'd get on the bandwagon and go into business selling people the ability to click their mouse or type Latin characters on their keyboards.
I suppose when you're aiming for first post you don't have too much time to think of anything more constructive.
What, framing the discussion properly is not constructive? See, if Microsoft had ever genuinely reformed, then it would indeed be unconstructive to respond to Microsoft's potentially worthy initiative in such a perjorative way. But Microsoft never did reform. It is unnecessary to look any further than Microsoft's shenanigans with Windows 10 to be sure of that, just the tip of the iceberg. So, actually, "fuck Microsoft" is a lot more constructive than you seem to believe: it helps keeps us alert to evil intent, should there be any, irrespective of the possibility that there might really be none in this case. Not that I have the slightest interest in adopting Microsoft's development platform. I am perfectly happy and productive with the one I have now, the development of which is controlled by people I trust.
When all you have is a hammer, every problem starts to look like a thumb.
You do realise that "remote" in this instance is you own Linux machine, right? Not a closed build server owned by Microsoft - you are asked for connection information to a Linux machine so VS can copy sources, build, run and connect the debugger.
While I'm not asserting that Microsoft is sending anything home in this case, that actually wouldn't be an impediment. They'd just send the data back from your Windows machine, which is receiving the debugging information.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
VS does send certain metrics to Microsoft, this has been the case for ages, and its not hidden. But there's absolutely no evidence that VS is sending the sort of thing that you are alleging, so unless you provide some...
Remote building and debugging has been part of VS for certain targets for ages, this is nothing new. And I'm both identifying myself and calling you out. How about that?
I never thought I'd say this, but Microsoft may be the only organization out there that can save Linux from itself.
I was a long time Linux user. I started with Yggdrasil, before moving on to other distros over the years. I've seen Linux grow from almost nothing into a superb desktop and server OS, but I've also witnessed its steep decline since then.
Linux distros peaked around 2010. Its reliability was great. It was finally easy to install. It had excellent hardware support. It had good desktop environments. Linux distros of that era were a pleasure to use.
Then it all went to hell. PulseAudio ruined the audio/sound experience. GNOME 3 ruined the desktop experience. NetworkManager caused me nothing but problems. Then systemd came along and prevented my Linux systems from booting properly on multiple occasions (I never had this sort of a problem with sysvinit).
I can no longer use Linux in its current state. I've had to move to FreeBSD.
While I've never trusted Microsoft, and I've never liked using their software, I'm beginning to think that they may be the only hope for Linux.
If they created a modern Linux distro that undid so much of the damage that we've seen during the recent past, then I may be persuaded to return to Linux.
If anyone from Microsoft is reading this comment, please consider creating a proper Linux distribution. Create one that doesn't use PulseAudio, one that doesn't use GNOME 3 by default, and one that doesn't force systemd on us.
Microsoft, please create a Linux distro that works for its users, instead of against us. I never thought I'd say this, either, but I would even be willing to pay a fair price for such a Linux distro.
I think they need to stop charging for VS otherwise they may get .. well eclipsed.
They have had free versions of Visual Studio for a some years now, and according to the comments at the bottom of the article this Linux remote compilation works with the community (free) version too.
So explain again why I have to drag another platform (Windows with Visual C++) into my toolchain when perfectly good IDEs are available for the native Linux environment.
That is a phenomenally stupid question. Do you ask this sort of thing every time a new feature is added to some software that you don't use? Because I hate to tell you this but the overwhelming ratio of software that you currently use and that which you don't have installed means you will spend the majority of your time complaining about improvements that don't matter to you.
For people who use Visual Studio, this feature adds an extra platform that can be targeted. It allows people to use the IDE with which they are familiar or simply prefer to use, but it doesn't mean that you have to take it as a personal insult. Improving software and playing nice with other operating systems is supposed to be a good thing, right?
I'm more than curious.
I find the VS debugger to be simply wonderful; as do others. In my institution, a lot of developers (mostly Ph.D. students) who have to target Linux, choose to run VS in a VM and develop/debug under Windows before recompiling under Linux. This is so popular that some have automated the process somewhat and perform Linux daily builds (only).
I've used GDB in the past, but wasn't impressed: so I'm wondering why, if the VS debugger under Windows is so good, why don't more people don't do this sort of thing?
@peetm
I'm not saying it was an impediment, just that the entire premise of the argument was bollocks - the Linux machine in question is one you supply.
Oh wow, how original, never heard that one before, give yourself a much needed pat on the back and immediately consider yourself a top tier comedian...
You don't.
Now consider the developers who, like you, have been asking that very question but, unlike you, have until now been predominantly Windows and Visual Studio based.
Your argument works perfectly the other way round - just because it exists doesnt mean its aimed at you...
The title here is extremely deceptive because MSVC isn't being ported to Linux at all. What they are doing is creating a way to target Linux. It's still just development on a Windows desktop, not development on a Linux desktop.
Anons need not reply. Questions end with a question mark.
Sorry, but no. I will stay with what has worked well for a long time.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
At least I chose one.
Please keep your closed mindedness to yourself.
Personally I think "Fuck microsoft" perfectly sums it up. They spent decades attacking FOSS and hindering progress to line their own pockets. So yeah, fuck them.
Considering that all the compiling work still happens using whatever (presumably trusted) version of GCC and Binutils is running on the Linux box (or VM) you are using, I dont think that particular risk applies here.
Is this going to be in the same vane as Borland's Kylix, which could only use it's own supplied libraries?
I suppose when you're aiming for first post you don't have too much time to think of anything more constructive.
What, framing the discussion properly is not constructive? See, if Microsoft had ever genuinely reformed, then it would indeed be unconstructive to respond to Microsoft's potentially worthy initiative in such a perjorative way. But Microsoft never did reform. It is unnecessary to look any further than Microsoft's shenanigans with Windows 10 to be sure of that, just the tip of the iceberg. So, actually, "fuck Microsoft" is a lot more constructive than you seem to believe: it helps keeps us alert to evil intent, should there be any, irrespective of the possibility that there might really be none in this case. Not that I have the slightest interest in adopting Microsoft's development platform. I am perfectly happy and productive with the one I have now, the development of which is controlled by people I trust.
You Microsofties would be better advised to improve your behavior instead of trying to downmod the richly earned Slashdot cricticism.
When all you have is a hammer, every problem starts to look like a thumb.
The Linux functionality is available in Visual Studio Community Edition, which is free (subject to the usual jokes about "provided you don't value your soul...)
Quidnam Latine loqui modo coepi?
I have been using the VisualGDB product for linux development. If this works as good or better, I'm happy
I have spent lots of time trying to find a decent IDE for linux, but none of the available options comes even close to Visual Studio
Yeah, if I have no options, I can get work done on any system, but a good IDE makes everything easier
...and we all know what comes next.
I'm not saying it was an impediment, just that the entire premise of the argument was bollocks - the Linux machine in question is one you supply.
Right, and then the data in question is transferred back through a Windows machine, which you can't trust. It doesn't matter who supplies the Linux machine. You are opening a conduit into it from your Windows machine.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
VS does send certain metrics to Microsoft...
However much it is, it's too much. Rejected.
When all you have is a hammer, every problem starts to look like a thumb.
So, they've got a decent X server available for the Windows platform bundled with that?
Have gnu, will travel.
Personally I think "Fuck microsoft" perfectly sums it up. They spent decades attacking FOSS and hindering progress to line their own pockets. So yeah, fuck them.
I second that. In that spirit, fuck Microsoft.
Remote compilation isn't exactly unheard of, nor is it unusual.
For example, MonoGame developers on MacOS and Linux can't build .fx format effects (shaders) on their own systems because the fxb.exe tool required is Windows-only and also requires the XNA Framework installed on the Windows machine doing the work. This led to solutions like InfinitespaceStudios in the UK hosting an Azure service for all the non-Windows shader writers to use, even supplying a Nuget package to reference from the Content Pipeline tool. (A huge thanks, Dean!) But if you don't trust InfinitespaceStudios to do it for you they also supply all the source code so you can build and configure it youself on your own Windows server(/desktop) machines.
Most of the above are foisted on Linux community by that asswipe, and he somehow gets RedHat to go along.
Basic (optional) telemetry to help improve the product is a terrible thing.
Telemetry that is opt-out instead of opt-in is bad. Telemetry with no opt-out is worse. Spyware under the guise of product improvement is the worst. The latter is classic Microsoft. Rejected.
When all you have is a hammer, every problem starts to look like a thumb.
If you only care about Linux, you're not the target audience.