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.
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.
Have you heard of Wine?
Imagine if Microsoft put some of their developers on that.
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.
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.
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).
* 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.
Windows Defender will normally be active by default on Windows 10 unless you go out of your way to turn it off.
sc config WinDefend start= disabled
sc stop WinDefend
wsl-terminal works for me.
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?
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.
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.
Case in point : cannot use Git on WSL with IntelliJ, Sourcetree
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.
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 :-)
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 remember following KDevelop progress hoping that one day it could eventually match what I already had available in Borland and MS tools.
(Of course none of this applies to personal computing, where I still don't understand Windows usage beyond the need for niche software).
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.
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.
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.
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.
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.
Does the group working on Windows OS feel alienated at all?
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.
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.
For the times you need Windows, there's always VirtualBox.
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.
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.
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.
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.
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.
RHEL/Centos is probably the most common distro used.
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
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.
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.
Still, this problem shouldn't occur at all.
Writers in our company were not very fond of Libre Office.
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.
What do you mean?
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.)
1 - http://www.softmaker.com/en/softmaker-office-linux
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...
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.
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.
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?
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.
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.
Not completely what you want, but relevant: https://blogs.technet.microsoft.com/dataplatforminsider/2016...
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.
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.
Visual Studio is available on linux:
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.
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.
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.
I know I can do basic commands (even building images with `docker -H 127.0.0.1 build -t foo .` works), but I failed to find any way to share WSL filesystem with the containers (`docker run -v $(pwd):/foo ...`).
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.
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.
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.
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.
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.
She really had me with the "imagine PowerPoint in Linux without a VM!".
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!?
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.
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.
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.
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, 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.
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.
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.
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.
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
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.
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.
Even someone recommended an Electron alternative, on HN! the #1 Electron hater community.
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.
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
> 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.
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.
Yeah, because it's an UNIX-like.
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?
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.
> "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.
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?
And please don't quote that 5 years old statistic of a one time contribution.
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.
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.
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.
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.
Honestly I think this attitude is much more common on HN than reddit
Post by woman.
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.
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.
More than, say, msys2? I haven't had any compatibility problems with it.
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.
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.
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.
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.
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.
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).
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.
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 
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.
95% of devs are on Windows.
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.
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)
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
I can relate to the quote and I use Linux.
I think the linux desktop user experience has improved exponentially over the last few years, you should give it another shot.
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.
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.
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.
Also, touch screens <3
Or many street bazaars around the globe.
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 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.
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.
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...
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.
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.
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 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. :)
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.
Of all possible complaints about Linux, you've picked this one? Come on.
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.
I guess Windows just isn't ready for the desktop.
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.
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.
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.
Especially when basic things like taking a screenshot with your keyboard, as well as setting up hot keys, has been broken for a year. 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.
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.
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.
... but this works amazingly well :)
$ flatpak install flathub com.valvesoftware.Steam
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.
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
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.
It has a search bar to search chocolatey's repository automatically.
Was a quick 2-3 hour job so it may have bugs
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.
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.
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.
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.
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.
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.
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.
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.
That's the whole point of WSL
Then there's is Wine and finally virtualization. I haven't needed the latter in years.
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.
There are tools with interface builders on Linux. GTK, Qt, Android, Mono, etc...
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.
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.
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.