Hacker News new | comments | show | ask | jobs | submit login
Windows for Linux Nerds (jessfraz.com)
615 points by geostyx 8 months ago | hide | past | web | favorite | 380 comments

Want to _really_ impress us, Microsoft? Give us a Windows Subsystem for Linux.

I chose a maxxed out Dell XPS15 laptop with Windows 10 to replace my 3 year old rMBP with the (foolish) expectation that it could replace my Mac. Apple had lost sight of what mattered to developers, and I was angry. But now, 2 months later, here I continue developing and existing on my old rMBP.

Bash in Windows is incredibly slow on some actions. I didn't document all my activities, so I can't point to which thing was slow. But for a developer using Python, Elixir, Node, Nginx, PostgreSQL, MySQL, Git! SSH! and some other smaller accessories, WSL was far less performant than a Linux VM on my Mac. And it was far, far less performant than on native Mac.

I very much appreciate what Microsoft is trying to do. Perhaps in a generation or three they will finally leave behind most of their protectionist behaviors and embrace what works for them (for better or worse) - MS Office and the host of Windows apps that businesses depend on.

Apple is no saint or savior. But thankfully, some of what they did in the years past (dare I say during the reign of Jobs) is what has made them special. #1 - latency. My Macs work 99% of the time as expected. They run for weeks or months. My high end Android phone, even after factory reset, has occasional mind-boggling hangs (after which 1000 UI events register and take effect). The same applies to Windows 10! It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better. But it still lags so far behind macOS.

There is no utopia. There is only pain, frustration, and anger on the part of users. But please, give us developers (who practically _live_ in your environments) something.

>Want to _really_ impress us, Microsoft? Give us a Windows Subsystem for Linux.

What makes you think that's even possible? WSL works because the NT kernel was built with POSIX compliance out of the gate and they've been able to translate some of the functionality. The Linux kernel wasn't built with Windows compatibility out of the gate.

Do you honestly believe that Linus would accept core kernel changes for the sole purpose of supporting Windows on Linux? It would NEVER. HAPPEN.

>I didn't document all my activities, so I can't point to which thing was slow.

I hate these vague "it was slow, I promise, just can't tell you what". If you can't tell us specifically what was slow, it's worse than anecdotal evidence. I do all of the things you listed there and the only thing that's ever been remotely slow is Git on extremely large repo's - which they're aware of an actively working ot fix.

>It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better.

What specifically "goes nuts"? I've got a laptop and desktop that have been running Windows 10 since launch and they work just as well as my Mac does. I've never re-installed any of them, and never had them "go nuts". That story reads like someone who last used Windows98 and thinks it still applies.

>What makes you think that's even possible?

Have you heard of Wine? https://www.winehq.org/

Imagine if Microsoft put some of their developers on that.

> Do you honestly believe that Linus would accept core kernel changes for the sole purpose of supporting Windows on Linux? It would NEVER. HAPPEN.

Kinda off-topic, but, isn't Linus basically a Microsoft here? Does it matter if Linux's forkable and open-source, if nobody ever forks it to do what the community wants instead of what Linus wants? (e.g. stable kernel ABI, Windows support, etc)

> I've got a laptop and desktop that have been running Windows 10 since launch and they work just as well as my Mac does. I've never re-installed any of them, and never had them "go nuts". That story reads like someone who last used Windows98 and thinks it still applies.

I agree so much with this... last time I installed Windows, it was Windows 7 in 2013, haven't touched it since then, and it works perfectly. Of course it requires a bit of maintenance, but what doesn't after so many years.

> Kinda off-topic, but, isn't Linus basically a Microsoft here? Does it matter if Linux's forkable and open-source, if nobody ever forks it to do what the community wants instead of what Linus wants?

Not really. With OSS, what matters is whether the community wants it badly enough. Forking a software project is fundamentally hard, and the payoff has to be big enough. With Microsoft, it doesn't matter how big the community's payoff is. If Microsoft doesn't benefit enough, it ain't happening.

I think the threat of forking is one of those really serious threats that still matters even if no one ever really comes close to doing it. It comes up more often in geopolitics, where military capability still matters even if no one wants to get anywhere close to a war.

Yes! I primarily develop on Linux, but lately have been working on Windows porting. In many ways the WSL has been a massive savior. It makes developing on Windows at least possible for Linux users. But it's sooo slooow.

The performance bottlenecks I hit seem to be disk i/o related. Things from path tab completion on the command line, to Vim's YouCompleteMe compiling code in the background, to a plain "git status", are just painfully slow right now.

