Hacker News new | ask | show | jobs
by jcrites 3566 days ago
It would be nice to be able to develop "native" Linux software right from within Windows where I'm doing other things. I can see the appeal. That's why Microsoft built the Linux subsystem, I suppose.
5 comments

I tried dual booting Linux back in high school, never got anywhere because I never selected it at boot. Virtual Machines changed that - I was able to play around with Linux without having to worry about a power cycle.

Now I can play around Tensor flow (in theory) and not have to worry about the crummy GPU support in nearly all hypervisors.

I've reached the point where I'd love to have Linux on my work machine, no Windows at all. That's only because for the first time Linux isn't this cool kids playground that I'm not invited to.

my first semester of college back in 2010 I, for reasons I cannot explained, decided that I would keep my windows and linux installs on totally separate hard drives. With a laptop. With one drive bay. You never appreciate how quick rebooting into linux is until you spend 4 months physically swapping a hard drive every time you want to switch which OS you're using.

I was not a smart freshman

If your laptop was able to boot from USB, perhaps you could place the second disk (the one with Linux) in an external USB 2.0 (better yet 3.0) case. That'd solve the issue...
have you seen the VS GDB Debugger extension?

https://blogs.msdn.microsoft.com/vcblog/2015/11/18/announcin...

Actually we have something better than that now. Check out http://aka.ms/vslinux
Much better than that, actually: http://visualgdb.com/

This one has been around a bit longer, too, and despite its name is now much more than just a pretty face for GDB but rather a full cross-platform development environment which has IntelliSense everywhere, handles the installation of toolchains and BSPs for embedded targets, building kernel modules (with VisualKernel addon), etc.

I would prefer it the other way around: Having a good Windows subsystem in Linux. If however I'm to work on Windows, it's nice to know that I'll finally be able to have access to a functional shell.
I like the approach here; different than WINE. Apparently WinNT was built all along to run applications for different OSs at the same time, like OS/2.

They didn't try to implement all of userspace, just the system calls... a lot less to cover. Very cool project.

Yeah, easy. But AFAIK, unfortunately Wine could not just reimplement the Windows Kernel interface, since Windows DLLs are subject to copyright (so you need permission to redistribute them, guess by whom?), and lots of them are needed for a "working" system. That's why they set out to also create a full set of compatible DLLs for each subsystem instead - a monumental task involving reverse-engineering [often poorly documented] stuff, and reimplementing the thing [possibly without infringing any patents]...

BTW Wine is approaching release 2.0. Hooray for Wine!

The real benefit is not just being able to develop Linux software, but the ability to work on cross-platform code. I do most of my coding and debugging in Visual Studio, but when I want to test the changes on Linux I now simply alt-tab to the bash shell which I have open in the appropriate directory, rebuild the changes with make, and then run the updated executable.

That's not necessarily doable for everyone, but for me that workflow is so much simpler than it would be with dual booting or a separate Linux VM.

Embrace, extend, extinguish.

Although I'm guessing a few devs are in the boat with "all company PCs must be windows." Gives them an out no?

No this is not that. The idea is some frameworks/platforms have become nix first, ex. Ruby, Python to an extent Java etc. OCaml to only name some. Windows Subsytem for Linux is about bringing these nix first developer plats to Windows and help developers like me to remain on Windows.
This is precisely the strategy of 'Embrace, Extend, Extinguish'.

Step 1: Embrace new technology ( like Ruby, Python, Java etc ) that run on other ecosystems

Step 2: Add extensions to the technology that only works in Microsoft ecosystem. For example, add new functionality to Ruby for Windows that only work on Windows

Step 3: As more and more people develop software that uses these features, more people will have to switch to Microsoft ecosystem to continue using those pieces of software. This is not a voluntary switching based on the merit of the software ( as the same software could have been developed without those extensions ). The switching is often mandated by management decree, customer requests or market concerns.

The danger of this strategy is the cost for people outside the Microsoft ecosystem.

a) Bad pieces of technology becomes successful, merely because it came from Microsoft. Everyone is forced to use it.

b) People are locked into Microsoft platforms. This causes all the usual problems associated with lack of freedom : harder to experiment, keep the costs down for companies etc

Some people say Microsoft has changed their ways and they have since repented, but most people are still suspicious. Once bitten, twice shy.

So what do you call it when Google adds great UX, advanced sorting and searching etc. to email, and then slowly starts making it harder to send email to Gmail accounts from non-Gmail accounts? (All in the name of eliminating spam, of course.)

Or when Facebook Messenger supports XMPP up until the point where their user base is big enough and they don't have to care about interop anymore?

Welcome to Software Business 101, everyone plays nice with the standards/alternatives/competition until they don't have to anymore. I never understood why Microsoft gets extra flak for this in 2016 - maybe they were particularly good at it 20 years ago, but every big player will play hardball if they get a chance.

The answer is to avoid single vendor lock-in under all circumstances, but Microsoft is hardly on a trajectory to become the single vendor for Ruby or any other Linux-first tech at the moment (ha!).

Microsoft are still doing it. The company that I work for didn't just pay for Office subscriptions because we wanted Office for Mac (and I didn't want to get it on subscription either, but the pricing strategy is designed to penalize you if you don't). We actually have access to three different Office-like products already (iWork, LibreOffice, Google Apps). None of them can yet 100% support Microsoft's "standard" file formats.
s/Software Business 101/Business 101/

FIFY

And that is why I prefer to be a developer instead of a manager.

IMO everyone should get flak for these kind of monopoly building business practices.

Companies with this behaviour regarding my work tools lower my personal life quality.

It might be Software Business 101 now, but when enough executives note that it makes you hated after a number of years, the course content might change...

(For example, what makes me vary about this case is: I expect the Linux subsystem under Windows to start working worse and worse, sometime in the future.)

It may be that Microsoft is doing their usual embrace and extend, perhaps the extinguish part is not possible these days.

This is an interesting effect there, that due to WSL, there will be less perceived need to support windows for development tools. However, isn't WSL aimed mainly at developers? Regular users won't be turning it on. So if you're developing the next dropbox with clients written in Ruby, you'll still need a ruby and gems that run on Windows. i.e. to support end users, we'll still need dev tools that run on Windows. edit: Server-based stuff not so much, and server-based stuff is the main thing these days, to put it clumsily.

Correct, but a LOT of developers today write code that eventually runs on Linux in the cloud. With WSL, such developers using Windows will not leave for OS X/Linux
Hmm, perhaps it's really a move against OS X. If you actually run Linux you're probably committed.
Yeah I would agree it's a move against osx. I run debian on a raspberry pi3 don't even deal with Windows but this is clearly aimed at the corporate web developers where you have a macosx near monopoly.
Keep in mind that Microsoft itself writes and/or maintains a lot of software for Linux - as you can imagine, WSL comes in very handy there.
I don't think that's necessarily true, I use Synergy on my desktop - 2 machines, a windows box for gaming and windows dev and a Linux box for most general uses including most dev work, ops work on servers, etc.

Something like WSL attempts to reduce the desire for this setup. Having things like real openssh work properly without cygwin is a major plus in my book.

Bingo. I thought this was obvious from the start.
If Microsoft can extinguish Linux by adding some subsystems to Windows, I'll eat my hat.
MS is seeing that it can't extinguish Linux, as well as the iPhone or iOS system. It has to adapt to it. Making it easier to develop on a Linux subsystem makes people stay on Windows, which still has stuff like Photoshop that blows away Linux alternatives. Plus of course MS Office, for which LibreOffice is a real alternative, but in some environments it's not.