If Microsoft can fix these performance issues, and someone ships a better terminal replacement (currently using ConEmu, also has issues), developing on Windows would be almost painless for Linux users (after learning how to integrate projects with Visual Studio...though I've read VS 2017 has better cmake integration).

I'd say you pin can pin it down mostly to those reasons:

* Do you have active snapshots (vssadmin list shadows)? Halves random writes to disk in the worst case.

* Do you have USN journaling enabled (fsutil usn queryjournal c:)? Adds extra IO to meta-data operations.

* NTFS/FAT is optimized for fast directory listing speed so modifying files also modifies directory entries. Nothing one can do about that (except being aware of that and designing programs with this in mind).

* Windows doesn't keep as much dirty fs data in fs-cache. I know of no way to change that. One can probably, if one uses a Windows Server OS.

* Is a on-access Virus scanner active? If yes, one cannot compare performance to Linux. It's a massive bottleneck.

Regarding the last point.

Windows Defender will normally be active by default on Windows 10 unless you go out of your way to turn it off.

It's not like editing a value in the registry is "going out of your way", it's almost standard Windows practice by now.

Literally two commands in an elevated command prompt

    sc config WinDefend start= disabled
    sc stop WinDefend

The WinBtrfs project is very promising. I tried it a few days ago. I mounted my btrfs partition with it, and it appeared in /mnt under WSL. I chrooted into it from WSL, and it felt faster than the ntfs-backed linux fs. WinBtrfs has plans for implementing WSL permission pass-through. I look forward to that.

Tried https://mremoteng.org/ before? IIRC it wraps putty/kitty for ssh. But was the most useful terminal replacement options for me when I was on Microsoft Land.

Git Bash works great for SSH too. Putty sucks, imo. Especially, the bullshit associated with the certificates. Git Bash uses Linux style rsa keys.

> If Microsoft can fix these performance issues, and someone ships a better terminal replacement (currently using ConEmu, also has issues)

wsl-terminal works for me.


> The performance bottlenecks I hit seem to be disk i/o related.

Would it be possible to mount the folders with the code on RAM? They aren't, usually, very heavy. May be a small-ish 500mb volume on RAM could help? Is this even possible on WSL/Windows?

It's possible, but it wouldn't help. The problem is all the metadata lookups, which generally take several orders of magnitude more time on Windows than they do on Linux. The Windows implementation of NTFS just really isn't optimized to act as an unix filesystem.

Do you know what exactly the fundamental barrier to this is? I've always wondered. What's so different about Linux and Windows that Windows has to do so much more work for file creation/deletion? It seems to be half an NTFS issue and half a Windows issue, because even on Linux I'm pretty sure NTFS is noticeably slower than ext[234], but not as slow as on Windows.

I doubt there is any actual fundamental barrier, rather the reason is simply that the primary workload that Linus himself runs benefits greatly from faster metadata lookups, and therefore every nook and cranny of it has been optimized to as fast as possible.

In contrast, while metadata performance is sluggish in NTFS, at least a few years ago there were ways to get better large transaction async file performance than ext4 if you knew what you were doing -- clearly that workload was something that customers had asked for.

Yes, SQL Server was that customer.

From what I understand the WSL team is small, with only a few people working on the kernel parts. I'm sure they honestly intend to deliver blazing performance but they're still busy delivering basic compatibility. Maybe microsoft should allocate more resources, since it is probably the cheapest way to gain developer mindshare.

I do node development on windows, but not in WSL. I would advise doing as much as you can with native built software and only using WSL to fill the gaps.

Agreed with that. Better use native port instead of WSL, as many tools, limited they may be, has better integration with the rest of the system

Case in point : cannot use Git on WSL with IntelliJ, Sourcetree

Huh, why is that? I do a wide range of web development in WSL - npm, gulp, and webpack all work just fine for me. This works great for vue dev, with browsersync and everything. I also have to do a little WP work, and the required LAMP stack in WSL works great.

Why not dual boot linux and windows 10 or use a Linux VM? It takes like 10-15 seconds to reboot a machine these days. I am about to take the plunge toward a ThinkPad after many years with OSX (I haven't upgraded my 2011 17" to macOS).

My plan is to try dual booting linux and/or using a Linux VM. I think the biggest hurdle will be changing my mindset. That is, looking for the OSX version of whatever it is I am looking for. Wrapping my mind around Linux... just Linux for as much as possible.

I am looking forward to using just Linux as time goes on. I need to ween myself off of a few things before I can make the switch completely... I did it when I went from win to mac.

I did almost this exact thing a few years ago and I've been super happy. Two points of advice:

1. Check hardware compatibility _before_ you order your laptop. Intel video drivers and wifi drivers are open source and reliable. Stay away from Broadcom, and unless you plan to do gaming, stay away from Nvidia (tho modern Ubuntu makes nvidia pretty darn easy). 2. Pick a DE (I recommend Gnome 3, but KDE is great too) and learn the shortcut keys. Expect a day or two of spinup time. If you go with Gnome, make use of the Gnome Tweak Tool and the super key shortcuts.

Good luck! This is exciting :-)

I switched at the beginning of college (oddly enough, before I decided to add a computer science degree or had ever written a line of code), and I really don't understand what all the fuss is about. I've stuck with ThinkPads for hardware compatibility, and I've always been 10x more productive on my machine than anyone I know. On top of that, I've been able to keep 90% of the same habits and config while taking my machine over the years from a prettier-than-Mac Gnome+Compiz setup to a barebones, personalized, blazing fast, low power keyboard-shortcut-driven Openbox setup. The key insight is that if almost ANYTHING about my machine doesn't perfectly fit me, I can make it fit me in about five minutes.

Frankly, I consider this table stakes for a competent OS and I don't understand why people put up with being deprived of this (especially devs): over the last decade I haven't been able to shake the feeling that almost everyone else in the personal computer market has been conned.

I completely agree. The beauty of my system now is that I can make it do whatever I want it to, and I never have to worry about somebody taking it away (open source lives forever. can't say the same about Win XP or old version of OSX). I also never worry about what the corporation behind my OS is doing with my data.

Because some of us have been spoiled with development environments like Smalltalk, Common Lisp IDEs, Delphi, ... with Visual Studio being one of the best.

I remember following KDevelop progress hoping that one day it could eventually match what I already had available in Borland and MS tools.

Thanks for the perspective: I haven't heard VS given as a reason before. It's probably a consequence of the bubbles I've been in, but for every dev I've ever met (incl everyone in my CS program), there wasn't any advantage to Windows for development and disadvantages everywhere you looked. This may be a consequence of the devs I know (esp the good ones) skewing towards having a CS background (though obviously most of them aren't computer scientists in industry).

(Of course none of this applies to personal computing, where I still don't understand Windows usage beyond the need for niche software).

I was on my 2nd CS year when Slackware 2.0 was released, and we had big boys UNIX on the department, like Aix and DG/UX.

Yet the majority of lab computers were running Windows 95/98.

UNIX was mostly used for the OS, compiler design and distributed computing classes.

Everything else, including graphics programming was on Windows.

> unless you plan to do gaming, stay away from Nvidia

Or any sort of GPU compute / machine learning. That is actually my primary reason for buying laptop with a dedicated Nvidia GPU - it sucks performance wise, that's to be expected, but at least I can play with both OpenCL and CUDA.

> unless you plan to do gaming, stay away from Nvidia

The newer AMD cards work very well with the mainline kernels and Mesa. (My desktop PC has an R9 Nano from 2015.) Haven't tried compute or Vulkan yet, though.

I'm in a similar predicament to OP. I prefer Linux in most cases, it's what I'm used to. But I need or would vastly prefer one or the other depending on what I'm doing. A VM is fine for just checking outlook..or using Skype for chat and things like that. But the second I need to use an IDE for Windows development, it's too slow to bear. Having better interchangeability between these two would make my life significantly better. Whether that be a stronger Linux subsystem for Windows, or a Windows subsystem for Linux.

Of course, I work at Microsoft. That being said, many devs I see are open to or enjoy using Linux--myself included. I think, and hope, we'll see continued growth in support for it. Though, I have little to no influence over such things.

There are some ways to improve VM performance. You could try to pre-create the disk volume instead of leaving it dynamic as it usually is, attach a partition directly, or move it to a different disk that'll not interfere with your other apps (my bigger home box has system and apps on one disk, VM volumes and network shares on another). If you do that, your performance hit for disk IO will be very close to zero. A modern CPU will usually not eat up more than 3% per virtualisation layer (at least under KVM). Beyond that, you can assign more cores to the virtual machine and see how it goes. Even a relatively humble i7 laptop has enough power to run Visual Studio with dignity for all but the craziest projects.

If we are talking about a beefy Xeon E5 workstation with 64 gigs of memory, you'll probably be able to assign more resources to the Windows VM than Visual Studio knows how to deal with.

How is the attitude/atmosphere internally at Microsoft towards people using a competing OS (Mac or Linux).

Does the group working on Windows OS feel alienated at all?

In my experience, pretty positive. I see Macs around campus frequently. In my team, people mostly use Windows, so there's definitely no alienation there. However, when people notice I mostly use Linux, I usually receive a chuckle for not using Windows--either out of irony or since we are highly encouraged to dogfood everything here. But that's usually the last I hear of it, so I don't think anyone sees anything wrong with it.

Not all VM host softwares are created equal. One of the other solutions out there may have higher performance for your needs. As a sibling comment said, there's ways to troubleshoot performance as well. With a modern system and the virtualization instructions baked into CPUs, most VMs should approach "near native" speeds.

How can we learn which ones are the best?

The difficult part is virtualization solutions aren't all optimal out of the box, so any evalution of them by someone new to a given product might be skewed.

I'd look at what the big names are, especially in paid versions as they have their business on the line, and check youtube or blogs for performance tweaks or maximizing performance, and see what those who use it day in and day out have found. There aren't any real benchhmark sites or articles I'd recommend, as it can be hard to distinguish unbiased reporting from advertising.

Personally, I would give the VMware products a trial (most have 60 day unlimited use options), but I'm also biased having been a VMware VCP5. Anecdotally, their performance (when set up properly) was better than when I ran VirtualBox or Xen.

Make sure all virtualization extension options are enabled in your BIOS, first off. Second, save some cores and RAM for your host machine. More cores is not always better when it comes to VMs, but this applies more to multiple VMs on a machine and CPU scheduling issues. Third, turn off any power saving features in the host software or guest VM. Things like CPU C states can be a silent performance killer. Fourth, make use of whatever metrics or utilities the software provides to see at the host and guest levels where the bottlenecks are. The guest may think it's waiting on CPU while the host is busy paging memory blocks on disk.

Outstanding! Thank you.

> But the second I need to use an IDE for Windows development, it's too slow to bear.

This very much depends on your machine. For example, I have an office machine running an older i7 with 16 GB of RAM. I give my VM's 6 cores and 8 GB of ram and I don't run into the issues you describe.

I also precreate the disk (instead of using dynamic) and shut off things that tend to be I/O intensive in Visual Studio, but once done I've not noticed a performance difference between it and native.

Microsoft must hate the dual boot to Linux idea. Once you experience a modern Linux, you'll eventually look at that NTFS partition and decide it'd just be better used as free disk space.

For the times you need Windows, there's always VirtualBox.

i was in the same boot as OP, ordered maxed out XPS15 whiped windows from them and installed latest version of ubuntu. but i had problems with 4K display, hdpi support in ubuntu is shit if you want different dislplays with different dpis, and wayland is still not really production ready. And then is the support for GPU, drivers for nvidia, it would get so hot that i could almost burn my hands.

so i returned the XPS and ordered a new MacBook Pro. Sure touchbar is a gimick, and i dont like new keyboard even after so much time but its better then the alternative.

XPS machines look nice, but I'd recommend the Dell Latitude line for those who plan to potentially use Linux. The compatibility is just on a different level, and they are pretty nice work horses hardware wise.

Latitudes lack that infinity display, sure, but at least I'm almost always using an external monitor anyway. Some of the other features are more subjective, but I also like the matte screen, better keyboard, camera on lid upper edge, support for a docking station, and so on.

From my experience, both KDE Plasma 5 and GNOME 3 work pretty well on high DPI displays, not so much Unity 7.

> KDE Plasma 5 and GNOME 3 work pretty well on high DPI displays

Not so well on displays with non-integer scale factor (1.25-1.5x).

I've somehow managed Plasma & Qt apps to have acceptably sanely sized windows decorations and widgets, but failed to e.g. teach the browsers to calculate sizes correctly (e.g. make a block with `width: 50mm` to have correct size).

Biggest GNU/Linux problem is having way too much of the completely different solutions for the roughly the same thing that can't interoperate with each other.

by dual booting and using Linux for your hardcore development your basically ceding that Windows sucks at this. I agree honestly it's sad that Windows is not POSIX compliant, why can't I run bash, GIT, ssh, and a decent package manager on Windows? that will be it's downfall because the hardcore devs are all on Linux and OS X

No, I am ceding that it's easier to develop linux apps on linux. "hardcore devs" on OSX have been deluding themselves for years, myself included. If I would have just buckled down with Linux, I would actually be much further ahead. macOS is really only good for iOS and macOS... nothing else runs it.

There is a world of Windows software that is not POSIX and has viable business opportunity. I've been neglecting that because "OSX rules! POSIX or bust!" mentality. I am going to change my mindset.

Hardcore graphics programming devs are on Windows.

Those doing games, yes. Those of us doing movies are mostly on Linux. Lots of sci-viz folks are also on Linux.

Not only games, movies and sci-viz rendering have little to do with UI/UX design considerations and tooling for consumer applications.

Which is why GNOME and KDE to this day, still need to try to advocate to get more UI/UX developers involved into their projects.

Really? I thought video/post-production people were mostly on Macs these days. What are the standard software stacks for doing FX?

We're getting off-topic here, but see http://www.vfxplatform.com/

RHEL/Centos is probably the most common distro used.

No, everybody is on Amiga :)

As OP mentioned, he probably doesn't want to turn off his system.

This is problem I have with a dual boot system, even with the ability to save state. Unless I absolutely have to, I'd rather keep running macOS's

With the problems I see on the mac forums regarding the new MBP's, I don't think turning off the system is going to be much of an issue.

That said, I understand not wanting to restart in order to get work done. However, I am looking at it with the perspective that I will be able to fully focus on the tasks at hand (ala Deep Work by Cal Newport), in a distraction free environment.

What problems specifically? I'm not following closely, so a summary would be nice :)

> The same applies to Windows 10! It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better

The sad thing is Windows 7 and 8.1 worked just fine; they screwed up with Windows 10. I've had both 7 and 8.1 running for years without a problem. But I had a pretty clean Windows 10 installation that tried to update itself and kept rebooting and rolling back. The fact that I couldn't suppress the specific offending update meant I couldn't update the OS anymore.

I had the same problem with Windows 7. online search lead me to an official support page that described how to boot Windows in some kind of minimal mode. Following those steps did the trick for me.

Still, this problem shouldn't occur at all.

MS Office for Linux. That's all I need, that's all I would miss in my current work environment (in the browser is just not cutting it atm).

CrossOver Office was running Word and Excel perfectly last time I used it (admittedly, a few years ago), it likely still is.

Have you tried PLAY ON LINUX ?? MS Office works great in ubuntu.

Writers in our company were not very fond of Libre Office.

I'm running opensuse so I have my office 365 in a browser, :(

As an aside, opensuse is a great linux for laptops. IMHO, it has better hardware support then Ubuntu and it's a more consistent experience moving between the console and different GUI's.

> more consistent experience moving between the console and different GUI's

What do you mean?

> MS Office for Linux

Until they make this (and a native AD client), all the rhetoric around "Microsoft LOVES Linux" is empty marketing. (I understand it would be difficult to port. That's beside my point.)

I mean, they ported it to osx. It can't be _that_ hard.

In addition to trying CrossOver, as was suggested, I heard SoftMaker Office having great compatibility with office documents[1], but I can't personally vouch for that.

1 - http://www.softmaker.com/en/softmaker-office-linux

And Skype. We need a Skype alternative that works on Linux and it's not an electron app. Hangouts/appear.in and web.skype.com simply don't work the same way and don't have the same quality.

I hope Skype dies (though I also still depend in it). I'm currently trying to get our project on Teams which works much nicer (it's MS' Slack clone). Wouldn't hurt to have that on Linux as well indeed although Slack work perfectly on Linux.

If Skype dies we basically have no alternative. Sure, you got Slack, Hangouts, Teams (as you mention), the new Atlassian thing etc. but that's mainly for group efforts or for a company setting. Skype isn't used just by businesses. I mainly use Skype for videocalls with friends and family, usually one-on-one, and for that we have zero replacements.

Slack is just not a thing for this use case, same for all the other collaborative tools. Hangouts delivers subpar video quality and decent audio quality (if we ignore the fact that it hasn't been working on Firefox for a while). Appear.in glitches and lags a lot, sometimes to the point that is not usable. Signal would be great, video and audio quality are amazing on mobile, but there's no desktop client (apart from a Chrome extension that can't really be called a desktop client). WhatsApp video quality is very poor while audio tends to be decent, but once again, no desktop client (there's an in-browser web app with no support for video calls). Skype too, is fine on desktop, but it's a huge resource hogger and consequently battery drainer on mobile (the only non-game app that manages to warm the back case of my Android phone).

So yeah, future doesn't look great. I am hoping in GNU/Ring, but who knows...

Discord is coming out with video chat, it looks promising.

Isn't Skype pretty much Snapchat these days?

It's open source, it have a long history and is called WINE.

... Which, despite what I imagine is an incredible amount of effort on their part, struggles to run acceptably not even half the software you throw at it ...

Wine is unfortunately not a reliable solution for a huge number of tasks mostly populated by windows-only software (e.g. professional CAD & PCB software - and no, open source "alternatives" in those domains are NOT able to compete, which is perfectly understandable IMO). Even when you get something running, you get locked out of updates because the next version of your software might not work anymore.

When you insist on running those on a Linux system, it becomes better just running a dedicated VM, but you can then kiss goodbye to performance on 3D rendering for example...

It seems obvious to me that running windows apps flawlessly on linux is something Microsoft absolutely does not want: The migration path to a Linux-only environment and native apps would become incredibly more simple, and they would probably lose market share overall... I definitely know I would eliminate it in a heartbeat if I could.

Personally I've found my success rate with WINE to be more around 80 to 90%. In fact in the last year I've only needed to use it for for 3 different tools, all of which worked flawlessly (in fact it later turned out that one of those tools officially supports WINE for their Linux support).

My convoluted point is that it really depends on what you throw at it. Anecdotally I've found stuff that ties into DirectX to be the most awkward and since you've mentioned 3D packages I'm not at all surprised you have had less success with WINE than I.

But if you are happy with that presumably expensive proprietary software, why not run windows?

Yeah you can run actual server daemons on MacBook pro wsl seems to be geared towards nodejs and rails development on windows, docker is far more useful for real work you can even run docker from wsl so while I make heavy use of docker as my employer forces the use if windows 10, wsl is useless for developing daemons and micoservices compared to docker for Windows 10 pro

> Yeah you can run actual server daemons on MacBook pro

Really? Can I run those Apple specific daemons on AWS, Azure, or GCloud? How about Digital Ocean or Linode. I would love to run my Apple Automator scripts on the web too, can I?

NGINX, Postgres, MySQL, Postfix, etc all work just fine as OS X services and Linux Services.

The format of the init script is different but that is true between Linux and BSD or even various Linux distributions. None the less, the concept of running your services on OS X holds fast.

WSL's init however, is not a full implementation. To run a Linux service/daemon you have to resort to bootstrapping something from the Windows scheduler. That's not really the same thing.

None of it is the same thing, outside of linux, if you are being honest. You can't run a macOS script in web production. period. end of story. So with all platforms, sans linux proper, we resort to funny business to get things working locally and then do it different when it comes time to deploy. What are we doing? Just use linux... or MSFT/.net as it were.

The funny thing in all of this is that Apple have nothing to share with the rest of the world, sans swift. They got the underdog sympathy and have made a mockery of all who elevated them to their current status. That is, they have given JACK SHIT back to those who made them who they are.

In which way transitioning to from full closed source to native POSIX implementation and (10 years after) developing swift as FOSS is a bad/disrespectful trajectory in you opinion?

Programming languages that are popular are transitioning to FOSS (even MS is doing it). Proprietary programming cannot succeed in today's crowded ecosystem. If swift was closed source but free to nobody would use it unlike 20 years ago. So swift being OSS is the only decision.

If you're using Nginx, MySQL etc for software and Bash3, Python etc for scripting then there's not linux or Apple specific.

>Give us a Windows Subsystem for Linux.

Not completely what you want, but relevant: https://blogs.technet.microsoft.com/dataplatforminsider/2016...

again - a closed system with no public access to its full tech details. its completeness can not be reviewed by the community, its security model is unknown to the general public, its reliability is a big question marks.

what is worse - it charges you an arm and leg for running that joke on modern hardware. Rather than providing people with more tech details so the so called products can be better used in real life, it has a 30+ pages Licensing Guide telling people how Microsoft is going to screw them financially in different ways.

it is not "for Linux", every single aspect of the "software" described in that link against the fundamental values of Linux.

SQL Server for Linux is nothing else but a joke, those working on that projects in Microsoft should feel sad for the fact that they work in such an socially isolated team/company.

What do you use for a laptop or desktop?


I share your pain! I have a Dell XPS15 (i7 4K 9550) at work and Macs (rMBP and iMac) at home. Me too I was hoping to finally get a PC that was of similar quality, given that it is just as expensive as the rMBP. But boy was I wrong!

Of course I did a clean install with just the drivers. But even like that, when it was new, I got 1 BSOD for every piece of software I installed. No joke. Even now, after almost 2 years and countless firmware and driver updates it has occasional hangs and issues. And no, you can't use the webcam as it just films your chest. And no, you can't use the microphone as it is in front of the track pad so your partner can barely hear you.

I'm using it mostly for Visual Studio. And though I still consider it the best IDE, it gets slower and crashes more with every new version since maybe VS 2010.

I'll stick to Macs at home. Thanks.

I'm running OpenSUSE on my Dell, IMHO, it has better hardware support then Ubuntu.

Visual Studio is available on linux: https://code.visualstudio.com/download

Visual Studio and Visual Studio Code are two different products.

Visual Studio for Mac also exists, but it is another different product (basically a rebranded MonoDevelop with some additional features)

Lol! I suspect something's wrong with your machine, if your regularly get BSOD from a new machine: replace it.

I dumped the MacOS partition on my MacBook and have been running 10 along with the Linux Subsystem without the slightest hiccup for ages.

Visual Studio for big things, Code for my little Raspberry Pi projects and Office 365 for everything else.

I've never had an issue, not even a tieeeeeny tiny one...zero.

Yeah, I'm running Windows on my laptop and have Linux on my desktop.

I've tried Bash on windows multiple times and it's simply too slow. I ended up just running Linux VM as my development environment when I'm on my laptop.

Try to use docker for Windows. Hyperv is extremely performant. In my day to day work I'm using Windows, but I'm constantly using a mixture of WSL and docker. I set up things like Cassandra, MySQL, debugging sessions, nginx using docker. For small Unix tools/launching my applications I use WSL. For other small tools I use powershell.

It took some time getting use to it, but now I actually do feel like in an utopia. No pain for the last 3-4 months or so. You do have to get proficient with docker though for this to work.

Sorry, but can you please share any recipes for mixing WSL and Docker, or you just meant that you use one or another on project-to-project basis (not together)?

I know I can do basic commands (even building images with `docker -H build -t foo .` works), but I failed to find any way to share WSL filesystem with the containers (`docker run -v $(pwd):/foo ...`).

Well, let's say my project's in C:\Development\Projects\MyAmazingProject

I can open bash there (WSL), or start a container

docker run -v C:\Development\Projects\MyAmazingProject:/mnt/project --net=host -it ubuntu bash

Though i usually do this only when I need to debug something. (WSL can't spawn additional threads, which breaks for example Delve, the Go debugger)

Need to connect to a cassandra db? docker run -it cassandra cqlsh mycassandraaddress

Docker compose works well too. And because WSL has unified network interfaces with windows, I can easily start a process in WSL and access a DB which I've run in docker.

I use docker from PowerShell, just saying.

just as a note to whom might read the parent comment: correct me if I'm wrong but docker for windows is not available on windows home (I think you need windows pro, because home does not come with hyperv)... that's all :)

just as a note to whome might read both parent comments: yes, that's correct. I'd even add to this, that I absolutely wouldn't be able to use win 10 home as a development machine, pro is necessary for me.

I keep reading stuff like this about Apple losing sight of what matters to developers...but I don’t really know what the big deal is. Aside from a frustrating lack of RAM on the latest MBP, everything seems to be just as good as it was before to me. And even the RAM issue can be solved for me by just not using too much horribly inefficient (electron) software at the same time.

I want to be able to have a stupidly powerful computer. Like idk 128gb or ram and what not. Why is Timmy Cook telling me I can't.

The current reasoning is that LPDDR4 isn't available yet. You can get 64GB RAM in an iMac.

Because Apple does not make all the components required for MBPs itself and depends on other vendors.

Usually that complaint comes from those whose bubble developers == UNIX developers.

We have hardly any complaint in the office from those with access to our Mac pools for iOS and OS X development, meaning Objective-C and Swift and not UNIX CLI stuff.

I dunno, having seen racks full of Macbooks with plastic wedges to keep the screen just-open-enough, it sounds like doing any Mac development that would require a server component is trash since they terminated Xserve in 2011.

This doesn't sound so bad until it becomes apparent that any sort of build/test farms, like you'd want for CI, would be best served by dedicated hardware like this.

I've heard removing the function/ESC keys for that emoji BS was pretty controversial.

Emoji just isn't even the point of the TouchBar though, and editors and IDEs are adopting support for it. It's basically just a programmable contextual shortcut bar. Plus, it's pretty easy to just remap your esc key to caps lock, and a lot of people have been doing that long before TouchBar was a thing.

Tried docker? It seems VMs are faster than the native OS in the MS case. Should have most of your needs as prepackaged images.

Just wondering, why not put Linux on the XPS directly and keep your old MBP for office and such?

I was about to say something similar, his dev enviroment is perfectly fine with linux, why not try that as well? It's not a very steep learning curve for simple shell commands in everyday tasks. Debian-based distros like ubuntu or debian desktop are rock-solid, fast and reliable, and popular enough to find quick answers when stuck.

For the record, I'm working with similar technologies(sql, go, linux boxes) - mostly with a text editor (ST3) on a few different machines: Best experience is with a desktop running ubuntu on a dual 1920x1200 screen setup. My 2015 macbook air is still blazing fast (running el capitan), and a smaller 2010 thinkpad running ubuntu is also pretty fast and stable to work with. All machines have i5 cpus and SSD disks, though.

Why don't you install macOS on XPS15? Works like charm if you have Broadcom WiFi...

Or office for Linux


What's known as the "windows subsystem for linux" is actually what I'd call a "linux subsystem for windows". I'm not the only one confused by this (So were you).

What we get from microsoft now is a small linux environment inside a windows install. What he wanted was a small windows environment on a linux machine.

Are you ... wow. You're right.

She really had me with the "imagine PowerPoint in Linux without a VM!".

Please don't insinuate that someone hasn't read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that."


If you need to access files in VolFS, you can use bash.exe to copy them somewhere under /mnt/c, use Windows to do whatever on it, then use bash.exe to copy them back when you are done.

IMHO this is the worst-designed(?) part of the whole WSL. Copying files back and forth is the antithesis of a "seamless Windows and Linux experience", to put it mildly. From that perspective it's no better than running an isolated VM. To add insult to injury, although I haven't personally tried it, apparently trying to access the files directly from Windows as if they were both on the same filesystem (which they are) results in all sorts of ridiculous breakage: https://news.ycombinator.com/item?id=12980380

I have mounted CIFS/SMB shares from Windows machines onto Linuxes and Macs, and gone in the opposite direction with Samba; in both of these cases, there is no need for wasteful copying and managing two files; Windows and Linux can essentially use the same files simultaneously.

Going in the other direction, WINE also allows Windows apps to work directly with the same files as Linux ones.

One then wonders, when a networked filesystem with all its complexity can be used nearly effortlessly across different OSes running on completely different machines, and WINE is like the inverse of WSL, why couldn't Microsoft do the same with two subsystems on the same machine using the same filesystem!?

I'm sorry that we don't provide a way to access the Linux portion of the file system directly from Windows yet. It's annoying, and we are working to improve it.

For many use cases it suffices to symlink a Windows directory (e.g. /mnt/c/Users/myuser) into your WSL $HOME directory somewhere and do your source work, builds, etc. in that path. This breaks down if you need certain features that aren't supported on these files yet (e.g. chmod), though.

I assure you that we find this annoying too and are working toward a better solution.

I know this probably goes well beyond the scope of your department but here is my wishlist that would convince me to buy windows:

1. Support for ZFS (and future open source filesystems as they appear)

2. The ability to control every service running, and good honest descriptions of what each service does. The ability to control all the servers my computer is connecting to and a transparent view of the information they are sending

3. Ability to turn off having to use Microsoft Accounts, store, etc. Leave it on by default to make your money but offer a developer version/option.

#3 is already available, and always has been. I personally create a non-MS local account when I first install the OS, and then convert it to my MS account to get the features I want from that. I do this to make sure my user account has the name I want it to have.

Shh don't tell them about ZFS. That's FreeBSD's killer feature!

What do you use now?

win7 & debian. I don't ever plan on going to win10, so my next computer will be full linux.

I think OP was being needlessly rude, it really isn't that painful. And to claim that network filesystems work seemlessly is laughable in my opinion. Though they are right, it does break the continuity a Linux subsystem in Windows could provide.

It blows my mind that Windows engineers are building (and keeping up-to-date) an entire Linux compatible subsystem. That's a huge investment​, and a pile of hairy legacy code if the project should ever die.

BlackBerry worked on running Linux binaries on QNX for quite a while before coming out with Android application support in BB10. Microsoft could be looking to do something similar.

WSL was the result of Microsoft looking to run Android apps in Windows Mobile. Eventually they dropped the effort, and rescue it to execute docker containers on Windows.

Network filesystems are not perfect but they sure try very hard in a far more challenging environment than two subsystems on the same machine to give a "unified" access to the filesystem.

It blows my mind that Windows engineers are building (and keeping up-to-date) an entire Linux compatible subsystem. That's a huge investment​, and a pile of hairy legacy code if the project should ever die.

Considering that multiple efforts by others[1][2][3][4][5], some of them working alone, have gotten quite far in running Linux binaries on Windows without any of the deep knowledge of Windows internals that Microsoft would have, maybe it's not all that huge of an investment... then again, the edge-cases are the hard part and MS does tend to like overcomplicating things.

[1] https://github.com/wishstudio/flinux

[2] https://cowlark.com/lbw/

[3] https://github.com/hackpascal/line-is-not-emulator

[4] http://wezfurlong.org/blog/2004/jan/linux-on-windows/

[5] https://0xef.wordpress.com/2012/11/17/emulate-linux-system-c...

> For many use cases it suffices to symlink a Windows directory (e.g. /mnt/c/Users/myuser) into your WSL $HOME directory somewhere and do your source work

that's what I'm doing for quite a while now and works well for my workload: fast IDE on Windows 10 for coding, reasonably fast building on WSL side.

sure, file access in WSL is slower that native, but still way faster than any other combination I've tried in the last few years (VM + Shared Folders, VM + SMB, VM + file sync, ...) when lots of files are changed at once, for example when switching between project branches.

I'm not sure what she is talking about because you definitely do not have to copy files across. I have a git checkout on my C: drive and interact with it via /mnt/c with no trouble. I'm editing in VS Code and running git and npm in Ubuntu shell with zero friction.

Try mving a directory under /mnt/c from WSL. It won't work.

I have never encountered a file or directory there that I couldn't manipulate, can you give a specific example?

The limitation I know is that you are not supposed to touch the subdirectory that contains the Linux' filesystem root with windows tools, because that'll mess up some kind of hidden metadata.

I have a git checkout that exhibits this behavior but now I can't replicate it. If I clone another copy, I can mv directories but the file permissions are exactly the same.

Can you, for example, do os.rename to replace an already existing file with another one? That works on Linux, but chokes up on Windows as far as I remember. I wonder how does WSL handle that.

Soon you will have problems. She is right.

The parent is storing files on the "Windows" part of the filesystem and accessing them from WSL, while my post (and https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-n... which it indirectly links to) refers to storing files on the "Linux" part of the filesystem and accessing them from Windows (apparently some files must be in the Linux part, like certain configuration files etc.)

Incidentally, the response from a MSFT employee about why this isn't a problem with Samba is "Because this isn’t a supported mechanism for accessing files via a networked file access protocol; it’s what happens when a hacker modifies files stored in a hidden system folder.", which is pretty much a non-answer and almost a "you're doing it wrong" accusation in an attempt to hide from the fact that they seriously screwed this up.

What is the problems? I have been doing this for one year without issues.

From https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-n...

Therefore, be sure to follow these two rules in order to avoid losing files, and/or corrupting your data:

DO store files in your Windows filesystem that you want to create/modify using Windows tools AND Linux tools

DO NOT create / modify Linux files from Windows apps, tools, scripts or consoles

Remember: There's a reason we gave the %localappdata%\lxss\ folder 'hidden' & 'system' attributes

That's talking about manipulating files in the LXSS filesystem from Windows tools. There's no problem with doing everything on your Windows mounts, assuming you don't mind everything getting +x.

Me too. It was one of the reasons I came back to windows, but it proved useless. Sure I've just discovered it after having a corrupted filesystem.

I dreamed to edit a movie in a video editor, pass a filter using ffmpeg, but can't even edit a file in notepad and run it in Python.

VMs or remote access are still the best solution for development. Even cygwin and using setup.exe to edit files are better.

Huh? You just have to be careful not to use the linux filesystem from windows. It's hidden under %localappdata%\lxss anywax.

Editing test.py in your Desktop and then running it with python /mnt/c/Users/Neves/Desktop/test.py should work fine. I honestly do not understand your problem here. If you need to access a file from windows and linux, it must be in the windows fs. That's it.

Agreed, I do Ruby development like this and it is seemless. The code, editor and git live on Windows while Ruby and MySQL run on wsl.

Yes. If I had to figure it out by myself, not having read in an authoritative source that this is the way it's meant to work, I would assume I'm doing something wrong.

That sounds EXACTLY how I used to cheat at Nethack to create a saved game when I was a kid with a .bat file that would drop out of a game of nethack, then copy the game file to a .bak file. then I could go back into the into the game and not worry about dying - and I had the keystrokes down to where I could do them blind and effectively save my game in 5 seconds any time I wanted and be back playing. I was 10 years old.

it's clearly listed under "- pain points" with "still in its beginnings" so be gentle.

A lot of snarky comments here, but I've been using Ubuntu shell on Win 10 for the past few weeks and it's really fantastic. Way faster than a VM and much more compatible than cygwin or msys.

More snarky than usual, i don't know why. "why not just" or "just use" kind of comments that you see more in reddit.

Even someone recommended an Electron alternative, on HN! the #1 Electron hater community.


It's not snark, or feeling threatened. It's just that lots of people (me included) fail to see the point of running Windows at all (unless you are developing for Windows, in which case it's foolish not to). If you want a Linux experience, use Linux. If you want polished applications and a Unix experience, get a Mac. Windows has somewhat polished apps (with very lax UI consistency rules), a convoluted overall experience (ever tried to debug a wireless connection?) and a Unix-like environment (and it had one from the start) both with Cygwin and WSL.

IMHO, WSL is Microsoft's attempt to compete with Mac, not Linux, by adding a Unix-like environment to Windows. I already did that with Cygwin, more than a decade ago.

I am not a pro-developer, but I do enjoy programming and all its associated activities and by trade I'm a Windows Enterprise Architect, as such I need to run Windows as my primary machine(s), but looking a the list of VMs I have running on my Hyper-V servers, I have an equal smattering of Windows Servers and Linux Servers.

So it's purely horses-for-courses. If my career had been built up designing Linux solutions then my viewpoint would be the complete opposite. I really don't understand the hate that Windows gets. Yes, it's not open-source. Yes, it's controlled by a massive organisation. Yes, it can cost quite a lot if you want to develop on it... but you know what, a lot of people (and organisations) don't care. They happily run Windows because they always have, it comes with support options, and it kinda always works (within reason) for what they need to do with it.

Telling people to 'just run Linux' or 'Windows is Better!' is akin to pushing your religion or your choice of diet at everyone you meet. If are an atheist and have issues with organised religion, or if you are an omnivore and get irritated every time someone says 'I'm Vegan, you should be too!' then maybe, just maybe, it's time to rethink your position with regard to the OS wars.


P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the ZX Spectrum. /s

What would be, from your point-of-view, the key advantages of working on Windows?

> P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the ZX Spectrum. /s

The ST was a much simpler and more elegant machine. The Amiga was much more powerful, but too video-centric.

The C64 had better graphics and sound than the Spectrum (and a much nicer palette), but the Atari 8-bit computers had the best graphics of that generation by far. It's actually fun (but not surprising) to notice the Amiga is more a descendant of the 8-bit Ataris and the ST looks a lot like a 32-bit C-64.

Frankly, I don't understand the unix-like argument. I keep on hearing it from devs, but if your work happens mostly in IDEs and occasionally on the command line with tools like npm or gradle you never get in touch with potential "unix-ness" of your system.

The reason why I switched to Linux for work is its focus on power users, e.g. great configurability or well thought-out command line applications, but not because it's close to unix.

"focus on power users, e.g. great configurability or well thought-out command line applications"

Yeah, because it's an UNIX-like.

I'm not talking about command line languages or tools, but applications building an interface to it, like Terminal. It's much handier and more configurable than the built-in ones in Windows for cmd and PowerShell.

and that is because the whole pseudo terminal system was always there not encumbered by cmd wonkiness. That plus filesystem semantics alone make a unix like system miles ahead of microsoft.

I don't know, I think some people feel a bit threatened by this move. It could be viewed as a way to subvert the Linux and OSS community. I think people should know there are alternatives.

That's a generally valid concern, but I don't think I can see that ever really happening. It's really just a compatibility space, no?

There is a bit of a contrarian culture here, lately. Some skepticism is healthy, but too much is toxic.

As a general optimist and hopeful, I like to try and find good where I can without being suckered by hocus or sly marketing.

Moving forward and growing outward should be a good thing, shouldn't it?

I know what you mean, but you will never see MS contributing to Wine will you? Will we ever see office for linux? Why can't we get a proper POSIX layer for windows (like they used to offer)?

> you will never see MS contributing to Wine will you?

This is basically asking Microsoft to open source Windows.

> Will we ever see office for linux?

They already have Office for macOS, Android, and iOS. They also have SQL Server for Linux and .Net core. "Linux" isn't really a viable desktop operating system compared to the other operating systems mentioned.

> Why can't we get a proper POSIX layer for windows (like they used to offer)?

POSIX is dead. Linux compatibility is far more relevant to modern computing.

OP said it was about comparability, but MS does not care about compatibility unless it's in their favor, that's the point.

> "Linux" isn't really a viable desktop operating system compared to the other operating systems mentioned.

Well maybe if office and other applications were available it would be? That's the point.

> POSIX is dead. Linux compatibility is far more relevant to modern computing.

Uh, what about all those people running MacOS? homebrew etc are about running all that nice OSS on MacOS. Pretty much all that stuff will run on BSD/MacOS/Linux/*Nix due to POSIX compatibility.

> Well maybe if office and other applications were available it would be? That's the point.

Where are all the non-Microsoft applications for Linux? Where is Photoshop? What about the thousands of other software vendors?

> Uh, what about all those people running MacOS? homebrew etc are about running all that nice OSS on MacOS.

Getting Linux software ported to MacOS is and has been non-trivial. A lot of effort went into that and for the longest time Homebrew lagged behind. If you're on MacOS you're lucky it's a popular platform and people put in the effort.

I'm not really sure what you're arguing for here anyway -- why should Microsoft their own flavor of POSIX compatible UNIX (again) over building something compatible directly with the Linux kernel. What advantage is the former?

Given that Microsoft is one of largest contributor to linux, I would not blame them for not contributing also where Linux directly competes with them. They would absolutely deserve criticism if they restart ugly fud campaigns again. But as of now, the two seem to be at peace.

> Microsoft is one of largest contributor to linux,

Citation needed.

And please don't quote that 5 years old statistic of a one time contribution.

Microsoft needs to make sure Linux runs well under their virtualisation tools. If it doesn't, Microsoft will end up being kicked out of the datacenter as well, as Windows runs just fine under VMWare or KVM and virtualisation drives better hardware usage. Having Windows run only on virtualized hardware is an existential threat to Microsoft.

You've got a good point.

I believe personally that there are great people working at MS (because I know one or two... so I'll just take a leap and assume in general) --

so it seems like a problem of reining in the beast.

Hell, Gates seems like a generally good person. It's the default nature of a corporation [read: monster] so large to consume as much as it can and become as powerful as it can. Such organizations are structured this way, and bend this way regardless, because of the framework they operate within. I hardly need to say this. MS started making some good ground recently, so maybe with further prodding and pressure, who knows. Everything you suggested sounds like easy wins for them. It's not like it would affect their core consumer base too much.

Yeah I like Gates, much more than Jobs or Ellison, for example. I'm sure he was far from perfect, but he's pumped more money (and convinced others to pump more money) into big causes than probably most others on the planet.

Ballmer on the other hand - both an idiot who stopped Microsoft doing much good for ten years, supported a stupid HR manager in her talent-scaring practices, and also helped give MS its bad reputation. Good job mate.

Good people work for Oracle as well, but that doesn't mean oracle isn't a destructive open source participant.

Surely it's a similar problem to MS. "Reining in the beast" so to speak.

Corporations, any for-profit corporation, are all by their nature (if you can call it that) for the express purpose of making money in their raw functioning. It would take a purposeful, active measure to sway the actions a corporate body would take (or should take).

Not saying MS is an innocent party in the slightest.

> I don't know, I think some people feel a bit threatened by this move.

You are right, but as you said, is good to have alternatives.

> It could be viewed as a way to subvert the Linux and OSS community.

Good, is healthy to have competition.

> "why not just" or "just use" kind of comments that you see more in reddit

Honestly I think this attitude is much more common on HN than reddit

If you've lost your work and time due to their design decisions, you'd be "snarky".

> i don't know why.

Post by woman.

Launching processes in WSL is a LOT slower compared to a VM tbh. WSL is a magnitude faster than Cygwin on that level, however it is still limited by the Windows process model, even with their pico processes they're an order of magnitude slower.

I have a simple bash script I run from time when new WSL versions come out, to see if that improved. It simply loops doing a silly `echo "foo" | grep "bar"` and increasing a counter until that counter reaches 1000. This 9 line script runs in a bit more than 10 seconds on my i7 laptop. In a Linux VM on that same laptop, that exact same script takes 1 second to run.

Now I absolutely love WSL, it makes things a lot easier in my life, but I have to run some extensive long-running bash scripts from time to time (don't ask), and the minute it takes me to spin up a Vagrant VM lets me finish this in about 15 minutes instead of more than 2 hours.

Same here. I've not booted up my arch VM in months. The file format incompatibility is a small problem.

What's your work flow like? Do you have to keep files / directories separated based on using whether your using bash or windows?

Not the parent, but also someone using WSL: Generally not, that is for me the main benefit of using WSL.

Files in the Windows file system can easily be accessed from the Linux side (C: appears as /mnt/c), so I basically do everything shell-based in WSL Bash and at the same time can access files there with my Windows-based GUI tools. I've tried that before with VM setups, and sharing filesystem folders gave me way more trouble there. You can't access the linux filesystem with Windows tools, but I haven't really missed that, since I seldom touch files there directly, and if I do they are text files that are easily edited in vim.

It's pretty good, although you'll find the occasional program that won't run due to missing syscalls (or needs a special flag to be convinced to run) and I'd love if they shipped a working X setup.

> Way faster than a VM and much more compatible than cygwin or msys.

More than, say, msys2? I haven't had any compatibility problems with it.

It's definitely much closer to real Linux than msys2. Don't forget that the entire userland in WSL is the real thing, not an emulation.

The linux subsystem for window is way faster than Cygwin (and any VM), I just tested grep on both platforms for a big text file (500MB) and cygwin-grep takes 2.630s while linux-subsytem-grep takes 0.395s

I don't think grep is the best example since they could be different implementations of grep.

I have seen similar differences in other programs as well (tail, head)

I've been a Microsoft developer for a long time, but in recent years it's become increasingly hard to justify and the Linux subsystem hasn't helped. Not because it's not an interesting feature, but because my desktop has become even more useless as anything but development than it already was with Visual Studio infecting everything.

I'm sure it's a step in the right direction for a lot of people, but I bought an old 2015 MacBook and it's been a so much better experience than windows that I'm actually considering getting a ubuntu machine to see if it can work as my main machine. If this sounds odd to you, you haven't programmed on a MacBook with a Danish keyboard.

Honestly Microsoft does a lot of things right these days, but it all comes with terrible user experiences. .Net core is great, but the devops required to run it in production, frankly has us considering java spring.

Sorry about the rant, but the fact that you even needed to write this blog is a good illustration of what's wrong with Microsoft. Tech is supposed to run out of the box, with minimal effort required.

Funny because I used to be a "Linux developer", if there is such a thing, for a long time. But nowadays I consider myself a developer who has invested my time and energy into the Microsoft ecosystem.

Why? Because never before have I felt so productive on Windows and together with my dissatisfaction with desktop linux it was an easy choice.

With .NET Core, the console actually gets usable and today Powershell is simply a fantastic tool. Stuff that used to be a pain to setup is already there when you install Visual Studio. Things like git used to be hard to have to handle (I prefer the console) but now it is no longer true. I don't even run git bash.

If you want to run stuff that usually is hard/annoying to run on Windows, for example Ruby or PHP it is today a breeze with the linux subsystem.

I use .NET nowadays and together with Azure it's just unbeatable IMO. I get start a new project and have it deployed withing minutes complete with a database. It's super easy to setup git push deploy and you can deploy from the IDE as well. Node is setup with a click, it feels like it's almost better implemented on Windows than on linux. With both VS Code and the normal VS, setting up stuff like task runners or to compile typescript is now simpler than ever.

I don't really know what devops you're talking about because I think .NET Core is much easier to run in production and you can still run it on the .NET Framework if you want that.

Try pushing your .net core project to your iis and see what happens.

I mean, it's not like it's impossible to get a .core project to run behind your iis, it's just not easy.

Then try doing something like the EU standards for SAML authentication which is the easiest thing in the world in a lot of other environments yet is really terrible in .net.

If Azure was my production environment I probably wouldn't be unhappy either.

To take the conversation sideways a bit, what about running .net core in production has given you trouble? We've had success with a bunch of services and my view is that most of the trouble is found pretty early on in the dev experience.

So what macOS stuff do you run in "production" to users? Apple gets a free pass when it comes to the hard stuff and I am tired of it. At least Windows is can be run in "production"...

You know, I kindly disagree. Tech is suppose to run flawlessly/with minimal effort required out of the box for the average consumer.

Power users, Devs, IT Pros and SysAdmins follow a much different path. Each one of these groups taylor's their systems to match their professional work flows. I do not know about you but I am constantly messing with things to get them just right. It doesn't take all that long but I love that I could come home to Windows and be greeted with add ons and programs which make my digital daily grind enjoyable.

Case in point WinXCorners ( http://apps.codigobit.info/2015/10/winxcorners-hot-corners-f... ) -- think Hot Corners. Love it. Throughout the years this and the Desktop spaces are Ah-Mah-Zing. They make a huge difference to me.

From the Start Menu to forced Cortana-Bing-Edge is a mess. Yuck. But there are ways around it. But that's for me. That's my personal take. However looked at from my 8 year old's perspective -- those things do not matter. When he uses it -- it works for him. He was born into the iPad touch is first world. He had zero issues adapting to Windows touch/kb/mouse paradigm. It just works for him. The parental controls through MSFT accounts are outstanding, simple and get the job done.

MacOS and Linux have yet to really nail multi-user accounts in the Desktop GUI realm mind you this is well outside of terminal land where multi-user accounts are never an issue. Granted MacOS has a leg up on Linux Desktop distros for multi-users. However this defect is compounded and made worse by the continuous client model. Iphones, Ipads, Apple Watches and Macs of all stripe were meant to be single user only. Sharing need not apply.

Use cases matter a great deal.

I am just happy I have a PAID alternative in Windows 10. Two years and they have gotten to the point where the growing pains are gone from Windows 10. WSL has matured quite a bit.

WSL SSH (the lowest hanging fruit if there ever was) works orders of magnitude better than any wonky Powershell/CmdPrompt/Putty/Cygwin ever did. VI/VIM the same applies.

Granted my perspective is from the SysAdmin/ITPro space.

There are tradeoffs to everything. There are good tools and bad tools. Use the right tool for the right job. I personally have zero tolerance for non-cross platform Apps. I put the ability to be able to use the tool or service I pay for across different platforms first. I am not a fan of lock in. I should be able to spin up a new system and get it running to working status in 15 minutes or less. I do not get too attached to one OS or another. I prize flexibility over flashy niche and sometimes uber-sexy lock in. This model forces me to constantly stay sharp and educating myself.

This post was interesting in a morbid way but you can count the Linux nerds that want leave the open world of Linux for Microsoft very easily. They all work at Microsoft.

Microsoft is losing on mobile, desktop, servers, and IoT. Their entire ecosystem is a technological deadend.

If you're a Linux Nerd, you should probably keep using Linux if you care about having a good career going forward.

Losing on desktop. Yeah, any decade now.

There is of course a constituency of Linux Nerds primed to move to Windows: people who want to develop software for Linux servers but don't want to run Linux on the desktop. Many of those people are using OS X, which is POSIX enough to run some Linux software unmodified. WSL is a way to target those people, who may be being left behind by Apple's changing strategy in laptops (and the continued neglect of the Mac Pro and Mac Mini).

Yeah, that's me in a nutshell. My employer recently sent everyone new hardware and I was initially bummed about getting the just-before-Touch-Bar MBP. Then I saw how gimmicky and awful Touch Bar was for the "lucky" colleague stuck with it. I'm typing this on a five year old MBA that isn't quite up to scratch for work anymore. If Apple would take this case, stick updated hardware and a Retina display in it, I'd buy it on launch day. Never gonna happen so I guess I'm never gonna buy another Apple laptop.

Desktop Linux, especially when your employer runs Exchange, is a barrel of pain I've opened far too many times for my own good. Not going that route again.

> Desktop Linux, especially when your employer runs Exchange, is a barrel of pain

That's been me at my current employer. The whole dev team moved to linux, becuase it's just so much more productive. But the #1 pain point is Exchange.

I tried Evolution, which connected to Exchange without any issues, but the mail client itself was buggy as hell. I tried thunderbird with some plugins (can't remember which ones) and that didn't work at all. Then I found out about Hiri. I thought it would save me, but it couldn't connect to Exchange at all.

So our last resort was outlook webmail. What a fucking pile of garbage, but at least it "worked".

I lived with that pain for months until I discovered davmail [0]

I could easily connect thunderbird to exchange via davmail. I got all my email, contacts and calendar synced up nicely with exchange. I have had 0 issues fo far.

[0] http://davmail.sourceforge.net/

I think the touchbar is a very cool idea, but I don't understand why they put it on their pro machines. Who uses function keys? Pro users. Who would benefit most from the touchbar? Consumers.

nobody is doing Linux dev on Windows, the only people I know at work on Windows are sysadmin types that just never learned Linux desktop and non-programmers. 95% of the dev people I know are on OS X or Linux

On my bubble the only place for Linux is on servers. OS X machines are too expensive and we get to share a pool of devices.

95% of devs are on Windows.

How healthy is the desktop market outside of the corporate environment? Consumers seem largely content with phones and tablets.

Still pretty healthy if you include laptops, which are functionally desktops, down a bit but still quite healthy (includes a forecast): https://www.statista.com/statistics/272595/global-shipments-...

As long as PC gamers exists, the desktop market will never die.

And that is the single most popular reason to run Windows I hear in my bubble.

This is a great comment. I have never been a gamer... but now that I am moving back to windows... it just might become a thing.

Tablets are still a thing? Large phones and Laptops is what my bubble uses.

The vendors aren't doing themselves any favours.

I'm typing this on a Samsung Tab A with a bluetooth keyboard. It's actually a pretty slick form-factor -- 9.7" screen, 1024 x 768 dispaly, 128 GB additional storage, and converts from a deskable or lappable landscape to portrait in under a second. Charge lasts all day.

The basic concept of a mobile device whose display is separable from its keyboard is _wonderful_. Laptop hinges suck.

That's the hardware -- and you can do better on several counts (memory, ROM, MicroSD, display) now.

But for two major limitations:

1. NOBODY has a decent keyboad, and there is NO standardisation for cases, outside a minsuscule handful of products. Samsung's Tab 3S has a keyboard ... five rows -- no function keys. Which kills off a whole set of applications right there. The keyboard I've got (Logitech Type S) was broken from the start, and Logitech have abysmal warranty support. The keyboard is no longer made (they claim), and loses keys and other function over time.

2. The OS and applications space is abysmal. Here I'm including iOS and Android. Neither Google nor Samsung support updates to my device (it was apparently EOL as I was buying it). It's also not supported by CyanogenMod / LineageOS. The best thing I've found since getting this has been Termux, a Linux console environment, which offers a small but very, very, very useful set of utilities. Even that is crippled by what appears to be a bad terminal emulation (exceptionally slow on any scrollback), background-process termination (I'm never sure I'll find my sessions when I return to them), and something insanely buggy with SSH emulation.

iOS of course doesn't even have a userland / console space.

I'm looking at the Samsung Tab Pro line. It's expensive -- more than twice the price of an Asus Chromebook, say, but has the benefits of a folio-case and seperable keyboard form-factor. It seems to come with Windows 10 rather than Android, and I'm trying to sort out if that can be converted to either LineageOS or Linux.

The surveillance-capitalism market of Android / Google is no longer tenable. The App ecosystem is fatally broken. Google's own apps (notably Chrome) are beyond frustrating. So really, the faults are all on the OS/applications side.

I've some fairly strong reservations about installing Linux on a tablet as I doubt that Linux tools will play well with a touch-based surface (and touch itself ... has massive problems). In particular, the inability to distinguish a touch vs. click/drag action, the inability to navigate with the pixel-perfection of a desktop/mouse (though with high-def displays even that is pretty dicey these days), and the lack of multi-button mouse equivalents. I find all quite annoying.

But for straight console-mode operation within Termux, the tablet's actually reasonably useful.

What would help here?

1. Size standards on devices, including port and switch locations, such that cases could be designed for them across vendors. There are cases which work for only specific variants of Samsung model lines.

2. Keyboard standards, including interactions with keyboards, "special" key placement, and standardisation on a six-row, ~78 key standard. Samsung's 64-key error on the Tab 3S is absolutely inexcusable.

3. An alternative to straight-touch interfaces.

4. Bootloader unlocking and a sane standard for non-cloud device backup.

5. Mandated, effective, and usable privacy controls.


There used to be a very good terminal environment app on Linux, far better than termux. It was called Terminal IDE, and it was basically a full Debian bootstrap. Unfortunately, it was never updated for lollipop or later, possibly because of pie/technical reasons.

Personally, I've given up on using Linux from Android. I'd love to, but it's next to impossible, you'll run into other issues you haven't even seen yet; for example, my phone doesn't even have ext support for the sdcard; I'm stuck using fat32 for a 32gb partition. You also can't mount a network drive with fuse and expect to access it from another app.

If you want a software keyboard, use hacker's keyboard--it does a full keyboard layout with alt/Ctrl/other keyboard keys. If you want a physical keyboard, you shouldn't use a keyboard case anyways, a full size keyboard is far easier to use. You can get a microusb numpad-less keyboard for around $10-15 online. Alternatively, just get a full 100+-key Bluetooth keyboard

If you want updates, buy Google and/or deal with unofficial community updates if you can get them, because only Google updates their devices. I'm stuck on lollipop because Verizon has decided not to release Marshmallow in the US (VZW Moto E2 has MM in EU only)

The adb backup/restore commands may also be of some limited help to you. (They use archives that aren't openable, but they do work)

I'm well aware of external storage limitations.

Google/Nexus devices have no damned onboard storage. That's a fail. I don't do cloud.

The lack of usable / findable docs on this stuff is another PITA.

Pretty much, even as a developer, I feel the desktop paradigm is less and less important each year since I mostly only use a web browser and a terminal.

You're one particular kind of developer. There are others.

For example, my usual "working set" right now includes:

Araxis Merge, Calculator (the Windows 10 version with the new programmer features), Dynalist, Evernote, FlashDevelop (don't laugh), IntelliJ IDEA, TraceView Plus, Notepad++, Office 365, Process Hacker, SecureCRT, Slack, SmartGit, Visual Studio, VMware Workstation, VS Code, XVI32.

And less frequently:

API Monitor, Dependency Walker, Spy++, Hexinator, PaintShop Pro, IDA Pro.

Also utilities like 3DxWare, 7-Zip, AquaSnap, AutoHotkey, Brother scanner utility, Eye-One Match (so my monitors are calibrated the same), Everything (the search utility), GraphicsMagick, JKLmouse (keyboard mouse control), Macrium Reflect, FolderSizes, Pandoc, ZoomIn/Zoom+, and the usual browsers and stuff. WSL too.

Along with more personal tools like Foobar2000, Google Earth, Moneydance, Musicnotes (sheet music player), Total Recorder, Transcribe! (music transcription and pitch shifting), TurboTax, VLC.

I'm not saying my set of tools is typical either, of course! Just that for some of us the desktop is alive and well, both for business and personal use. I have no idea how I would replace most of these tools with a terminal and a web browser, other than the ones like Dynalist and Slack.

I assume that is because you can SSH into the machine of your choice?

Most of the developers who don't live in a country with fast internet connection will still continue using a desktop for the foreseeable future.

Nope, just vim, and a browser mostly. I use sublimetext sometimes. That's the bulk of my desktop app usage.

Linux still sucks shit on the Desktop. I try it every year, and every year it sucks very slightly less. It goes beyond drivers and application compatibility, Linux distros are ugly and the people making them have no taste.

The Desktop/Laptop market is not nearly as important as it used to be, but within that space, Microsoft's dominance is about as strong as ever. Apple might have been able to take a dent out of it if they were committed, but they decided the obscene margins on iPhones were more important (and I can't entirely blame them).

Outside of admins and linux developers, Linux has no chance on PCs. Every year that passes convinces me more of this. We are going on the 20th "Year of Linux on the Desktop". If they were going to do it, they'd have done it by now.

Been using Linux as my primary desktop for 17 years now. From ancient Redhat, through Mandrake, SuSE, Ubuntu, now linux mint. Linux mint on my 7 year old laptop (very high end for its day, still no slouch: 16GB ram, updated to SSD, and NVidia mobile graphics) is a more pleasant user experience for me than the corporate Macbook pro.

Everything I need works. My windows environment is an old installation of windows 7 on VirtualBox that I boot up about once every 2 months to get updates, then shut down again. That VM has cygwin, which I'd been using on Windows for a long time when I used it.

Everyone will have their own preferences, and I accept that. Claiming that "linux desktop sucks" and has for a long time, doesn't quite meet the reality of my daily (corporate) life. I am one data point, but certainly not the only one.

If I were, then distros like linux mint wouldn't exist. Nor any of the other desktop/user centric ones for that matter. But they do exist, and appear to be thriving.

As I said, preferences are personal. Linux desktop is quite productive for me.

My sister, who majored in philosophy and is in absolutely no way technologically adept, has been a fulltime linux user for 12 years now (including 4 years in university).

My partner, who is a grade school teacher and is in no way interested in learning about technology, has been using it full time for 2 years now.

My dad, a 6 year user (4 years fulltime), same story about level of tech competence...

There are others. I suspect that you are expecting to not have to learn anything new and are looking for a visually identical Windows clone.

Having dabbled in enough Linux over years and still preferring Windows for most of my work, even though I make sure there is a Linux box up and running in the corner, I would say this Linux excels at extremes, i.e. powerusers and novice users who need "restricted" usage. For the rest of the people who fall into the range of not poweruser but want enough autonomy to install and uninstall various software applications, but who do not care to summon script-jutsu Windows still beats out in that experience. I not want to disparage non-poweruser Linux users but they are who they are.

How so? Virtually every linux distribution has package mangers - which mostly also have nice graphical user interfaces. I would argue this is a much nicer user experience than having to search on the web for the installer, dealing with incomplete uninstalls, each application doing their own thing in regards to updates, etc.

Not to mention the sketchiness associated with downloading and executing arbitrary installers from the internet. I bet most of us can get by OK in that situation, but your average user is not going to be able to differentiate two identically-looking installers for their desired software, where one is malicious and the other might be legitimate.

Am I correct in guessing that they all use Linux at your recommendation and ask you for help from time to time? Regardless, I'm glad it works for them. But if they do benefit from your help, keep in mind that not everyone is so lucky. And for individual users who aren't using their computers in a corporate/institutional environment with a sysadmin, the best software is software that just works without any help from a techie.

My father is 74 and he uses ubuntu. I installed it for him and he doesn't know the difference, really.

Most people are just using browsers and I don't know, maybe a spreadsheet once in a while? Primarily browsers. My dad casts videos to his chromecast and reads a few forums, checks his email.

Ubuntu just works for "normal" users. I installed it because I have to help him far, far less than I did when he had windows.

Same with my 81 year-old mom. She has been using Ubuntu for the past 10 years. She even updates it herself (after asking me what she needed to do once).

I disagree. Just my personal bias but I don't care for Windows on the desktop at all. It's just... annoying. The slashes face the wrong way, can't resize a terminal. Weird file system. WTF is this registry thing? What's wrong with config files? Too much junk in the interface. It's just not... clean. I like clean.

I suppose it comes down to what one knows and is used to, but for my part I don't see myself ever working regularly with Windows again I dis-enjoy using it that much. So all this talk about how bad Linux desktop is nonsense from my perspective. I like KDE. I like Mate. I like i3. I like Gnome. Doesn't really matter, a terminal and web browser and a small handful of tools is most of what I need. Especially if I can set it up as I'm used to. Which if windows were kept simple would probably be ok as long as Bash or like is around somewhere. But no. It has to be all gooped up and just... controlled. Not what I'm looking for in computing at all and not what I enjoy.

Oh, the registry isn't that bad. It's just a hierarchical config file that's very well hidden, requires using either a separate tool (sort of like dconf-editor) or weird tricks like cd'ing into it like it's a directory (thanks Powershell), and that has several versions that get overlaid to give the actual contents you're looking for. Totally normal and sane. /s

WAY more fun is getting file associations working, on corp systems where they fail to persist. I can't double-click a Python script and have it run, despite having the exact same registry settings that I have at home for .py, Python.File, etc.

> Linux still sucks shit on the Desktop

Shrug I've been using it on my main machine (a laptop) for 8+ years now. Works well for me.

> Outside of admins and linux developers, Linux has no chance on PCs

While I'm ever so slightly afraid you might be a little right, I'm super thankful that Canonical keeps putting out excellent new releases.

That's one of the three (?) answers you get when someone says they have a problem with Linux.

I can relate to the quote and I use Linux.

Check out https://www.reddit.com/r/unixporn/

I think the linux desktop user experience has improved exponentially over the last few years, you should give it another shot.

I was an early desktop Linux user 1996-2004, before switching to the Mac.

I think I've heard "you should give it another shot" every single year since.

Kiosks or super locked down experiences like ChromeOS have a decent chance at making an impact for some use cases (especially less technical/senior users)

But as a general purpose desktop OS ? Still no, thanks. It's not just the lack of major commercial desktop apps (especially in the creative space, where browser apps won't take over anytime soon)

It's also the fact that desktop Linux's priorities still largely mirror those of its left-brained developers, who don't value good design and human interface guidelines nearly as much as they should. Or as another commenter has put it : they have no taste.

To be fair, I'm sure (well, I hope) there are now some professionally trained UX/UI specialists at Canonical and other places, but by and large there's still this mentality that it's a soft skilled task that a dev is perfectly capable of doing if need be (and yet, devs are horrified when a web designer quickly cobbles some PHP snippets together and calls that development, as ops people are generally horrified when they see servers set up by developers :) )

The last and maybe most important issue is that good design is necessarily strongly opinionated, it needs a leader to make hard calls so that the user doesn't have to, and this is completely at odds with the Linux/OSS philosophy. And why Apple became so good at it, having a (not always benevolent) dictator at its helm for so long.

It's just a friendlier way of saying 'you probably weren't doing it right'

these are operating systems that reward expertise - it takes time and patience to get your workstation the way you want it. It's a time investment to learn it, to some it's worth the effort, to others it's not.

edit* and I will concede that the various linux desktop environments have learned a ton from apple's design and UX concepts, and some of them have branched off into very interesting directions.

Are you happy?

Nice UIs won't fix people's broadcom wireless cards.

Responding snark with snark: Then don't use them.

Most wireless cards out there work just fine. When I had to use a laptop with a Broadcom chip for uni I used my Android phone as tethering (charging it as a bonus) and the guy sitting next to me just used a dongle smaller than his thumb.

Most people (even developers) aren't willing to open up their laptop to replace their laptop wifi cards or to have to use dongles to get on their wireless or to play endless hardware roulette.

OSX doesn't work on all windows-only hardware either. You have to buy something with Linux support.

I have linux distros running on 3 of my apple laptops with broadcom cards - it just meant using a nonfree firmware

I even have problems with Intel card from time to time.

I am legitimately excited for Ubuntu 17.10, the GNOME theme looks great.

Looks have improved a fair amount. The normal user still wouldn't know how to install any software they know on it, however. And I'm not talking about an open-source alternative from apt.

Also, touch screens <3

for some users, half the fun of switching to linux is realizing there's open source versions of all the software they used to pay for.

Why bother, when in most countries they can just pirate it?

I find no need to pirate software using linux, everything I need is available for free. Pirated software that goes un-updated is a huge security issue anyway.

So around many universities around the globe, specially in poorer countries and see how many care about those security issues.

Or many street bazaars around the globe.

pirated software with a bunch of malware in it?

It is sad, but many people don't care about it, hence why malware is so rampant.

For what it's worth, for software installation there's now "snaps," the new "universal Linux package" format that Canonical has been pushing.

Yet another package format...

Obligatory XKCD : https://xkcd.com/927/

> Linux distros are ugly...

Have you looked an a modern linux DE in the past 5 years? It's within subjective opinion as to which looks better. And a lot of time that opinion is "what the user has used before". And Windows is far from a smooth experience given how disrupted the Windows 10 UI changes were in Enterprise and Educational environments

> Linux still sucks shit on the Desktop... Linux distros are ugly and the people making them have no taste.

Linux is hard to beat for a fully customizable programming environment. You can easily customize the look of a Linux desktop, but can't with Windows or Mac. Windows and Mac have both taken UI ideas that have been around on Linux for far longer.

I have been working for a few decades and I surely can customize Windows and OS X to the extent that matters to me.

Sure I probably cannot do it like I used to do with Slackware and fvwm on a rainy weekend, but I don't want to.

I want a full stack developer experience with OS Framework APIs that I know are going to be available everywhere, coupled with a nice IDE and graphical tooling.

Different philosophy. I don't like OSX's animation/style, and I want scriptable, command line tools for development, not GUIs.

Yeah, but that is the thing ... I never wanted to customize the look and have zero willingness to spend more then a second on it. I want it to look acceptable out of box, but dont care about details. I suspect most people are like that. I thought I dont care how things look until I installed linux distro at home years ago and seen how it looks without tweaking. And I was unable to make it nicer, not because configuration would be hard, but because I am not artist and dont know how to make nice.

It does matter how the whole looks to the user and linux was never really good at.

>I am not artist and dont know how to make nice... It does matter how the whole looks to the user and linux was never really good at.

It sometimes takes a little bit of work, but it isn't that complicated. Linux is great at it, but you might have to do a little research.

An example of how to find that information: https://www.google.com/search?q=how+to+make+linux+look+good

Example desktops: https://www.quora.com/Whats-the-best-looking-Linux-desktop-y...

I haven't said it is complicated. I complained that it takes time (aka "takes a little bit of work"). And most of that work is "try color after color and width size after width size and it still looks ugly while I don't know really why". Specifically, if I knew how to make things look nice, I would likely do different job then tech. And I don't really care about researching tons of schemes and about futuristic artistic whatever either.

What windows and mac do is that you open new laptop and everything looks alright. After few weeks, I change the wallpaper and I am happy. That is zero "make it nice" work.

You don't need to try color after color -- just find a theme you like and install it. It's very simple. :)

Make a visit to any Linux user's group, and someone can help set it up.

If you want to experiment with different kinds of windows managers (like xmonad or i3 for keyboard productivity), you have the option. With Windows or Mac, you lose many options.

Linux often has desktop features far before Windows and Mac, for example virtual desktops: Windows got them in version 10, Mac got them in 2007, but Linux had them since the 1990s.

I'm not trying to convince you to change -- just saying that it isn't complicated to make Linux look great, and there are always people available to help.

I guess it is hard to explain, but I don't mind not having those options - if in exchange I don't have to do what you suggest. It is an annoying chore and obstacle to me.

Virtual desktops were available in previous Winows if you care to install app. I don't think it is terribly important, I used them but most people did not cared even if they knew about it.

I know there are good friendly linux communities (and less good ones too).

I installed the virtual desktop software on Windows XP and it was not really usable so I removed it. Linux's virtual desktops have been much more advanced for a long time.

I did like Mac's three-finger swipe at one point, but as soon as I discovered xmonad, I could see that there are faster ways than swiping. (press alt-n to go to desktop n) Also, I think OS X still limits the virtual desktops to one row, which is inefficient.

It comes down to personal choice, but for comparison, it can be a chore to learn new things when programming too, but learning those things can make using the computer better and easier in the end.

I'm not trying to convince you to switch -- just saying that Linux does have great-looking, very advanced UIs, that are not restrictive like on Windows or Mac. :)

> Linux distros are ugly

Compared to the dominant desktop OS linux distros are beautiful and consistent. Windows doesn't even have a standard look and feel anymore. And if you don't like it you can tweak the whole desktop + apps in one place.

>Linux distros are ugly and the people making them have no taste.

Of all possible complaints about Linux, you've picked this one? Come on.

I have a corp-maintained Linux laptop; Chrome does not get along with the graphics drivers and will freak out and start flashing white every hour or so.

My (corp-maintained) Linux desktop locks up under heavy load for every few days, usually recovers though. The person who sits next to me has it worse though.

And this is with standardized corp-bought hardware.

Any year now though.

Skype doesn't get along with my graphics drivers, On my corp maintained windows desktop it will sometimes peg the CPU/GPU and display garbage on screen until it overheats and hard resets.

I guess Windows just isn't ready for the desktop.

Not an issue with Linux though, you just have incompetent tech maintenance.

That is a major on-the-desktop constituency, though: company standard builds. If companies struggle to do it, that reflects badly on the system as a solution. There is a difference between something being technically feasible, vs a realised outcome.

I have had a shot at building a standard desktop on top of ubuntu. My situation was easier than most in that we only had two desktops to support (a thinkpad and a dell laptop). still, making driver setup work seamlessly is hard. Imagine a company with twenty variations and an audit directive to not give root to users.

WSL has huge potential to this market. You get a linux ui and kernel api, and it complements your existing standard build strategy.

Well yes, it probably isn't such a piece of cake. I was too harsh.

Windows seems to run fine even with incompetent maintenance.

Have to agree. As a mostly linux sysadmin I absolutely can't stand Linux desktops. It seems that Linux desktop users never even look at "the other sides". Sorry, but usability is laughable. There is no consistency over time. New version? Oh boy, hang on to your helmets - there goes all your customization you had to do to make your environment tolerable for you.

I've used pre-1.0 KDE (and compiled it myself), seen Gnome pop up, tried a ton of WM's, and I try out some WM's and GUI-distro's at least once a year. Every time it comes down to: usable, but not great, and requires quite a bit of customization which I could redo for newer versions. When all you need is a terminal and a browser, it's probably fine, but I need a bit more than that to feel comfy.

The only place where Windows still somewhat matters is on corporate desktops. And this is for content consumers, or producers in very narrow silos, those generating Word documents or Excel spreadsheets. In every other aspect Linux is the superior tool.

Personally I use Arch and i3, my desktop is riced to the point that is comfortable for me. I can stand up a new desktop in 10m after a clean arch install. I can replicate my full dev environment on any linode, droplet or aws machine in less than 5m at no cost.

It amazes me that people can call themselves 'productive' using microsoft systems. Every time I land on a windows box I feel like I'm in some ancient broken world.

Elementary OS[0] is visually very nice, especially after a slight theme change[1], but the core team behind it makes quite radical changes and decisions about what the OS should be (mostly about how it should be an unmodifiable, unchangeable "OS for dummies") that is starting to push me away.

Especially when basic things like taking a screenshot with your keyboard, as well as setting up hot keys, has been broken for a year[2]. The eOS team appears to be more focused on forcing Windows 10-style OS updates that download in the background - even over metered connections - and force you to restart[3].

[0] https://elementary.io/

[1] https://wefunkster.deviantart.com/art/OSe-Light-Xtrlght-GTK-...

[2] https://elementaryos.stackexchange.com/questions/7703/unable...

[3] https://www.bountysource.com/issues/43123447-automatic-secur...

The best Linux desktop by far is ChromeOS.

Which is just basically a mix of Chrome and Android, with zero value regarding what kernel is actually being used.

Tomorrow Google could release ChromeOS using another kernel and no one would notice.

The only restriction is that the kernel needs to support the official set of NDK APIs for Android apps.

Sounds like you have not used LInux for a long time. Try Solus next time to get a fresh look at things.

Not exactly sure what desktop environment/theme or applicaition combination you were trying but I disagree.

Aesthetics is very subjective topic. But we can all agree that since Windows' Vista the focus hasn't been on eyecandy but rather functionality. Expensive visual effects are now removed and the UX is very plain, with not a lot of room for customization.

I personally use this theme:



Contains a GTK 3 theme, icons and cursors. Looks way better than Windows.

Yeah, I still find GUI applications crashing on modern distro's all the time :(

... but this works amazingly well :)

  $ flatpak install flathub com.valvesoftware.Steam

I guess you didn't get the memo on Azure being highly successful.


Azure is also superior product then AWS in any way. I wish I would use Azure instead of AWS at my job.

I think better advice would be this: You should probably not be a platform zealot of any stripe if you care about having a good career going forward.

> you should probably keep using Linux if you care about having a good career going forward.

I will happily bet beer that not only is Jess's career already better than 99% of everyone here, it will stay that way for decades.

I don't work at Microsoft, I just like that the Windows works more than I do Linux. I use Linux because that is what we release on so I guess I don't fall under "Linux Nerd"

I tried WSL a few times but for real world every day development it's just not usable at all. The file mount performance is crippling slow. A Rails app takes 30+ seconds to see changes vs nearly instant on native Linux.

If anyone is interested in running Linux on Windows in a way that's suitable for full time development then check out this screencast / blog post: https://nickjanetakis.com/blog/create-an-awesome-linux-devel...

I've been using this set up for many years.

The pros of the above method are:

- It's free

- It's as fast as native Linux

- It's actually Linux from end to end

- You get independent floating Linux windows (graphical apps work)

- You can still run your Windows apps

- Works flawlessly with dual monitors

- No need to dual boot

- Takes about 15-20 minutes to set up your first time

Kinda sad to use old VMware and old Xubuntu...

No need to be sad.

Before I moved to Windows 10 I routinely had 150+ day uptimes. The old VMWare is rock solid and runs really fast.

Having to use an older version of xubuntu does kind of stink, but I'm pretty sure if you really cared you could use 16.04, but just downgrade xfce to use 14.04's version.

It's not something I bothered with because visually I'm happy with the way things look, using custom PPAs are easy and I use Docker for various programming language runtimes and services.

Vagrant with virtualbox or hyperv seems like the better choice tbh.

I really, really wish Microsoft would open up the Pico Process APIs to third-party driver developers. Right now, WSL is the only driver allowed to install Pico Process callbacks. It would be cool to implement a Darwin layer or a Classic Xbox emulator with that tech.

The Pico Process subsystem isn't fully baked yet -- in earlier talks Microsoft mentioned that while the API itself is pretty generic but the current implementation is just hacked together to support the Linux subsystem for now.

For anyone wanting to automate using boxstarter and chocolatey without finding all the packages manually I created this GUI about a year back.

It has a search bar to search chocolatey's repository automatically.

It has search and allows you to save the GIST straight to github and then invoke installer straight from website. Uses cookies to store script on machine so you can come back to it and add/remove more.

Was a quick 2-3 hour job so it may have bugs


Correct me if I'm wrong, but WSL looks more like an attempt at stopping developers from moving to Macs in order to get a polished app environment with a Unix-like OS underneath and to keep them in the Windows ecosystem.

"a polished app environment"

If you're meaning XCode then no.

XCode is never going to draw in developers... or at least no developer I've ever talked to liked XCode.

I changed from iOS to Android development because I couldn't stand XCode anymore. Constant crashing, walled garden bullshit where I couldn't even get plugins running every time they updated, inexplicable code changes to my apps which were un-diagnosable from within xcode because they obfuscate away all layout files... It was nightmarish. I spent more time swearing at my computer than I did coding.

I'm talking about iTunes, iWork, all IDEs that count with the exception of Visual Studio, Skype, the built-in apps and even Microsoft Office if you are so inclined. I've done some development in ObjC using Xcode and didn't notice the problems you mention. Must be luck.

And one thing that others never replicated is the quality of the laptops. I've had Dell XPSs and Thinkpads and the MacBook Pro is still my favourite laptop.

Xcode 3.x was nearly perfect. The Xcode UI went straight south in 4.x with this giant-window-always-the-wrong-size-for-everything design, that also sucked Interface Builder into the same app. That meant any crashy thing in IB took down your whole project, which never used to be an issue. If they back-ported LLVM to the Xcode 3.x GUI and restored IB as a separate app, I would be quite happy.

I can't really tell if this is criticism or just stating the obvious. Software companies want you to use their software. Yes, shocking, I know.

Hard to guess the tone, but do you mean that in a negative way?

I think it's fantastic that MS are being forced by Mac to improve their damn OS. Mac being the only option for many people (although I love Linux) was a terrible situation.

I've been putting it even stronger for a while now. WSL is an attempt to get the horde of MacBook-wielding web devs to slowly migrate away from OSX. Once people notice they can get a grab-and-go Linux laptop at any BestBuy, and it's much cheaper than an equivalent MacBook, and it runs all games and other Windows apps natively... They'll start doing a lot more development on Windows boxes. Then, they might notice that Visual Studio is actually really damn nice. At that point, making their code Linux-Windows cross-platform becomes much easier and more interesting.

Congrats, Jess!

LXSS is amazing, but I had to stop using it because mounted volumes in Docker straight up don't work within it.

How don't they work? When you do a "docker run -v $PWD:/whatever <image>", "/whatever" will be blank. This occurred even when I tried to mount a directory on the FUSE mount to the Windows filesystem.

I'm guessing that given her experience in hacking container runtimes, she can probably lend a big hand towards fixing it. I'm currently using Vbox + Vagrant as a substitute, and it works well, but I'd prefer to use WSL.

Microsoft never made any change to its core strategy. There is no alternative platform to run Windows applications with official Microsoft support (you can name a couple exceptions, they are exceptions, e.g. SQL Server), there is no way for average developers to read Windows/Office source code. That is the best proof.

Windows for Linux Nerds? I run 5 Linux machines in my study room, Microsoft would be charging me thousands of $ for Windows Server licenses, I read source code of the software I am using on daily basis, Microsoft wouldn't let me do that. Every code of weeks, I hack the software I use and share the changes with others, Microsoft lawyers are not going to be happy if I choose to do that on Microsoft software.

Windows for Linux Nerds? Microsoft is not ready for that, Microsoft never had the intention to do.

Hear hear!!

I have been super impressed with WSL after using it for close to a year now. The Creators Update fixed some issues like file watching and symbolic links which had been preventing certain programs from begin usable.

I now do all my C++ and node.js development through WSL so I can still use all the Windows GUI applications (which tend to have fewer bugs and be easier to use than Linux GUI apps, in my experience). VS Code even allows you to run gdb on WSL, and interface with it on Windows, if you can get the setup right.

Stop dangling your rotten carrot! You can't impress me with these stale gimmicks. The choice of operating system is not a purely utalitarian, but also and mostly a social choice of morality and utopia.

And the choice has been made already, for freedom, not corpdom. Therefore, i'll stick with even the shittiest desktop and OS imaginable, as long as it's open for me to any change i can think of.

There is simply no going back from freedom to corpdom. It's one way only. You need to understand this.

It's hard for Windows to realistically compete with Linux as a developer environment.

GNU/Linux and userland software is made by developers for developers, and a lot of it is open source. If you are a developer, on Linux sky is the limit. Everything can be played with. On Windows that's not the case. Many areas are off-limits and you don't get to see how they work, and you cannot change them if you need to.

Then, Microsoft can sunset a project at any time, and that's final. In the open source world an orphaned project can always be forked or picked up by someone else.

> It's hard for Windows to realistically compete with Linux as a developer environment.

That's the whole point of WSL

The WSL is useful if you need Windows as a host system. That's not a universal need. Most of the software I use supports Linux.

Then there's is Wine and finally virtualization. I haven't needed the latter in years.

Only for developers that only care about writing CLI and web servers.

For those of us that care about UI/UX, IDEs with nice graphical tooling, only macOS matches Windows, specially given the developer culture for such tooling.

That is a very pessimistic view. Many IDEs support Linux.

There are tools with interface builders on Linux. GTK, Qt, Android, Mono, etc...

Yes there are, but as I mentioned the culture also matters, and the Linux culture worships CLI and window managers like xmonad, not graphical developer tools and UI/UX.

I am pretty sure that xmonad, or tiling window managers in general, while popular are not the #1 in popularity on Linux so I will have to disagree with you again. You have many alternatives more featured than xmonad and I am very sure you know many of them already.

Going forward please keep those views to yourself. There are many developers putting a lot of effort, in many cases volunteer effort, to advance Linux on the desktop... which is already far better than many people care to admit.

TBH I dug out my Surface Pro when Jess started talking up WSL... Finally got Windows Insider Preview going so that I could try it out for myself.

I spend most of my days in a text editor and a terminal, and macOS has been making even that painful sometimes. Linux was my desktop for ages before I switched to mac ~7 years ago, so it'll be nice to see what it can do now.

you no longer need Windows Insider preview for WSOL - its part of the creator's update. still has a beta tag but its available without having to use a full beta OS.

When did this change? as my home machine required me to move to insiders for WSL just on the weekend. (also the volume of spam they are sending to me now :|)

Creators update came out back in April. I think you need the Insiders Program right now to pick which Linux distro you want to install, normal way only gets you Ubuntu?

> Imagine a Linux setup where you can launch PowerPoint without a VM


Why not use a browser based presentation app like Google Slides and not deal with stupid proprietary software that won't run on anything but a windows or mac machine?

Because Google Docs suck for any kind of actual professional work, instead of playing at office.

Exactly. Using non-portable formats when there are portable alternatives is simply stupid.

Surely, because Google Docs runs on my computer without any part of that closed source behind Google virtual walls.

If your the sort of person that's going to use bash on windows then Latex+beamer is a much better option than powerpoint.

Imagine: your presentations stored in plain text, in a human readable format that you can edit in your favorite editor, manipulate with a rich library of text editing tools and even version control. Powerpoint would be a silly proposition if that existed!

Funsies aside, Latex+beamer has a learning curve and so it is not suitable for the everyday user and thus Powerpoint has its market. But for the average HN reader it doesn't make sense. Take 20 minutes to learn Latex basics and thank me later.

Yes but does not work right now with office 2016 unless it changed recently.

What's wrong with office 2002?

Shutup and take my money


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact