This removes one of the major reasons to use a Mac for Linux development. Many people used Macs because they had nice hardware that just works, as well as a Unix (but not Linux) environment. Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development. Plus, you can also play games :)
As far as I can tell, one still have to run an Xserver on Windows if you want to do graphics (set display to localhost:0) and so no acceleration, hoping that changes at some point.
That's true but almost all the draw of Linux for developers is the non-graphical tools. GUI software for Windows tends to be much better, especially for stuff that you'd need acceleration for.
> Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development.
Not to detract from this very nice development, but it's still the case on many laptops that installing Linux tends to extend battery life substantially, not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
But if you need both Windows and Linux readily available, and spend a lot of time in both rather than favoring one over the other, this certainly offers a compelling alternative to a Windows VM.
Can confirm. Also, Windows actually saves batteries compared to a vanilla Ubuntu install. I don't know why but Linux GUI is extremely wasteful for some reason.
I will say it's mostly due to the amount of effort creating power-saving features in OSX that are not present in other OS's. It's quite interesting all the little things they do to prolong the battery.
I have Fedora 25 with TLP, it operates fine, there is nothing proprietary blocking it (but you do need TLP, install it asap to get any batt life out of Linux) on my macbook and I can almost reach 5 1/2 hours web browsing (Opera with battery saver). On OSX I can easily obtain 9 hours doing similar work. This is all on a 6 year old battery too.
> Not to detract from this very nice development, but it's still the case on many laptops that installing Linux tends to extend battery life substantially, not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
I have never heard this and in fact have only ever heard the opposite.
The open source AMD graphics drivers in Mesa are considerably more stable than the equivalent Windows drivers and the proprietary Linux drivers (though those are getting a bit better). In many cases the open source drivers outperform the proprietary ones. The Mesa Intel drivers have been rock solid since about 2010, I've not had an issue with the stable release of Mesa on standard Intel hardware since then. I've run an average of two models from each generation of Intel hardware since 2010 except Broadwell, and not encountered an issue.
Switchable graphics can be a bit of a pain, but with a bit of fiddling around with DRIRC and a PRIME-capable GPU driver it can be had without too much pain.
> Maybe for OpenGL. But DirectX 11 is nearly always faster (e.g. bytecode shaders) and only available on Windows.
This statement utterly untrue, there is nothing especially performant about D3D11. FYI, "bytecode shaders" have nothing to do with shader performance. They have some impact on initial parse time, but little else.
> FYI, "bytecode shaders" have nothing to do with shader performance. They have some impact on initial parse time, but little else.
You're right, it shouldn't make that much of a difference, but I think driver/compiler optimizations for HLSL (and lack thereof for GLSL) is one of the reasons, games are faster on Windows using the AMD driver than Mesa. It also plays a role that most ports are using HLSL to GLSL translators.
There definitely are cases where the open source driver outperforms the proprietary Linux driver. But I haven't seen a case where a game runs faster on Linux than on Windows with AMD hardware.
The comparison was 270 FPS (Windows D3D) vs 315 FPS (Linux OpenGL). At those high framerates I don't think that any performance boost is relevant anymore. Furthermore Left 4 Dead is using D3D 9 IIRC, so pretty outdated.
I have Linux running on a Lenovo T420s. Intel everything - chipset, graphics, etc. - stuff that should be supported in Linux great. If I run Chromium, it hard locks my screen with visual artifacts unless I disable GPU acceleration. No problems running in Windows at all (including the normal composited desktop environment, Chrome, etc.). I find that even with proven non-bleeding-edge hardware with known drivers, battery life and graphics stability are far worse.
Same problem with the T420, T420 and T440 I have had. The T440 I couldn't get more than 3 hours out of it compared to 7-8 on windows. They had the PM set up properly. Powertop shows loads of things constantly waking the devices up.
> not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
I hope you're not thinking about Intel integrated graphics :-). I had a terrible experience with stock drivers in Ubuntu LTS (both current and previous) so much that I had to install oibaf PPA to be able to play the few 2D indie games that I care of.
> Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development.
I know I'm being "that guy", but I've never personally had a problem with Linux's power management or graphics. And I really like my tiling window managers and free software stack. I understand that some people have, but usually it's the fault of proprietary drivers and not Linux (and I don't purchase machines that require proprietary drivers to use).
But again, whatever floats your boat. I've personally started playing OpenMW (a free software implementation of "The Elder Scrolls III: Morrowind" engine) which works excellently under GNU/Linux.
I second that, I've never had a PM or major GPU driver issue on Linux. I've always found that battery life improved from Windows to Linux on a given machine. Granted, you could call this unfair since I run a lot fewer daemons on my Linux boxes than run by default on Windows, but I'd call that a strength.
SATA Active Link Power Management is or was broken on my laptop. Too bad, it is required for the CPU package as a whole to reach the lowest power state and dramatically improved battery life.
It also ate a ton of files on day 3 or 4 of me using it (not even files that were open, it just randomly corrupted ~5-10% of the drive). Probably wont be checking to see if that is fixed anytime soon.
I didn't know MW has an implementation. I'm gonna try this and I'm gonna follow this and I'm gonna play this all day long. Morrowind really needed some reimplementation of graphics and let's face it MGE was slow and that too in a system that runs skyrim just fine. Hope it gets completed successfully. Thanks to you I know about it.
It is superior in many ways to the original MW engine, and they recently implemented distant terrain[1] in a way that makes it efficient.
From people who've played the original (I haven't) the load times are infinitely faster and the graphics are significantly improved. The module system is also far better than the original (and most mods are compatible with OpenMW). At the moment, all major features have been implemented and they are working on bug fixes in preparation for a 1.0 release (which is going to be the "fully compatible" release) after which they plan to add a wide series of improvements to the functionality engine.
They also have created a game editor that can be used to create entirely new games as well.
It's an amazing project from both a technical perspective as well as in terms of longevity (it's been in development for almost a decade).
As someone who just switched from windows to Mac, when you pick windows you also gain periodic show stopping problems, kafkaesque hoops to jump through randomly in the middle of your workflow, a slightly terrible security architecture and the ability for family and friends to see you using windows and are clearly an expert and then ask you to fix their crapware ridden death boxes. At least you gain thousands of google results for every problem coming your way.
Incidentally yesterday I ran out of disk space on my old windows laptop. There was a windows problem reporting process that ate 100MiB once an hour. Eventually over the space of weeks you lose your entire disk then spend an hour googling the numerous incantations that need to be applied to fix this most of which don't work. Random shit like this happens at least once a week or so and just ruins an afternoon.
Also don't think that the built in ubuntu or windows shell stuff actually works properly. There are many horrible bugs. Nothing on windows works properly for months if not years. Even with creators update, I used putty and virtual box because it was that bad.
Also you're going to miss things like keychain in OSX.
Edit: also my old T440 which I was running windows on, Lenovo couldn't ship working drivers for creators update and the moment that got rolled out TSHTF. This resulted in the SATA controller hanging for 30 seconds every five minutes and locking the machine up. I wasted six hours trying to find a combination of drivers and PM config that actually didn't do this. That's a whole day of work down the pan.
There is just ZERO quality on the platform and I'm done with it.
No it's really not. I've been using windows since 1992 across tens of vendors and it's the same story. It has literally never changed. I find Lenovo to be the least crap.
I was 50/50 Linux/windows dev. Windows dev is dead for me now (my hair is growing back). Tasks are now python, Postgres, ansible, vim, ssh and a browser and not a lot else. I've worked with Linux for about 18 years as well for ref.
So, no any special needs. It's quite strange to see such judgements from a software engineer about a tool that serves many other people very well (I'm 80/20 on Windows/Linux for more than 20 years and have very different experience, for example). Probably, it's the matter of personal preferences, not of the quality?
Well, at least since you mentioned Lenovo, this vendor does have problems with firmware on its devices. On the other side, neither of my colleagues had ever problems with their working environment on Windows (I've developed a lot of very different products on Java, which indeed requires a lot of automation and containerization these days, so it's an multi-OS environment by its nature). There's something wrong either with how you use it or which hardware do you choose. Probably, this OS is simply not for your style of work, just like Linux is not for others. I don't think it's the OS fault.
I would disagree, having been a Linux zealot between 1995 and 2004, nowadays doing mostly Windows, Web and Android development. Just keep a GNU/Linux netbook around for traveling.
The only machines I had issues where the ones managed by local IT, with their strange images.
The ones managed and installed by me seldom had problems.
Switched our team off Microsoft platforms entirely.
All developers are on macOS now, targeting JVM on Linux.
Refreshing to be able to participate in a real ecosystem, instead of having to write the .NET version/binding for every damn useful piece of OSS out there.
Plus, working for an 80,000 employee company, IT can't screw up macOS as much as they did their Windows image, which does wonders for productivity.
The last straw was a McAfee update on Windows which causes every executable launched to take 45 seconds the first time it launches. Last time I checked, IT still hadn't figured out how to fix it for real, after months, and resorted to exclusions to "fix" it.
Think how many times a developer builds an executable and needs to launch it....yeah.
I know, I need to quit, but they pay very, very well and it's a pretty low stress job that's really helping me hammer my mortgage.
With proper tooling like I have now, it's a pretty good position that leaves a lot in the tank for learning and experimentation.
This is normal corporate IT on windows. The biggest battle I have is with operations teams who require that you don't have administrative privileges on windows dev machines. This cripples development teams instantly because you just can't do that.
I tried to push the organisation I work with currently in that direction but they haven't quite got over the Stockholm syndrome of being a Microsoft certified partner yet or admit that a lot of infrastructure and platform investments were bad ones now.
I'd take low stress and good pay over most things ;)
> The biggest battle I have is with operations teams who require that you don't have administrative privileges on windows dev machines.
Fortunately I do not have this battle. But if I did, I would simply tell operations boss that unless my developers get admin access in their dev environment, they have to have staff dedicated to my team, ready 24/7/365 to serve them. Weekends, holidays, christmas - all the time, no exceptions.
> IT can't screw up macOS as much as they did their Windows image
Oh trust me they can.
How about to hang while showing login screen because AD server doesn't respond? MacOS auto reboots in such occasion.
How about screw your keychain with their scripts completely when you change you password? I need to re-login into iCloud every single time I change my password because of that.
How about hang before even getting to login screen because AD doesn't respond?
Broken file permissions and groups because of AD thing?
Unexpected CPU spike to 100% because some IT thing does something in background?
Constant notifications even OVER LOGIN SCREEN about "Your sleep time is too long" and so on.
I'm now just afraid to install updates because it'll involve reboot and next reboot IT scripts will screw up something else and I'll need to spend half a day fixing it.
I can't understand the number of people on this thread who appear to be very tech-savvy, but don't sympathise with your issues.
I've been off windows for several years, but recently needed to install Windows 10 on a machine for a family member. I ran into two utterly frustrating issues. The first was no ethernet after moving the machine to their house (after reinstalling all sorts of drivers I discovered it was due to assigned IP addresses and the fast-shutdown feature of Windows). The second was random crashes between 30mins and 1hour after boot up.
Of course, the occasional issue on linux occurs (though not really at this scale) - but what is worse is that you aren't given the tools or the means to troubleshoot them. There were at least 3 or 4 published articles about the second problem (which was due to a failing anniversary update - also difficult to troubleshoot as it doesn't show up as a process)- but none of them were actually useful for troubleshooting - they just gave '7 things you can do...', one of which was rebooting... (here's an example of one https://www.windowscentral.com/windows-10-anniversary-update... - they are useless!)
I think we need to define a new disease because we are both clearly suffering from it:
Post-Windows Traumatic Stress Disorder
Symptoms: unexpected and disproportionate rage at slightest OS attempt to override what they are doing or present them with adverts. occasional bouts of unexplained anger
Signs: weary-looking. withdraws when presented with Windows laptop.
Investigations: while undergoing windows update process, patient demonstrates strong negative emotional signs, i.e. sobbing, aggression
Treatment: if caught early, complete abstinence from windows. After several years they may start to consider trying out the latest version because it apparently forgoes the need for Windows. this is the point of relapse for most people.
if caught late (i.e. >10 years exposure), the prognosis is poor. you can try flooding therapy with Windows, complete abstinence from linux/MacOSX. eventually they may accept the subordinate position to their operating system and be able to share their happy experience of windows with their peers.
25 years windows here. I suspect it is some variety of Stockholm syndrome or the fact that several years of "problem attrition" as I call it numbs you to the fact that it isn't a routine thing facing weird issues every day. These are accepted as the norm in windows development teams.
The hilarious thing is the occasional thing I get which is "what do you mean it only too ten minutes?" because people are trained to think that certain things take at least a day and then subconsciously avoid doing them because they don't want to have to explain where that time is going.
I'm going to write a book on this one day.
As for Linux issues, the ONLY issue I've had this year so far is duplicity consuming too much RAM and crashing on a filesystem with tens of thousands of inodes used. This was a relatively easy fix as well. A two line python change. I haven't submitted it yet as a patch because they patched it upstream already when someone else fixed it. Just waiting for it to trickle down to the vendor's repos.
I do have a slightly strange angst towards Windows - I feel somewhat cheated of my time. I used to reinstall Windows every 6 months just to stop it slowing down, and unlike other OSs where I can script the reinstall/updates, it took a whole day.
To think that all that time I could have been using Ubuntu (my primary work isn't in IT, and I still use Ubuntu) - Stockholm syndrome is probably the right term, or maybe being in an abusive relationship that was steadily getting worse.
I'm probably lying if I said I haven't had a linux problem for 4 years. But nothing major actually springs to mind...
I've been building windows applications, right down from Win32/ATL/MFC/C++/DCOM and up to C#/WPF/ASP.Net for 25 years and managed teams of 80+ developers. I can drive windows in my sleep. It's not that. It's a fundamental quality issue caused by a combination of tangled complexity and framework schizophrenia.
Same here, also you can't really map NTFS to Linux filesystems (perms + max path length, have fun using Go with vendor / NodeJS), so you run into stupid issues where the only solution is to boot up a VM anyways - and then, most of the time, the VM file sharing does not support proper permissions. After dealing with that for about a month, I was pleased to hear that NVidia released drivers for 10-series GPUs for OSX, so I transformed a Haswell-E 8-core workstation into a Hackintosh and I get best of both worlds (except some USB soundcard issues, but it automatically switches to Bluetooth when it dies, so it's all fine).
Regarding notebooks, I paid the premium over Windows notebooks just to get a MBP. The quality is far superior to anything I could find and for some reason there's no equivalent of a MBP15 in terms of performance, size and portability. Everyone's stuffing the low-TDP 2-core i7s and 14 screens into their "ultrabooks" and calling it a day.
To be technically honest here, NTFS and NT don't have a max path length problem and are optionally case sensitive. This is the abstraction layer over it (win32). I'm not sure if that does trip over that issue as I didn't experience either way myself but it is a massive problem when running things like Jenkins on windows.
Disparity between the Vm and the host OS is problematic when you use things like vagrant too. Much smoother on macOS.
15" i7 MBP here as well. It's really not much bigger than my T440 and a lot thinner.
This, this on so many levels! But this issue affects VMs too, the shared folders are always mounted with strange permissions, this is propagated to Docker too so Docker XP on Windows, in any configuration is seriously affected by the NTFS, put simply, awful. For developers this is critical. I don't know, maybe a software layer on top of NTFS permission might be able to emulate Posix style perms. The difference between Windows and Unix is too big compared to OSX, that is why OSX will always be more ergonomic.
But this does not mean that it is not to be appreciated, they did an awesome job. Maybe one day things will be solved, maybe you will be able to start native windows apps from UOW, maybe even Docker will be supported, maybe permissions will be cleverly emulated ... the work they did so far clearly focuses on getting things running, the QA period will be there soon too.
I use a Clevo clone called Starlabs “Labtop”. 32GB DDR4 RAM, Core i7U, Samsung PRO 960 with HDMI, mDP, Thunderbolt 3, 2 USB 3.0, SD card reader, gigabit ethernet, additional SATA slot, etc without external adaptors QHD screen, Windows Hello-compatible cam in a 13.3", came with Ubuntu (switched to Fedora). Yours?
"There is just ZERO quality on the platform and I'm done with it."
This is clearly an exaggeration, as is "Nothing on windows works properly for months if not years.". If 'nothing' works, then how do developers like myself use Windows very successfully for creating and maintaining software? Either you've been very unlucky or made bad choices of hardware.
It's really not. I suggest you sit down over the next couple of weeks of your life and tot up the time spend on trivial issues that shouldn't exist. That Visual Studio hang or crash that kills your entire debug rig that took you an hour to get a test case up for, that windows update notification that pops up, that windows defender notification that tells you it has nothing to report, that hour wondering why outlook has suddenly stopped talking to exchange etc.
Xcode 9 is a major improvement. They rewrote the editor which is now blazing fast and introduced (and open sourced as part of LLVM!) a new refactoring engine capable of refactoring C, C++, Objective C and Swift.
Also, they are currently in the process of rewriting the build system, with a preview shipping with Xcode 9.
Windows is a mess and the 16 pages of privacy settings to disable on Windows 10 aren't great either, but if there's one OS that demands the most time troubleshooting and dealing with issues, I'd struggle to claim it isn't Linux.
As a Linux user since 2001, I would have agreed with you up until 2008-2010 when Ubuntu really started making strides. If you haven't tried Ubuntu in the past decade, you really should. Other than one motherboard with some wacky onboard NIC, I have had zero problems that took more than a casual google to solve. This is across literally dozens of installs for friends, family, neighbours, etc.
I won't do other people's installs anymore as the support adds up, such as Powerpoint presentations not opening properly in LibreOffice, but the systems just work. Most people spend their entire time in a web browser anyway, so there isn't much to go wrong.
Note that I praise Ubuntu as a desktop even though I personally use CentOS as my desktop. It is Ubuntu that brought Linux to the masses.
My experience has been quite different. I've never done an install of Unbuntu even in the last few years where everything worked out of a box, whereas Windows always has. Just as one example I did an install on a new Intel NUC about a few months ago where the wifi worked on 16.04 but not on 16.10. Soon after I installed it on a laptop where the wifi worked but not the ethernet.
I think this part of your comment is key:
> I have had zero problems that took more than a casual google to solve
The problems I have on install are (almost) always solvable in an hour or so of Googling and messing around in the terminal or in config files. That includes the two examples I gave earlier - I've got those working now. But that's an hour for us, people who do this stuff every day. A random person who isn't so good with computers and decides to try Linux really needs everything to work.
Even this:
> Most people spend their entire time in a web browser anyway, so there isn't much to go wrong.
isn't always a safe bet. I installed Ubuntu for someone who basically just wanted to check emails, write documents, and watch some on-demand TV. The on-demand TV site didn't work because it needed the HAL layer in Flash and that'd been removed entirely from Ubuntu. Luckily someone has kindly hosted a repo with the required files[1]. But a random newbie is never going to get that working. Yes, the site requiring Flash like that is a bit out of date. But it still works on Windows and Mac.
There's hundred of thousands of "testimonials" over which OS is best online. The fact is that Windows remains the best compromise between capability and cost for a lot of people.
I truly think backwards compatibility is THE reason Windows is still a thing. Linux has a non-stable kernel ABI by design, and Apple loves breaking older stuff with little to no notice.
'Nothing works' is not an exaggeration? This is purely irrational, not to mention I don't experience any of those issues you mention, nor other ones that take more than a tiny fraction of my development time (eg shutting down and rebooting while drinking coffee if updates are needed). Sorry Windows doesn't work for you, but it works well for me and my clients (and my bank account and their satisfaction levels).
I have a high-end laptop from Asus (no plastic etc) that I installed ubuntu on. It would overheat, have issues with the drivers and just simply would consume more power. It'd maybe last for an hour, while on windows same processes it would last for two and a half. No matter how many hacks I had to google for and how many hacks I tried, still nothing worked. You've wasted six hours, I've wasted a month trying to optimize my laptop to work at 50% of what it did.
I have had a Mac as well that I sold in a heartbeat, because it required an upgrade that I simply was not willing to pay for. For less than double of the amount of money it required for an upgrade I got 32GB of RAM, 512SSD and a neat i7 processor, zero plastics. Mac would also overheat and would also crash, your point? Plus the support in the region where I am located is ZERO.
No I'm definitely not going to miss the keychain as I have last pass that handles just about everything nowadays.
I also work on Python, postgres, ansible, redis (which has limited support on windows but still works). Not sure where your problem is.
So there's also the other side of the coin, plus your isolated case + opinion does not prove the "ZERO quality" statement, just like mine doesn't that's it's good.
>It would overheat, have issues with the drivers and just simply would consume more power.
This is hardly Linux's fault. ASUS just didn't bother writing (proper) drivers. I have a HP laptop that has support for RHEL, and therefor Linux distro's in general.
I only had to install TLP for power management and I get the same battery on Ubuntu as on Win10.
Asus Zenbook UX330C - Ubuntu 16.04 64bit / stock kernel / i3wm - No TLP or power tweaks or additional powertools - 88.97% remaining 8hr30mins - and that's pretty accurate.
I think you just have a bad SKU of a laptop if Linux gives you 1hr and Windows only 2.5hrs.
"This is hardly Linux's fault. <INSERT_MANUFACTURER_NAME_HERE> just didn't bother writing (proper) drivers."
The thing is, as a customer, after a certain point I just don't give a crap. Like, when I was a teenager it was super fun to spend entire days fixing esotheric problems with hardware and rebuilding the kernel to suit my needs, but nowadays I want to hit the power button and work. Linux is not that, at least not for me, I do use Mint daily on an older Dell laptop and that is 90% fine but for any "serious" development I would always use my Windows machine + VS.
When I buy a computer I specifically choose one with good linux support rather than buying a random computer and hope it works properly. I bought a Lenovo X1 Carbon, and I've had a Lenovo T430s, along with a Lenovo T61. All of them worked great.
Funny, I did the reverse migration at work (windows->mac) and I'm still having countless issues around corporate printer drivers, certificates and provisioning that no other windows or Linux machines in the same environment have. And macs are the only machines that cannot have passwords freely changed at will by the user.
Windows 10 has its share of issues but I think it has well above ZERO in quality.
Isn't it just what you're used to? I recently (2 years ago) went the other way - from Windows to macOS - and I feel the same way as you but in reverse. I'll never buy another Mac, and I can't wait to get back on Windows, but I know it's not because macOS is inherently bad. It's because I have over 20 years of Windows knowledge and despite it's flaws, I know it well and I know nothing of macOS.
There's plenty of quality on Windows, and Windows itself is a very good OS. It's just what you know, and what you're used to.
Indedentally, in over 20 years I've never encountered a show stopping problem, or kafkaesque hoops I've had to jump through. Maybe our definitions are different...
I've had the same experience as you. Both windows and mac have bugs (or the software/drivers they use) and it is by far easier (for me) to debug and fix the windows problems than diagnosing that darned pinwheel of death. By far the most annoying experience is waiting for the laptop to be responsive after opening it up. Either the screen stays dark or the mouse/keyboard do nothing or both. I've learned to just open and go get a drink or something while it does "its thing"
I've been trying for the last few days just to make a bootable osx install flash drive so I can wipe and do a clean install before selling yet I can't get the thing to boot from it no matter which keys I hold during boot or resetting the PRAM. I'm sure its something stupid I did (am doing), but I would have been long past this step if it were a windows machine.
All Macs can remotely install OSX over the internet from the boot screen so you don't need a bootable USB. To manually start up from macOS Recovery over the Internet, hold down Option-Command-R or Shift-Option-Command-R at startup.
Thank you. I thought I was losing my mind, you were the first I read that mentioned Option-Command-R, which worked. Some guys had just Option, others were Option-R.
Incidentally, there have been similar space-consuming issues on OS X [1] [2]. Granted, the second one was a third-party application (probably) misusing file versioning APIs, but it's still 200GB of disk space being used in a way that is non-obvious to the owner of the machine.
> This removes one of the major reasons to use a Mac for Linux development
I find it hard to believe many people using a Mac for Linux development, will (want|be able) to use this the same way.
Anything that needs to simulate prod-ish environments for developers, will be using a VM (and if you're not, you should be) often via Vagrant.
This also limits you specifically to Ubuntu, so it's automatically going to be invalid for a lot of things that either a) are tested/built for multiple distros anyway or b) targeted at a specific distro that isn't Ubuntu.
Edit: additionally, using a Mac means you (via VM's) run any OS (or Browser, if it's a web project) you need, to test the software.
As the article states, SUSE and Redhat will be available in a week or two. WSL should be able to support other distros or self-built Linux too, although I wouldn't know how to go about that.
It's actually pretty horrible but that's not windows' fault. It was designed for case sensitive unix systems with the appropriate ssh infrastructure and other shell tools in place which windows didn't have.
There are some powershell wrappers that make it better.
> It's actually pretty horrible but that's not windows' fault. It was designed for case sensitive unix systems with the appropriate ssh infrastructure and other shell tools in place which windows didn't have.
It certainly doesn't have a very good filesystem though. NTFS is horrible on lots of small files due to MFT contention. Even arguing with fstool for a bit doesn't improve it. Check out 50k files on Linux/OSX: 2 mins.. check out 50k files on windows ... 14 mins.
It is just that wasn't designed with that specific use case in mind.
But it was designed with file streams, user ACLs, easy integration points across office networks, extensible to virtual devices, and data safety with actual proper locking semantics in mind.
Right, so again, I haven't used it, so I'm going on what I've read, but my understanding is that Mercurial (which is Python based) is much more Windows friendly, and I actually use Mercurial more than Git.
But still, regardless of whose "fault" it is, I couldn't imagine doing dev on a windows machine, some of which is because of the vastly different environment.
Mercurial is much nicer on windows. Git could have been the same but it targeted unix likes to start with and didn't evolve into something even remotely portable for a while.
I use fossil for my own projects. I find that agreeable on all platforms.
It does and some people use it for other purposes like vim. (I do). But now I've switched to WSL for the git part after creator's update since things just work. And some version of vim and neovim also works so for now WSL is like a piece of paradise in GUI prison. But the default Bash for WSL sucks so I use mintty for WSL.(sucks less and supports good colors)
> Anything that needs to simulate prod-ish environments for developers, will be using a VM (and if you're not, you should be) often via Vagrant.
I know this not to be the case, and I disagree that it should be. I don't see why I should have to spin up a separate kernel and init just to run my application during development. I wouldn't use a Mac for it, but I've seen people develop portable software which happens to work quite well on Mac and Linux dev boxes for Linux production boxes. There's a lot to be said for debugging on your home turf.
> I don't see why I should have to spin up a separate kernel and init just to run my application during development.
So that you know it.. you know.. works in that environment?
Edit:
additionally, using a VM (and particularly using a tool like Vagrant) means that the scripts/etc to setup a working dev environment need to be done ONCE, and then any developer can work on the project, on any host environment - you can use your windows machine, I can use my Mac, Fred can use his Linux box with whatever distro he wants. It doesn't matter: we all run vagrant and a provider (usually a VM hypervisor) (doesn't even need to be the same provider - you can use HyperV, I'll use Parallels, Fred can use VirtualBox, or heck even LXC), and the application runs exactly the same in that environment, with exactly the same setup. You can destroy your machine, walk to a band new one, clone the repo, run `vagrant up` and you'll have exactly the same dev environment as me again. Even if you don't use Linux for your prod environments, this type of setup is a must if you don't want developer productivity to sink to zero every time something happens that affects their host OS (OS updates breaking libs. New hardware. New software. New OS release. Switched machines. etc)
> There's a lot to be said for debugging on your home turf.
The whole point of tools like Vagrant is to allow you to run the application inside a VM, but work on it (i.e. write/debug the code) on your host machine.
Not to diminish your point, but there are cases where running application development is very easy on a mac, and linux comes as first and subsequent stages of the CI pipeline.
> working dev environment need to be done ONCE
good point, I personally would rather integrate everything into the development platform (i.e. front end http server would be just another npm package/middleware, but not NGINX, everything gonna end up under a load balancer anyway on prod/test).
In regard to different machines/OSes, issuing everyone a mac really takes away a lot of headache for organisation, at a relatively small (compared to engineering hours) cost.
> good point, I personally would rather integrate everything into the development platform
The problem is, that restricts you to what's available for your dev platform. How many nodejs http servers do ESI sub requests, or can parse and use the same VCL file as Varnish uses on prod?
> In regard to different machines/OSes, issuing everyone a mac really takes away a lot of headache for organisation, at a relatively small (compared to engineering hours) cost.
I mean, there are benefits to standardising your work force, but I don't really see your argument here because:
a) if you take this route, and then don't use Vagrant, you have to pay each and every one of your engineers to re-setup all their projects, whenever they need to re-clone them (failed hardware, wipe & install OS update, etc).
b) unless you buy everyone the same new mac at the same time, you don't have the same environment, and it's doubtful you all even have the same OS version.
c) I've never worked in a company where everyone was happy to use the same tools/platform for dev. Forcing people to use a platform they don't like, in favour of using an open source tool that solves the problem, sounds like making things harder than they need to be
d) not all projects are run by a company, or even by the same company. Freelancers collaborating is a thing.
> I know this not to be the case, and I disagree that it should be. I don't see why I should have to spin up a separate kernel and init just to run my application during development.
Because OS X and GNU/Linux don't have the same APIs?
For what it's worth, WSL appears to have pretty terrible filesystem performance. This may not be noticeable for somebody coming from macOS, but definitely very noticeable coming from a real EXT4 or XFS Linux system.
I frankly don't understand why anyone would care to run anything but Linux on their workstation if their production deployments are Linux.
Exactly, I already choose Macs as the build time on a 15” MacBook Pro from 2015 is half that of a 2016 XPS 15” running Windows 10. It’s twice again if you use WSL on the Dell. Fedora natively on the Dell gets a lot closer to the Mac
There always was Docker or MSYS2, so if someone really wanted to, he could already use Windows for his Linux developments. There are some limitations, yes, but WSL also comes with it own set of problems.
I once started with DOS, moved to windows, linux (various distro's), now already for a few years on osx.
Windows doesn't even come close to the reliability and comfort of my macbook-pro. I was always reluctant to move to osx, but I have to admit, this is simply the very best and most reliable machine I've ever had! It never crashed once, while I push it to it's limits every day!
>> This removes one of the major reasons to use a Mac for Linux development
If I wanted Ubuntu, I would have it on my MacBook (dual boot or replacement). I don't want Ubuntu. I want OS X. Apple hardware is great for development, but the real reason I am here is for the operating system and software. So no, Windows+Ubuntu does nothing to replace a MacBook or iMac with OS X.
Linux becoming the subject of a flamewar between mac-its and win-its. That's hilarious, from the perspective of a old-time Linux evangelist.
Can I conclude that "we won" ? \o/
W/r/t the OP, I have trouble thinking that the Linux Subsystem is as full a solution as it's made out to be, but on-topic discussion isn't not what comments thread brawls are for!
I'm consistently amazed that the response is always that "Windows sucks" even as it's gotten better than the 95/XP/Vista experience. It's 2017, .NET runs on Linux now and VS runs on macOS, can't we all just get along? Of course, that sentiment exists for good reason even as Microsoft improves its product offerings. Every stable Windows install is just one third-party enterprise shitware deployment from automating BSOD reboots.
Tooling aside--VS is great if you add "finally" and "for some tasks" and if Powershell ever reaches a finished state that'd be good, but I still don't use either--regardless of how slap-dash and inconsistent Windows (lol X11) can be, the part of Windows that sucks the most is working at companies that require its use. If you haven't worked somewhere where people aspire to be "Sharepoint Administrators", where people "fix" prod data in Access and where >25% of your CPU cycles go to black-box antivirus vendor apps that had unpatched CVEs discovered in the past month, you really should so you can remember why you left.
Personal experience : Windows becomes sluggish over time (XP, 7, 8, 10 tried all of them). There could be myriad of reasons e.g. "smart" services, too many programs in autostart. I've been a power user and try to disable such things pro-actively but it's not comparable to a fresh install. Whereas with Ubuntu, it says near fresh even after years of use. Again, this is personal experience. YMMV.
So, I cannot imagine using Windows as my primary machine. Not sure about Mac, hopefully it's good. Linux is fine so far as my primary desktop / server.
That said, this news is quite exciting for both corporate & personal machines and I hope to see it progress.
For me one very important aspect of Linux is that the OS is decoupled from any kind of "consumer experience". In other words nothing in the OS is ever asking me:
Who I am
For Payment Information
Would I like to see an Ad
Do I need additional products or services
So I appreciate that this is handy for some people, but to me it's like avocado ice-cream. A bad idea that tastes like crap.
I think he is referring to the experience of using Windows 10 not WSL - they really do push for you to register/sign-in to an online account just to install creators update - even going so far as placing opt-outs in funny positions on the screen so it isn't obvious that is a possibility. Why does the start menu contain software that isn't installed and adverts? Why do you need an account to download free software from the store?
There's certainly a line of argument that says you can have all the linux goodness without all of that.
I have been in my day a very heavy user of Windows. What I object to on both Windows and Mac is the whole "store" experience. When my personal computer asks me for a credit card, I find this to be a profoundly uncomfortable experience - whether that's rational or not is a separate question.
So that's why to me it's like Avocado Ice Cream: a choice many people are free to make and enjoy....like the maniacs they are.
The only time your mac ask for your credit card information is when you are trying to pay something with your Apple account and you don't already have it.
If you don't want to be uncomfortable then simply don't try to pay for something with your Apple account.
Not wholly true. My mac ecosystem is currently blocking the download of a free app until I verify my CC information (which consists of entering the CCV for the hundredth time, but that's a separate rant).
Defiantly not totally true, I have multiple accounts on the mac store and I've never once been asked for a credit card, I download free apps via the store at will.
If that bothers you, you can always just download the app from the dev's website and not bother with the store completely.
What probably happened is that you have an existing expired CC on your account, so just remove it and continue on...
What is actually happening is my Apple account gets locked out about once a week (completely outside of my control), so they want me to verify everything again, even to make "free" purchases. A real PITA.
> you can always just download the app from the dev's website and not bother with the store completely
This makes a number of assumptions - namely that the developer has made the app available via their website (which is not common if they use in-app purchases).
Apple required/asked for Credit Card from me to upgrade a Desktop to (I think) Mavericks. It was an old computer that an employee of mine used to use. I logged in, had a look, saw an available upgrade and clicked to install it and - boom - please can we have your CC.
It depends what store you are connected to, I think. Haven't had the experience on the Mac, but on the iPhone, it let me download things freely on the US store but required I provide a credit card before it let me download free stuff from another store.
I'll never understand why so-called "hackers" will defend Microsoft and their products when Microsoft participated in the NSA PRISM program in secret.
This was a program most of congress didn't even know about, but execs at MS knew. They were knowingly violating your right to privacy and knew the government was doing it. Microsoft are bad guys. I won't even go into what all they did in the 90's under Bill Gates (https://archive.fo/CJ4PV).
Not only that, but Windows is a crap OS. Anytime anyone defends Windows it always comes down to program compatibility and not OS quality. Linux for me is more stable, performant, doesn't slow down after a few months of use, has better choice in file system, has actual package management, doesn't force me to reboot for updates, doesn't take 8 hours to install .NET framework after rebooting preventing me from doing work, has great container technology, the list could just go on.
Windows isn't a good OS, it just has games and office and a few "professional" programs that most "hackers" don't ever touch. It's filesystem is crap, it's update policy is crap and should have been fixed millennia ago, svchost is always a problem, font rendering is still worse then any other OS, ads in the os, spyware in the OS, closed source so you can't even really hack on it, etc. But it's got games so that makes it the best OS for software development? Any one who thinks this has never given Linux a serious shot. After programing and setting up development environments with proper package management and having a sane command line, using Windows for development, especially in multiple languages is a huge chore that usually involves lots of breakage over time. On Linux things feel much more cohesive.
Even Microsoft agrees that Linux is better for developers, seeing as they implemented a Linux sub-system right into their OS. They've admitted defeat. They aren't even going to try to fix windows. Microsoft doesn't even care about Windows. People on HN care more about Windows than MS does.
Even clicked the linked articles and never came across a satisfying answer to the question: why? And I mean practical use cases where one would pick WSL over Linux. Once bitten twice shy, I would not hold against them if people were to be skeptical when MS decides to embrace competing products.
I have a desktop at home. I like things to just work (which in my experience they do better on Windows than Linux) and I like to play games (which aren't available on Linux, and I don't feel like messing with Wine).
I also like to do some development and am most comfortable doing that in a Linux environment. So far WSL works great for all my development.
I find WSL to be better integrated / less jarring than a Linux VM or dual booting. All the GUI apps I use, I run on Windows. The Linux environment I care about is all terminal-based.
My only complaint is the state of terminal emulators. I use wsl-tty but it doesn't do a very good job of emulating xterm/gnome-terminal.
I never quite get developers that don't use a system most similar with they deployment target... If I develop web apps intended to run on -nix, I use Linux, if I develop Windows stuff, I use Windows etc.
It creates a huge understanding gap that slows you down and makes you miss so many shortcuts...
Windows, Macos, Linux are all good enough to get shit done these days... so pick whichever suits current needs best. (I reboot to different OS depending on project since this also helps me avoid my dangerous tendency for multitasking... and productivity/office tools are all web apps for me so I can use them anywhere, including phone and tablet).
So, someone wrote this reply and it got downvoted to death or they're hellbanned or something, I want to reply to it anyway.
They said:
not possible due to company policies. you wouldn't be able to connect to our network with Linux desktop anyway. welcome to corporate world
The responder reveals themselves to be an "inside the box" thinker. You could shrink your windows partition, install Linux, boot Linux natively, boot the existing Windows partition as a VM in VirtualBox, assign your physical NIC to the Windows VM, and use the Windows VM as a gateway to the network.
Being able to do something doesn't mean you are able to do it. Good luck with that setup if you are working in finance and something fucks up or there's an audit.
> Good luck with that setup if you are working in finance and something fucks up or there's an audit.
...don't most companies have a clear separation between (1) software engineers, whose job is pushing out code to cloud/servers/other-users (and who nobody should care what they use to develop that code that they push out), and (2) software users, who actually use the apps to push money/data around?!
If you're working in finance you're either in group (1) where you can use mostly anything compatible with security policies, or in group (2) where you can use ONLY what's whitelisted. If you're the rare snowflake sitting in both groups at once, then you just use 2 different separate computers.
And auditing only touches group (2) because they are the only ones handling money and real data, unless you're in a criminal case or something, where auditing would be done by computer security forensic experts anyway, who's by able to handle auditing the "exotic" setups of group (1).
And if somebody is auditing the tech side, they would be looking at git repositories, ci servers, etc. ...not the places where code is pushed from.
maybe running the one app that's special in a VM instead of doing it the other way around...
the reverse only sometimes makes sense when that app is Mac app because there can be too much pain to do it otherwise... hence I understand some Mac-loving devs.
I went with the VM route. It wasn't the best, but it definitely makes it bearable. VirtualBox isn't good for graphical desktop, and VMWare has it fair share of problems. Wanted to try Hyper-V but seems troublesome to get started.
PSA: filesystem performance in WSL isn't great, but it's absolutely fantastic under windows' hyperv hypervisor.
As a dev env I run CentOS on hyperv and putty into it, and map the drive with dokan+winsshfs, and it's just as performant as Linux/Mac on the same hardware
It's the 5th result for me (when searching Ubuntu), after a Linux Cheat Sheet, some PasteBin program and WepUpd8 (whatever that may be), then when I click it, the first line says: "This title is powered by great new feature of the windows insider program, please join at..."... Now should I, do I need to do that? The Get button is greyed out, but no indication why (probably because me company hasn't approved the anniversary update yet). What a crappy experience.
I just don't care anymore - I keep windows on VM it's way easier (eg. WSL doesn't support docker). I don't use any other Windows app except: VS (from time to time) and Word. VirtualBox is more than enough for this (my host linux desktop is beefy machine though)
I have a Linux laptop and a windows laptop. I bought the windows laptop for games and to hobby in game development , blender and unreal engine but I can't stand windows even for those basic purposes the popups for updates and other "do you want to set this setting now" when I just quickly want to open a browser and google something drive me nuts. Put notifications in the toolbar in the right with some annoying icon and leave me alone. I know what Linux is doing all the time and if not it's easy to look up but windows Microsoft magic makes me feel like I need tons of more security apps than I would like to have running. I need a windows lite.
Microsoft has one problem - it struggles with it being irrelevant.
Years after years of shaming from angry penguins did their job. Now Linux is cool and Win is not. Well, Mac is now supposed to be even cooler.
Windows can't regain even a second place as a development platform unless, ... , it stops being windows. The negative connotation and "uncoolness," just sticks to anything that remotely touches Microsoft. Unless they can do something like a total market and product production approach U-turn as a company, they can't change their trajectory into the dustbin of history.
Well that, and it offered a off the shelf unix with support down the road (or in the university library sometimes).
Best i can tell though the unix parts are growing more and mroe stale compared to both the BSDs and GNU (many seems to resort to installing the latter via third party tools).
I think there is a some truth to software being hype driven and MS being uncool. Even when discussing new MS ~since Nadella, the fact you have to add that modifier makes it come off as forced.
However MS did everything to make people angry itself. Basically taking control of their PC, forcefully upgrading to Win10, pushing whatever updates they deem necessary, opting in to telemetry and making it (almost?) impossible to disable it, are all things Windows users experienced first hand.
I would not short MSFT just yet, but would not be surprised if your last prediction would come true.
Doesn't this break every policy the app store has about what programs can and can't do? This has full system access and every other app is constraint to the file dialog to get write permissions.
I thought it had "full win32" support, ie, you can run win32 apps but they have to be modified. It's clear as mud though, MS says one thing but their windows store migration guide says another. The existence of the migration guide is rather telling though.
Desktop Bridge (Centennial) apps are modified to use the same appx packaging and installer format used by UWP apps. Unlike true UWAs they run with user privileges, not inside an app container, and so they have the same filesystem access as the user.
They can be distributed through the store but the onboarding process is much more arduous than with true UWAs (for which the Store acceptance process is largely automated since they're relying on the app container for security). AIUI to submit an unsandboxed app they expect you to already be an established developer and submit a request, wait for them to do a bunch of manual investigation of who you are and get back to you, etc.
Very excited! Been using the WSL for a bit now to do tensorflow and python stuff. Just a bit of tweaking to get it all to work (less than an hour), and I get to dual boot less frequently now.
Why not installing tensorflow on Windows directly? The WSL does not currently support accessing hardware like GPU so there is no benefit of using tensorflow on WSL.
I am not too familiar with developing on windows directly. Don't feel like learning all the tools when I am already so comfortable in Unix like environments.
No, everything that is free can be downloaded without account. It's actually the only platform I'm familiar with (android, iOS, MacOS) that allow users to do so. Really convenient for computers that we install at costumer site.
Well i'll be damned. When i looked into this a while back i had to register (used an old hotmail account i have sitting around for when i have to interact with MS) before getting anything done.
Responding to myself here to document a few things.
Seems that MS distinguishes between a desktop/laptop install and a tablet install.
I have a cheap 8" x86 tablet i picked up, and there i have to log in to grab even free apps. But if i use my laptop, i can grab free apps without logging in.
how are file endings handled with WSL? last time I tried using git & sublime text on Windows with some version of cygwin it would checkout a repo with windows file endings, which broke all the bash scripts. if it uses POSIX file endings, how about opening the files with windows applications like VS?
Edit: Also, does the windows terminal now have some sane colour scheme? I could never make it work to not show me some completely unreadable colors, like dark blue text on black ground or light yellow on white.
WSL doesn't change the line endings, so you'll want to make sure that if you use Git for Windows along with it, you set it up to use Unix line endings. Most decent editors (including VS and VSCode) can handle LFs just fine. The most annoying gap is Notepad.
We are definitely aware of the problems with the terrible color scheme. I don't remember right now if we have done anything about it quite yet... but it should be coming. In the meantime you can adjust the colors manually.
I always configure git and all editors on Windows to use LF line endings. It is so annoying that so many applications use CRLF endings by default, I never understood reason for that, I'm always using LF and have no issues.
Is this different from the linux subsystem microsoft already supports? Which is nice, and would,be worthwhile if i had enough motivation to use windows gui programs, but is limited given that you have to jump through an extra hoop to run linux gui programs, and cant even access your linux partitions from it
That's because Dave Cutler (of DEC VMS fame) specifically designed the NT kernel to make it easy to add new ABIs. NT originally supported running Win32, OS/2, and POSIX executables. Now apparently they added Linux executables.
While Windows is in a good place right now, its not great.
I have been a Windows guy for a long time but for the past couple of years I have been waiting for the day when I can finally ditch it and move over to a pure nix platform.
I want to do this because I understand </i>nix, specifically have worked with Debian for a long time so I am aware of how good the base architecture of Unix-Like OSes are - its that good because it was well thought out from the early days.
Being a .NET developer I am literally waiting for the moment when I can unshackle myself from Windows 10.
Windows 10 is good, its about as good as we will get with the current bloated architecture and while I suspect the direction the OS will take is to become a VMlike app on a version of "windows-is-linux-not-bash" offering from Microsoft that day is a long way off.
Its all the little things that destroy productivity and become major time sinks. Individually we could say they are related to whatever product is causing them but collectively they can seriously eff up your professional working day.
MacBook's are great, hardware is where Apple really excels and no one can take away the great productivity to be had on the operating system which is based on the awesome BSD but the buy-in is ridiculously expensive.
As someone said pound-for-pound we can get better offerings from other vendors which will soften the shitty experience on Windows however what you get with Apple is quality and you can confidently state that you will get a good experience (provided you get good enough Apple hardware).
Here is where the problem is, the buy-in is expensive and then you are hurt even more when you realise you need to upgrade to get a better experience later down the line.
Conversely we can argue that because the BSD-like OS requires less resources it operates much better for less hardware.
I really do hope Windows becomes an "experience" on some BSD/Unix like OS that would open up a world of possibilities.
This removes one of the major reasons to use a Mac for Linux development. Many people used Macs because they had nice hardware that just works, as well as a Unix (but not Linux) environment. Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development. Plus, you can also play games :)
As far as I can tell, one still have to run an Xserver on Windows if you want to do graphics (set display to localhost:0) and so no acceleration, hoping that changes at some point.
That's true but almost all the draw of Linux for developers is the non-graphical tools. GUI software for Windows tends to be much better, especially for stuff that you'd need acceleration for.
> Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development.
Not to detract from this very nice development, but it's still the case on many laptops that installing Linux tends to extend battery life substantially, not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
But if you need both Windows and Linux readily available, and spend a lot of time in both rather than favoring one over the other, this certainly offers a compelling alternative to a Windows VM.
I installed Linux on my company Mac and it feels like my battery charge lasts less long
Can confirm. Also, Windows actually saves batteries compared to a vanilla Ubuntu install. I don't know why but Linux GUI is extremely wasteful for some reason.
It's not the GUI, power management tools in Linux are somewhat behind the curve. Or so I'm told anyway
Linux on mac will always have shorter battery live. That's mostly because of Apple proprietary code required for power management.
I will say it's mostly due to the amount of effort creating power-saving features in OSX that are not present in other OS's. It's quite interesting all the little things they do to prolong the battery.
I have Fedora 25 with TLP, it operates fine, there is nothing proprietary blocking it (but you do need TLP, install it asap to get any batt life out of Linux) on my macbook and I can almost reach 5 1/2 hours web browsing (Opera with battery saver). On OSX I can easily obtain 9 hours doing similar work. This is all on a 6 year old battery too.
> Not to detract from this very nice development, but it's still the case on many laptops that installing Linux tends to extend battery life substantially, not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
I have never heard this and in fact have only ever heard the opposite.
The open source AMD graphics drivers in Mesa are considerably more stable than the equivalent Windows drivers and the proprietary Linux drivers (though those are getting a bit better). In many cases the open source drivers outperform the proprietary ones. The Mesa Intel drivers have been rock solid since about 2010, I've not had an issue with the stable release of Mesa on standard Intel hardware since then. I've run an average of two models from each generation of Intel hardware since 2010 except Broadwell, and not encountered an issue.
Switchable graphics can be a bit of a pain, but with a bit of fiddling around with DRIRC and a PRIME-capable GPU driver it can be had without too much pain.
> The open source AMD graphics drivers in Mesa are considerably more stable than the equivalent Windows drivers
What?? Not in my experience! Windows can even recover from graphic driver crashes.
> In many cases the open source drivers outperform the proprietary ones.
Maybe for OpenGL. But DirectX 11 is nearly always faster (e.g. bytecode shaders) and only available on Windows.
> Maybe for OpenGL. But DirectX 11 is nearly always faster (e.g. bytecode shaders) and only available on Windows.
This statement utterly untrue, there is nothing especially performant about D3D11. FYI, "bytecode shaders" have nothing to do with shader performance. They have some impact on initial parse time, but little else.
> there is nothing especially performant about D3D11.
Not in D3D11 itself, but due to it being the prevalent API, drivers are optimized for it. See https://medium.com/layerth/benchmarks-dota-2-streaming-feat-... for example.
> FYI, "bytecode shaders" have nothing to do with shader performance. They have some impact on initial parse time, but little else.
You're right, it shouldn't make that much of a difference, but I think driver/compiler optimizations for HLSL (and lack thereof for GLSL) is one of the reasons, games are faster on Windows using the AMD driver than Mesa. It also plays a role that most ports are using HLSL to GLSL translators.
There definitely are cases where the open source driver outperforms the proprietary Linux driver. But I haven't seen a case where a game runs faster on Linux than on Windows with AMD hardware.
IIRC L4D does. Valve wrote a blog post about it
The comparison was 270 FPS (Windows D3D) vs 315 FPS (Linux OpenGL). At those high framerates I don't think that any performance boost is relevant anymore. Furthermore Left 4 Dead is using D3D 9 IIRC, so pretty outdated.
http://blogs.valvesoftware.com/linux/faster-zombies/
That's a massive cherry pick right there. People who, you know, buy GPUs to play games, run windows because the experience is _always_ better.
Laptop's with switchable gpu seem to be challenging to get to work as designed wherein the integrated gpu is the only one used much of the time.
You probably don't use Linux.
That's a weird assumption to make but I use Linux for both my work and personal laptop as well as my work desktop.
I have Linux running on a Lenovo T420s. Intel everything - chipset, graphics, etc. - stuff that should be supported in Linux great. If I run Chromium, it hard locks my screen with visual artifacts unless I disable GPU acceleration. No problems running in Windows at all (including the normal composited desktop environment, Chrome, etc.). I find that even with proven non-bleeding-edge hardware with known drivers, battery life and graphics stability are far worse.
Same problem with the T420, T420 and T440 I have had. The T440 I couldn't get more than 3 hours out of it compared to 7-8 on windows. They had the PM set up properly. Powertop shows loads of things constantly waking the devices up.
Have you tried TLP? It was originally written specifically with Thinkpads in mind, but can be used on any laptop now: http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-man...
Yeah I burned hours on powertop and TLP.
Lenovo T420S has an Nvidia GPU from what I can see, it's probably trying to use that but there's some issue getting nouveau's acceleration working.
And battery life on thinkpads often needs tinkering, either through kernel parameters or tp_smapi if supported.
Not my experience, actually rather the opposite especially in terms of battery life and sleep/wake issues.
> not to mention make graphics more stable (at least, given FOSS-friendly graphics hardware).
I hope you're not thinking about Intel integrated graphics :-). I had a terrible experience with stock drivers in Ubuntu LTS (both current and previous) so much that I had to install oibaf PPA to be able to play the few 2D indie games that I care of.
> Now, you can buy a Windows laptop and have Windows manage all the tricky bits like power management and graphics while having a bona fide Linux distro for development.
I know I'm being "that guy", but I've never personally had a problem with Linux's power management or graphics. And I really like my tiling window managers and free software stack. I understand that some people have, but usually it's the fault of proprietary drivers and not Linux (and I don't purchase machines that require proprietary drivers to use).
But again, whatever floats your boat. I've personally started playing OpenMW (a free software implementation of "The Elder Scrolls III: Morrowind" engine) which works excellently under GNU/Linux.
I second that, I've never had a PM or major GPU driver issue on Linux. I've always found that battery life improved from Windows to Linux on a given machine. Granted, you could call this unfair since I run a lot fewer daemons on my Linux boxes than run by default on Windows, but I'd call that a strength.
The Nvidia Optimus support doesn't work and forget Wayland.
This.
There is Bumblebee that works on Linux as a replacement for Nvidia Optimus, getting it working isn't trivial but Nvidia is to blame here not Linux.
SATA Active Link Power Management is or was broken on my laptop. Too bad, it is required for the CPU package as a whole to reach the lowest power state and dramatically improved battery life.
It also ate a ton of files on day 3 or 4 of me using it (not even files that were open, it just randomly corrupted ~5-10% of the drive). Probably wont be checking to see if that is fixed anytime soon.
OpenMW is insane. I am totally floored by entirely reverse-engineered game engines like it and OpenRCT.
I didn't know MW has an implementation. I'm gonna try this and I'm gonna follow this and I'm gonna play this all day long. Morrowind really needed some reimplementation of graphics and let's face it MGE was slow and that too in a system that runs skyrim just fine. Hope it gets completed successfully. Thanks to you I know about it.
It is superior in many ways to the original MW engine, and they recently implemented distant terrain[1] in a way that makes it efficient.
From people who've played the original (I haven't) the load times are infinitely faster and the graphics are significantly improved. The module system is also far better than the original (and most mods are compatible with OpenMW). At the moment, all major features have been implemented and they are working on bug fixes in preparation for a 1.0 release (which is going to be the "fully compatible" release) after which they plan to add a wide series of improvements to the functionality engine.
They also have created a game editor that can be used to create entirely new games as well.
It's an amazing project from both a technical perspective as well as in terms of longevity (it's been in development for almost a decade).
[1]: https://openmw.org/2017/distant-terrain/
As someone who just switched from windows to Mac, when you pick windows you also gain periodic show stopping problems, kafkaesque hoops to jump through randomly in the middle of your workflow, a slightly terrible security architecture and the ability for family and friends to see you using windows and are clearly an expert and then ask you to fix their crapware ridden death boxes. At least you gain thousands of google results for every problem coming your way.
Incidentally yesterday I ran out of disk space on my old windows laptop. There was a windows problem reporting process that ate 100MiB once an hour. Eventually over the space of weeks you lose your entire disk then spend an hour googling the numerous incantations that need to be applied to fix this most of which don't work. Random shit like this happens at least once a week or so and just ruins an afternoon.
Also don't think that the built in ubuntu or windows shell stuff actually works properly. There are many horrible bugs. Nothing on windows works properly for months if not years. Even with creators update, I used putty and virtual box because it was that bad.
Also you're going to miss things like keychain in OSX.
Edit: also my old T440 which I was running windows on, Lenovo couldn't ship working drivers for creators update and the moment that got rolled out TSHTF. This resulted in the SATA controller hanging for 30 seconds every five minutes and locking the machine up. I wasted six hours trying to find a combination of drivers and PM config that actually didn't do this. That's a whole day of work down the pan.
There is just ZERO quality on the platform and I'm done with it.
Looks like your problem was in using Lenovo, not Windows. Btw, what kinds of tasks did you do there?
No it's really not. I've been using windows since 1992 across tens of vendors and it's the same story. It has literally never changed. I find Lenovo to be the least crap.
I was 50/50 Linux/windows dev. Windows dev is dead for me now (my hair is growing back). Tasks are now python, Postgres, ansible, vim, ssh and a browser and not a lot else. I've worked with Linux for about 18 years as well for ref.
So, no any special needs. It's quite strange to see such judgements from a software engineer about a tool that serves many other people very well (I'm 80/20 on Windows/Linux for more than 20 years and have very different experience, for example). Probably, it's the matter of personal preferences, not of the quality?
It is definitely a matter of quality because I support a team with the same issues. I see the cumulative cost of quality issues daily.
Well, at least since you mentioned Lenovo, this vendor does have problems with firmware on its devices. On the other side, neither of my colleagues had ever problems with their working environment on Windows (I've developed a lot of very different products on Java, which indeed requires a lot of automation and containerization these days, so it's an multi-OS environment by its nature). There's something wrong either with how you use it or which hardware do you choose. Probably, this OS is simply not for your style of work, just like Linux is not for others. I don't think it's the OS fault.
I would disagree, having been a Linux zealot between 1995 and 2004, nowadays doing mostly Windows, Web and Android development. Just keep a GNU/Linux netbook around for traveling.
The only machines I had issues where the ones managed by local IT, with their strange images.
The ones managed and installed by me seldom had problems.
I'd say the ones I have managed have less problems but not seldom had problems :)
Switched our team off Microsoft platforms entirely.
All developers are on macOS now, targeting JVM on Linux.
Refreshing to be able to participate in a real ecosystem, instead of having to write the .NET version/binding for every damn useful piece of OSS out there.
Plus, working for an 80,000 employee company, IT can't screw up macOS as much as they did their Windows image, which does wonders for productivity.
The last straw was a McAfee update on Windows which causes every executable launched to take 45 seconds the first time it launches. Last time I checked, IT still hadn't figured out how to fix it for real, after months, and resorted to exclusions to "fix" it.
Think how many times a developer builds an executable and needs to launch it....yeah.
I know, I need to quit, but they pay very, very well and it's a pretty low stress job that's really helping me hammer my mortgage.
With proper tooling like I have now, it's a pretty good position that leaves a lot in the tank for learning and experimentation.
This is normal corporate IT on windows. The biggest battle I have is with operations teams who require that you don't have administrative privileges on windows dev machines. This cripples development teams instantly because you just can't do that.
I tried to push the organisation I work with currently in that direction but they haven't quite got over the Stockholm syndrome of being a Microsoft certified partner yet or admit that a lot of infrastructure and platform investments were bad ones now.
I'd take low stress and good pay over most things ;)
> The biggest battle I have is with operations teams who require that you don't have administrative privileges on windows dev machines.
Fortunately I do not have this battle. But if I did, I would simply tell operations boss that unless my developers get admin access in their dev environment, they have to have staff dedicated to my team, ready 24/7/365 to serve them. Weekends, holidays, christmas - all the time, no exceptions.
> IT can't screw up macOS as much as they did their Windows image
Oh trust me they can. How about to hang while showing login screen because AD server doesn't respond? MacOS auto reboots in such occasion.
How about screw your keychain with their scripts completely when you change you password? I need to re-login into iCloud every single time I change my password because of that.
How about hang before even getting to login screen because AD doesn't respond? Broken file permissions and groups because of AD thing?
Unexpected CPU spike to 100% because some IT thing does something in background?
Constant notifications even OVER LOGIN SCREEN about "Your sleep time is too long" and so on.
I'm now just afraid to install updates because it'll involve reboot and next reboot IT scripts will screw up something else and I'll need to spend half a day fixing it.
I can't understand the number of people on this thread who appear to be very tech-savvy, but don't sympathise with your issues.
I've been off windows for several years, but recently needed to install Windows 10 on a machine for a family member. I ran into two utterly frustrating issues. The first was no ethernet after moving the machine to their house (after reinstalling all sorts of drivers I discovered it was due to assigned IP addresses and the fast-shutdown feature of Windows). The second was random crashes between 30mins and 1hour after boot up.
Of course, the occasional issue on linux occurs (though not really at this scale) - but what is worse is that you aren't given the tools or the means to troubleshoot them. There were at least 3 or 4 published articles about the second problem (which was due to a failing anniversary update - also difficult to troubleshoot as it doesn't show up as a process)- but none of them were actually useful for troubleshooting - they just gave '7 things you can do...', one of which was rebooting... (here's an example of one https://www.windowscentral.com/windows-10-anniversary-update... - they are useless!)
I think we need to define a new disease because we are both clearly suffering from it:
Post-Windows Traumatic Stress Disorder
Symptoms: unexpected and disproportionate rage at slightest OS attempt to override what they are doing or present them with adverts. occasional bouts of unexplained anger
Signs: weary-looking. withdraws when presented with Windows laptop.
Investigations: while undergoing windows update process, patient demonstrates strong negative emotional signs, i.e. sobbing, aggression
Treatment: if caught early, complete abstinence from windows. After several years they may start to consider trying out the latest version because it apparently forgoes the need for Windows. this is the point of relapse for most people.
if caught late (i.e. >10 years exposure), the prognosis is poor. you can try flooding therapy with Windows, complete abstinence from linux/MacOSX. eventually they may accept the subordinate position to their operating system and be able to share their happy experience of windows with their peers.
25 years windows here. I suspect it is some variety of Stockholm syndrome or the fact that several years of "problem attrition" as I call it numbs you to the fact that it isn't a routine thing facing weird issues every day. These are accepted as the norm in windows development teams.
The hilarious thing is the occasional thing I get which is "what do you mean it only too ten minutes?" because people are trained to think that certain things take at least a day and then subconsciously avoid doing them because they don't want to have to explain where that time is going.
I'm going to write a book on this one day.
As for Linux issues, the ONLY issue I've had this year so far is duplicity consuming too much RAM and crashing on a filesystem with tens of thousands of inodes used. This was a relatively easy fix as well. A two line python change. I haven't submitted it yet as a patch because they patched it upstream already when someone else fixed it. Just waiting for it to trickle down to the vendor's repos.
Yes please do write a book on it.
I do have a slightly strange angst towards Windows - I feel somewhat cheated of my time. I used to reinstall Windows every 6 months just to stop it slowing down, and unlike other OSs where I can script the reinstall/updates, it took a whole day.
To think that all that time I could have been using Ubuntu (my primary work isn't in IT, and I still use Ubuntu) - Stockholm syndrome is probably the right term, or maybe being in an abusive relationship that was steadily getting worse.
I'm probably lying if I said I haven't had a linux problem for 4 years. But nothing major actually springs to mind...
Maybe you're just not very good at using Windows?
I don't have these issues.
I've been building windows applications, right down from Win32/ATL/MFC/C++/DCOM and up to C#/WPF/ASP.Net for 25 years and managed teams of 80+ developers. I can drive windows in my sleep. It's not that. It's a fundamental quality issue caused by a combination of tangled complexity and framework schizophrenia.
I've heard stories like that about every PC laptop manufacturer. Including Microsoft themselves with the Surface!
Somehow desktop hardware seems a lot more solid though.
Same here, also you can't really map NTFS to Linux filesystems (perms + max path length, have fun using Go with vendor / NodeJS), so you run into stupid issues where the only solution is to boot up a VM anyways - and then, most of the time, the VM file sharing does not support proper permissions. After dealing with that for about a month, I was pleased to hear that NVidia released drivers for 10-series GPUs for OSX, so I transformed a Haswell-E 8-core workstation into a Hackintosh and I get best of both worlds (except some USB soundcard issues, but it automatically switches to Bluetooth when it dies, so it's all fine).
Regarding notebooks, I paid the premium over Windows notebooks just to get a MBP. The quality is far superior to anything I could find and for some reason there's no equivalent of a MBP15 in terms of performance, size and portability. Everyone's stuffing the low-TDP 2-core i7s and 14 screens into their "ultrabooks" and calling it a day.
To be technically honest here, NTFS and NT don't have a max path length problem and are optionally case sensitive. This is the abstraction layer over it (win32). I'm not sure if that does trip over that issue as I didn't experience either way myself but it is a massive problem when running things like Jenkins on windows.
Disparity between the Vm and the host OS is problematic when you use things like vagrant too. Much smoother on macOS.
15" i7 MBP here as well. It's really not much bigger than my T440 and a lot thinner.
This, this on so many levels! But this issue affects VMs too, the shared folders are always mounted with strange permissions, this is propagated to Docker too so Docker XP on Windows, in any configuration is seriously affected by the NTFS, put simply, awful. For developers this is critical. I don't know, maybe a software layer on top of NTFS permission might be able to emulate Posix style perms. The difference between Windows and Unix is too big compared to OSX, that is why OSX will always be more ergonomic.
But this does not mean that it is not to be appreciated, they did an awesome job. Maybe one day things will be solved, maybe you will be able to start native windows apps from UOW, maybe even Docker will be supported, maybe permissions will be cleverly emulated ... the work they did so far clearly focuses on getting things running, the QA period will be there soon too.
I use a Clevo clone called Starlabs “Labtop”. 32GB DDR4 RAM, Core i7U, Samsung PRO 960 with HDMI, mDP, Thunderbolt 3, 2 USB 3.0, SD card reader, gigabit ethernet, additional SATA slot, etc without external adaptors QHD screen, Windows Hello-compatible cam in a 13.3", came with Ubuntu (switched to Fedora). Yours?
> the ability for family and friends to see you using windows and are clearly an expert and then ask you to fix their crapware ridden death boxes
Hah, thanks for the laugh, funniest thing I've seen today. So true! =)
Also just switched from Windows > Mac, don't really want to go back. Battery life, speed, ease of use, everything is just better so far.
(Razer Blade > 2016 MBP)
"There is just ZERO quality on the platform and I'm done with it."
This is clearly an exaggeration, as is "Nothing on windows works properly for months if not years.". If 'nothing' works, then how do developers like myself use Windows very successfully for creating and maintaining software? Either you've been very unlucky or made bad choices of hardware.
It's really not. I suggest you sit down over the next couple of weeks of your life and tot up the time spend on trivial issues that shouldn't exist. That Visual Studio hang or crash that kills your entire debug rig that took you an hour to get a test case up for, that windows update notification that pops up, that windows defender notification that tells you it has nothing to report, that hour wondering why outlook has suddenly stopped talking to exchange etc.
Mind you, XCode and Mail.app aren't that much better, heh. Though I agree with your overarching point.
The less said about Xcode the better ;)
Haven't had any Mail.app problems yet but I run an empty inbox.
Xcode 9 is a major improvement. They rewrote the editor which is now blazing fast and introduced (and open sourced as part of LLVM!) a new refactoring engine capable of refactoring C, C++, Objective C and Swift.
Also, they are currently in the process of rewriting the build system, with a preview shipping with Xcode 9.
Excellent. I'll play with that and see how it feels now.
Windows is a mess and the 16 pages of privacy settings to disable on Windows 10 aren't great either, but if there's one OS that demands the most time troubleshooting and dealing with issues, I'd struggle to claim it isn't Linux.
As a Linux user since 2001, I would have agreed with you up until 2008-2010 when Ubuntu really started making strides. If you haven't tried Ubuntu in the past decade, you really should. Other than one motherboard with some wacky onboard NIC, I have had zero problems that took more than a casual google to solve. This is across literally dozens of installs for friends, family, neighbours, etc.
I won't do other people's installs anymore as the support adds up, such as Powerpoint presentations not opening properly in LibreOffice, but the systems just work. Most people spend their entire time in a web browser anyway, so there isn't much to go wrong.
Note that I praise Ubuntu as a desktop even though I personally use CentOS as my desktop. It is Ubuntu that brought Linux to the masses.
My experience has been quite different. I've never done an install of Unbuntu even in the last few years where everything worked out of a box, whereas Windows always has. Just as one example I did an install on a new Intel NUC about a few months ago where the wifi worked on 16.04 but not on 16.10. Soon after I installed it on a laptop where the wifi worked but not the ethernet.
I think this part of your comment is key:
> I have had zero problems that took more than a casual google to solve
The problems I have on install are (almost) always solvable in an hour or so of Googling and messing around in the terminal or in config files. That includes the two examples I gave earlier - I've got those working now. But that's an hour for us, people who do this stuff every day. A random person who isn't so good with computers and decides to try Linux really needs everything to work.
Even this:
> Most people spend their entire time in a web browser anyway, so there isn't much to go wrong.
isn't always a safe bet. I installed Ubuntu for someone who basically just wanted to check emails, write documents, and watch some on-demand TV. The on-demand TV site didn't work because it needed the HAL layer in Flash and that'd been removed entirely from Ubuntu. Luckily someone has kindly hosted a repo with the required files[1]. But a random newbie is never going to get that working. Yes, the site requiring Flash like that is a bit out of date. But it still works on Windows and Mac.
[1] https://launchpad.net/~mjblenner/+archive/ubuntu/ppa-hal
There's hundred of thousands of "testimonials" over which OS is best online. The fact is that Windows remains the best compromise between capability and cost for a lot of people.
I truly think backwards compatibility is THE reason Windows is still a thing. Linux has a non-stable kernel ABI by design, and Apple loves breaking older stuff with little to no notice.
'Nothing works' is not an exaggeration? This is purely irrational, not to mention I don't experience any of those issues you mention, nor other ones that take more than a tiny fraction of my development time (eg shutting down and rebooting while drinking coffee if updates are needed). Sorry Windows doesn't work for you, but it works well for me and my clients (and my bank account and their satisfaction levels).
As a Mac user I agree with you on the security side, but if you think you will get away from obscure bugs and issues I have bad news for you.
No, not really.
I have a high-end laptop from Asus (no plastic etc) that I installed ubuntu on. It would overheat, have issues with the drivers and just simply would consume more power. It'd maybe last for an hour, while on windows same processes it would last for two and a half. No matter how many hacks I had to google for and how many hacks I tried, still nothing worked. You've wasted six hours, I've wasted a month trying to optimize my laptop to work at 50% of what it did.
I have had a Mac as well that I sold in a heartbeat, because it required an upgrade that I simply was not willing to pay for. For less than double of the amount of money it required for an upgrade I got 32GB of RAM, 512SSD and a neat i7 processor, zero plastics. Mac would also overheat and would also crash, your point? Plus the support in the region where I am located is ZERO.
No I'm definitely not going to miss the keychain as I have last pass that handles just about everything nowadays.
I also work on Python, postgres, ansible, redis (which has limited support on windows but still works). Not sure where your problem is.
So there's also the other side of the coin, plus your isolated case + opinion does not prove the "ZERO quality" statement, just like mine doesn't that's it's good.
>It would overheat, have issues with the drivers and just simply would consume more power.
This is hardly Linux's fault. ASUS just didn't bother writing (proper) drivers. I have a HP laptop that has support for RHEL, and therefor Linux distro's in general.
I only had to install TLP for power management and I get the same battery on Ubuntu as on Win10.
Asus Zenbook UX330C - Ubuntu 16.04 64bit / stock kernel / i3wm - No TLP or power tweaks or additional powertools - 88.97% remaining 8hr30mins - and that's pretty accurate.
I think you just have a bad SKU of a laptop if Linux gives you 1hr and Windows only 2.5hrs.
Down to 76% now, so pretty accurate. That with Chrome with several tabs, and a GPU/CPU heavy application called Slack/electron running.
Message to OP try 16.04.2 LTS (or a later version) and I think you'll find very different results with Asus laptops and Ubuntu.
That's actually amazing, lucky you! I'll give the new LTS version a go for sure as I still love ubuntu!
"This is hardly Linux's fault. <INSERT_MANUFACTURER_NAME_HERE> just didn't bother writing (proper) drivers."
The thing is, as a customer, after a certain point I just don't give a crap. Like, when I was a teenager it was super fun to spend entire days fixing esotheric problems with hardware and rebuilding the kernel to suit my needs, but nowadays I want to hit the power button and work. Linux is not that, at least not for me, I do use Mint daily on an older Dell laptop and that is 90% fine but for any "serious" development I would always use my Windows machine + VS.
When I buy a computer I specifically choose one with good linux support rather than buying a random computer and hope it works properly. I bought a Lenovo X1 Carbon, and I've had a Lenovo T430s, along with a Lenovo T61. All of them worked great.
Funny, I did the reverse migration at work (windows->mac) and I'm still having countless issues around corporate printer drivers, certificates and provisioning that no other windows or Linux machines in the same environment have. And macs are the only machines that cannot have passwords freely changed at will by the user.
Windows 10 has its share of issues but I think it has well above ZERO in quality.
> And macs are the only machines that cannot have passwords freely changed at will by the user
Not sure what you mean here. Can you elaborate?
Sounds like an IT issue. When I have been able to use Macs at work, they involve less IT hassle than Windows machines.
Isn't it just what you're used to? I recently (2 years ago) went the other way - from Windows to macOS - and I feel the same way as you but in reverse. I'll never buy another Mac, and I can't wait to get back on Windows, but I know it's not because macOS is inherently bad. It's because I have over 20 years of Windows knowledge and despite it's flaws, I know it well and I know nothing of macOS.
There's plenty of quality on Windows, and Windows itself is a very good OS. It's just what you know, and what you're used to.
Indedentally, in over 20 years I've never encountered a show stopping problem, or kafkaesque hoops I've had to jump through. Maybe our definitions are different...
I've had the same experience as you. Both windows and mac have bugs (or the software/drivers they use) and it is by far easier (for me) to debug and fix the windows problems than diagnosing that darned pinwheel of death. By far the most annoying experience is waiting for the laptop to be responsive after opening it up. Either the screen stays dark or the mouse/keyboard do nothing or both. I've learned to just open and go get a drink or something while it does "its thing"
I've been trying for the last few days just to make a bootable osx install flash drive so I can wipe and do a clean install before selling yet I can't get the thing to boot from it no matter which keys I hold during boot or resetting the PRAM. I'm sure its something stupid I did (am doing), but I would have been long past this step if it were a windows machine.
All Macs can remotely install OSX over the internet from the boot screen so you don't need a bootable USB. To manually start up from macOS Recovery over the Internet, hold down Option-Command-R or Shift-Option-Command-R at startup.
Thank you. I thought I was losing my mind, you were the first I read that mentioned Option-Command-R, which worked. Some guys had just Option, others were Option-R.
Incidentally, there have been similar space-consuming issues on OS X [1] [2]. Granted, the second one was a third-party application (probably) misusing file versioning APIs, but it's still 200GB of disk space being used in a way that is non-obvious to the owner of the machine.
1. https://apple.stackexchange.com/questions/84784/128gb-ssd-an...
2. https://medium.com/@thomasdegry/how-sketch-took-over-200gb-o...
> This removes one of the major reasons to use a Mac for Linux development
I find it hard to believe many people using a Mac for Linux development, will (want|be able) to use this the same way.
Anything that needs to simulate prod-ish environments for developers, will be using a VM (and if you're not, you should be) often via Vagrant.
This also limits you specifically to Ubuntu, so it's automatically going to be invalid for a lot of things that either a) are tested/built for multiple distros anyway or b) targeted at a specific distro that isn't Ubuntu.
Edit: additionally, using a Mac means you (via VM's) run any OS (or Browser, if it's a web project) you need, to test the software.
As the article states, SUSE and Redhat will be available in a week or two. WSL should be able to support other distros or self-built Linux too, although I wouldn't know how to go about that.
I've been using Arch as my WSL image for about a year I think.
I used this tool to get it going : https://github.com/RoliSoft/WSL-Distribution-Switcher
Definitely agree with vagrant. Vagrant incidentally is monumentally horrible on windows as well.
I've heard that Git was (maybe is) not fantastic on Windows either (to the point it has to ship its own bundled version of Bash!?)
It's actually pretty horrible but that's not windows' fault. It was designed for case sensitive unix systems with the appropriate ssh infrastructure and other shell tools in place which windows didn't have.
There are some powershell wrappers that make it better.
> It's actually pretty horrible but that's not windows' fault. It was designed for case sensitive unix systems with the appropriate ssh infrastructure and other shell tools in place which windows didn't have.
For me, that's Windows' fault.
Not really. You could write a git client for windows that didn't have these issues.
Yes, I would call those changes workarounds for Windows' bugs (incase-sensitive filesystem, no ssh infrastructure, ...).
One of the reasons Git is slower on Windows, is that spawning processes is a lot slower than on Linux. Wouldn't you call that a bug?
No, because Windows wasn't designed to make Git fast.
It is a bug on Git side if it fails to be platform independent and requires POSIX semantics to function properly.
I wouldn't call "spawning processes isn't slow" or a fast filesystem POSIX semantics.
Windows has built on the premise of multi-threading and a filesystem with rich semantics, not as yet another UNIX clone.
It certainly doesn't have a very good filesystem though. NTFS is horrible on lots of small files due to MFT contention. Even arguing with fstool for a bit doesn't improve it. Check out 50k files on Linux/OSX: 2 mins.. check out 50k files on windows ... 14 mins.
And that's both SSD backed.
It is just that wasn't designed with that specific use case in mind.
But it was designed with file streams, user ACLs, easy integration points across office networks, extensible to virtual devices, and data safety with actual proper locking semantics in mind.
It's just crap at storing files!
It is your point of view, the enterprise among Fortune 500 companies using it as their IT backbone have another point of view.
I work for a Fortune 500 and we don't like it either.
Right, so again, I haven't used it, so I'm going on what I've read, but my understanding is that Mercurial (which is Python based) is much more Windows friendly, and I actually use Mercurial more than Git.
But still, regardless of whose "fault" it is, I couldn't imagine doing dev on a windows machine, some of which is because of the vastly different environment.
Mercurial is much nicer on windows. Git could have been the same but it targeted unix likes to start with and didn't evolve into something even remotely portable for a while.
I use fossil for my own projects. I find that agreeable on all platforms.
It does and some people use it for other purposes like vim. (I do). But now I've switched to WSL for the git part after creator's update since things just work. And some version of vim and neovim also works so for now WSL is like a piece of paradise in GUI prison. But the default Bash for WSL sucks so I use mintty for WSL.(sucks less and supports good colors)
> Anything that needs to simulate prod-ish environments for developers, will be using a VM (and if you're not, you should be) often via Vagrant.
I know this not to be the case, and I disagree that it should be. I don't see why I should have to spin up a separate kernel and init just to run my application during development. I wouldn't use a Mac for it, but I've seen people develop portable software which happens to work quite well on Mac and Linux dev boxes for Linux production boxes. There's a lot to be said for debugging on your home turf.
> I don't see why I should have to spin up a separate kernel and init just to run my application during development.
So that you know it.. you know.. works in that environment?
Edit:
additionally, using a VM (and particularly using a tool like Vagrant) means that the scripts/etc to setup a working dev environment need to be done ONCE, and then any developer can work on the project, on any host environment - you can use your windows machine, I can use my Mac, Fred can use his Linux box with whatever distro he wants. It doesn't matter: we all run vagrant and a provider (usually a VM hypervisor) (doesn't even need to be the same provider - you can use HyperV, I'll use Parallels, Fred can use VirtualBox, or heck even LXC), and the application runs exactly the same in that environment, with exactly the same setup. You can destroy your machine, walk to a band new one, clone the repo, run `vagrant up` and you'll have exactly the same dev environment as me again. Even if you don't use Linux for your prod environments, this type of setup is a must if you don't want developer productivity to sink to zero every time something happens that affects their host OS (OS updates breaking libs. New hardware. New software. New OS release. Switched machines. etc)
> There's a lot to be said for debugging on your home turf.
The whole point of tools like Vagrant is to allow you to run the application inside a VM, but work on it (i.e. write/debug the code) on your host machine.
Not to diminish your point, but there are cases where running application development is very easy on a mac, and linux comes as first and subsequent stages of the CI pipeline.
> working dev environment need to be done ONCE
good point, I personally would rather integrate everything into the development platform (i.e. front end http server would be just another npm package/middleware, but not NGINX, everything gonna end up under a load balancer anyway on prod/test).
In regard to different machines/OSes, issuing everyone a mac really takes away a lot of headache for organisation, at a relatively small (compared to engineering hours) cost.
> good point, I personally would rather integrate everything into the development platform
The problem is, that restricts you to what's available for your dev platform. How many nodejs http servers do ESI sub requests, or can parse and use the same VCL file as Varnish uses on prod?
> In regard to different machines/OSes, issuing everyone a mac really takes away a lot of headache for organisation, at a relatively small (compared to engineering hours) cost.
I mean, there are benefits to standardising your work force, but I don't really see your argument here because:
a) if you take this route, and then don't use Vagrant, you have to pay each and every one of your engineers to re-setup all their projects, whenever they need to re-clone them (failed hardware, wipe & install OS update, etc).
b) unless you buy everyone the same new mac at the same time, you don't have the same environment, and it's doubtful you all even have the same OS version.
c) I've never worked in a company where everyone was happy to use the same tools/platform for dev. Forcing people to use a platform they don't like, in favour of using an open source tool that solves the problem, sounds like making things harder than they need to be
d) not all projects are run by a company, or even by the same company. Freelancers collaborating is a thing.
> I know this not to be the case, and I disagree that it should be. I don't see why I should have to spin up a separate kernel and init just to run my application during development.
Because OS X and GNU/Linux don't have the same APIs?
For what it's worth, WSL appears to have pretty terrible filesystem performance. This may not be noticeable for somebody coming from macOS, but definitely very noticeable coming from a real EXT4 or XFS Linux system.
I frankly don't understand why anyone would care to run anything but Linux on their workstation if their production deployments are Linux.
Exactly, I already choose Macs as the build time on a 15” MacBook Pro from 2015 is half that of a 2016 XPS 15” running Windows 10. It’s twice again if you use WSL on the Dell. Fedora natively on the Dell gets a lot closer to the Mac
> Now
There always was Docker or MSYS2, so if someone really wanted to, he could already use Windows for his Linux developments. There are some limitations, yes, but WSL also comes with it own set of problems.
I once started with DOS, moved to windows, linux (various distro's), now already for a few years on osx.
Windows doesn't even come close to the reliability and comfort of my macbook-pro. I was always reluctant to move to osx, but I have to admit, this is simply the very best and most reliable machine I've ever had! It never crashed once, while I push it to it's limits every day!
>> This removes one of the major reasons to use a Mac for Linux development
If I wanted Ubuntu, I would have it on my MacBook (dual boot or replacement). I don't want Ubuntu. I want OS X. Apple hardware is great for development, but the real reason I am here is for the operating system and software. So no, Windows+Ubuntu does nothing to replace a MacBook or iMac with OS X.
Linux power management and graphics have generally been fine for me on laptops for some time.
I suppose they've mostly been thinkpads, but some other stuff too - eeepc's from back when they were a thing, sony vaios.... all sorts.
Linux becoming the subject of a flamewar between mac-its and win-its. That's hilarious, from the perspective of a old-time Linux evangelist. Can I conclude that "we won" ? \o/
The reason Microsoft built a Linux sub-system into Windows is because Windows wasn't as good as Linux for development.
Microsoft building a Linux sub-system is Microsoft admitting defeat.
It depends on the type of software that you're developing.
Do you see any game developers working on Linux? Hardly.
Do you see a lot of IT shops doing development on Linux? Nope.
There are way more web developers on Mac and Windows than Linux.
What kind of dev work is Linux actually better for then? Servers? Most people are using Macs for that and deploying to Linux.
Or... I can just use Linux and have it do the tricky bits plus also play games :)
W/r/t the OP, I have trouble thinking that the Linux Subsystem is as full a solution as it's made out to be, but on-topic discussion isn't not what comments thread brawls are for!
I'm consistently amazed that the response is always that "Windows sucks" even as it's gotten better than the 95/XP/Vista experience. It's 2017, .NET runs on Linux now and VS runs on macOS, can't we all just get along? Of course, that sentiment exists for good reason even as Microsoft improves its product offerings. Every stable Windows install is just one third-party enterprise shitware deployment from automating BSOD reboots.
Tooling aside--VS is great if you add "finally" and "for some tasks" and if Powershell ever reaches a finished state that'd be good, but I still don't use either--regardless of how slap-dash and inconsistent Windows (lol X11) can be, the part of Windows that sucks the most is working at companies that require its use. If you haven't worked somewhere where people aspire to be "Sharepoint Administrators", where people "fix" prod data in Access and where >25% of your CPU cycles go to black-box antivirus vendor apps that had unpatched CVEs discovered in the past month, you really should so you can remember why you left.
Personal experience : Windows becomes sluggish over time (XP, 7, 8, 10 tried all of them). There could be myriad of reasons e.g. "smart" services, too many programs in autostart. I've been a power user and try to disable such things pro-actively but it's not comparable to a fresh install. Whereas with Ubuntu, it says near fresh even after years of use. Again, this is personal experience. YMMV.
So, I cannot imagine using Windows as my primary machine. Not sure about Mac, hopefully it's good. Linux is fine so far as my primary desktop / server.
That said, this news is quite exciting for both corporate & personal machines and I hope to see it progress.
For me one very important aspect of Linux is that the OS is decoupled from any kind of "consumer experience". In other words nothing in the OS is ever asking me:
Who I am
For Payment Information
Would I like to see an Ad
Do I need additional products or services
So I appreciate that this is handy for some people, but to me it's like avocado ice-cream. A bad idea that tastes like crap.
Wow, you haven't even tried the thing once clearly.
Can you elaborate on what is it that is bad about WSL being on Windows? How does it make things bad for anybody? It's called choice.
I think he is referring to the experience of using Windows 10 not WSL - they really do push for you to register/sign-in to an online account just to install creators update - even going so far as placing opt-outs in funny positions on the screen so it isn't obvious that is a possibility. Why does the start menu contain software that isn't installed and adverts? Why do you need an account to download free software from the store?
There's certainly a line of argument that says you can have all the linux goodness without all of that.
I have been in my day a very heavy user of Windows. What I object to on both Windows and Mac is the whole "store" experience. When my personal computer asks me for a credit card, I find this to be a profoundly uncomfortable experience - whether that's rational or not is a separate question.
So that's why to me it's like Avocado Ice Cream: a choice many people are free to make and enjoy....like the maniacs they are.
The only time your mac ask for your credit card information is when you are trying to pay something with your Apple account and you don't already have it.
If you don't want to be uncomfortable then simply don't try to pay for something with your Apple account.
Not wholly true. My mac ecosystem is currently blocking the download of a free app until I verify my CC information (which consists of entering the CCV for the hundredth time, but that's a separate rant).
Defiantly not totally true, I have multiple accounts on the mac store and I've never once been asked for a credit card, I download free apps via the store at will.
If that bothers you, you can always just download the app from the dev's website and not bother with the store completely.
What probably happened is that you have an existing expired CC on your account, so just remove it and continue on...
What is actually happening is my Apple account gets locked out about once a week (completely outside of my control), so they want me to verify everything again, even to make "free" purchases. A real PITA.
> you can always just download the app from the dev's website and not bother with the store completely
This makes a number of assumptions - namely that the developer has made the app available via their website (which is not common if they use in-app purchases).
Apple required/asked for Credit Card from me to upgrade a Desktop to (I think) Mavericks. It was an old computer that an employee of mine used to use. I logged in, had a look, saw an available upgrade and clicked to install it and - boom - please can we have your CC.
I do not like that.
It depends what store you are connected to, I think. Haven't had the experience on the Mac, but on the iPhone, it let me download things freely on the US store but required I provide a credit card before it let me download free stuff from another store.
I have a surface pro 4 but no account or cc info. I deactivated most of that stuff.
WSL is cool, but frankly the built in hypervisor is better.
I'll never understand how people are seemingly ok with ads from their OS.
I'll never understand why so-called "hackers" will defend Microsoft and their products when Microsoft participated in the NSA PRISM program in secret.
This was a program most of congress didn't even know about, but execs at MS knew. They were knowingly violating your right to privacy and knew the government was doing it. Microsoft are bad guys. I won't even go into what all they did in the 90's under Bill Gates (https://archive.fo/CJ4PV).
Not only that, but Windows is a crap OS. Anytime anyone defends Windows it always comes down to program compatibility and not OS quality. Linux for me is more stable, performant, doesn't slow down after a few months of use, has better choice in file system, has actual package management, doesn't force me to reboot for updates, doesn't take 8 hours to install .NET framework after rebooting preventing me from doing work, has great container technology, the list could just go on.
Windows isn't a good OS, it just has games and office and a few "professional" programs that most "hackers" don't ever touch. It's filesystem is crap, it's update policy is crap and should have been fixed millennia ago, svchost is always a problem, font rendering is still worse then any other OS, ads in the os, spyware in the OS, closed source so you can't even really hack on it, etc. But it's got games so that makes it the best OS for software development? Any one who thinks this has never given Linux a serious shot. After programing and setting up development environments with proper package management and having a sane command line, using Windows for development, especially in multiple languages is a huge chore that usually involves lots of breakage over time. On Linux things feel much more cohesive.
Even Microsoft agrees that Linux is better for developers, seeing as they implemented a Linux sub-system right into their OS. They've admitted defeat. They aren't even going to try to fix windows. Microsoft doesn't even care about Windows. People on HN care more about Windows than MS does.
Even clicked the linked articles and never came across a satisfying answer to the question: why? And I mean practical use cases where one would pick WSL over Linux. Once bitten twice shy, I would not hold against them if people were to be skeptical when MS decides to embrace competing products.
> And I mean practical use cases where one would pick WSL over Linux.
You don't. You choose it over MSYS2/MinGW/Cygwin.
That sounds sensible, though the article lacks those comparisons too if that is the intended use case. As well as a couple of others (VM, wubi)
Except for the fact that you cannot launch (or otherwise control) Windows processes from the Linux environment. That's one serious limitation.
You can now! You can run .exe files directly from WSL, and we append your Windows path to your Linux path by default to make this easy.
I have a desktop at home. I like things to just work (which in my experience they do better on Windows than Linux) and I like to play games (which aren't available on Linux, and I don't feel like messing with Wine).
I also like to do some development and am most comfortable doing that in a Linux environment. So far WSL works great for all my development.
I find WSL to be better integrated / less jarring than a Linux VM or dual booting. All the GUI apps I use, I run on Windows. The Linux environment I care about is all terminal-based.
My only complaint is the state of terminal emulators. I use wsl-tty but it doesn't do a very good job of emulating xterm/gnome-terminal.
Today in "headlines that would have been April Fools jokes ten years ago"
I think that would be more like "Windows now available from Ubuntu package manager"...
I never quite get developers that don't use a system most similar with they deployment target... If I develop web apps intended to run on -nix, I use Linux, if I develop Windows stuff, I use Windows etc.
It creates a huge understanding gap that slows you down and makes you miss so many shortcuts...
Windows, Macos, Linux are all good enough to get shit done these days... so pick whichever suits current needs best. (I reboot to different OS depending on project since this also helps me avoid my dangerous tendency for multitasking... and productivity/office tools are all web apps for me so I can use them anywhere, including phone and tablet).
My company lives on Outlook. My dev is fully targetted on Linux. How should I use Linux on my laptop/workstation?
Internet?
Yes?
I think he is refering to the Outlook Web App.
Hmmm. To be fair OWA is pretty good.
Run Outlook in a Windows VM on Linux instead of doing your real work in a Linux VM on Windows.
So, someone wrote this reply and it got downvoted to death or they're hellbanned or something, I want to reply to it anyway.
They said: not possible due to company policies. you wouldn't be able to connect to our network with Linux desktop anyway. welcome to corporate world
The responder reveals themselves to be an "inside the box" thinker. You could shrink your windows partition, install Linux, boot Linux natively, boot the existing Windows partition as a VM in VirtualBox, assign your physical NIC to the Windows VM, and use the Windows VM as a gateway to the network.
Being able to do something doesn't mean you are able to do it. Good luck with that setup if you are working in finance and something fucks up or there's an audit.
> Good luck with that setup if you are working in finance and something fucks up or there's an audit.
...don't most companies have a clear separation between (1) software engineers, whose job is pushing out code to cloud/servers/other-users (and who nobody should care what they use to develop that code that they push out), and (2) software users, who actually use the apps to push money/data around?!
If you're working in finance you're either in group (1) where you can use mostly anything compatible with security policies, or in group (2) where you can use ONLY what's whitelisted. If you're the rare snowflake sitting in both groups at once, then you just use 2 different separate computers.
And auditing only touches group (2) because they are the only ones handling money and real data, unless you're in a criminal case or something, where auditing would be done by computer security forensic experts anyway, who's by able to handle auditing the "exotic" setups of group (1).
And if somebody is auditing the tech side, they would be looking at git repositories, ci servers, etc. ...not the places where code is pushed from.
maybe running the one app that's special in a VM instead of doing it the other way around...
the reverse only sometimes makes sense when that app is Mac app because there can be too much pain to do it otherwise... hence I understand some Mac-loving devs.
OWA? RDP? IMAP client with calendar extensions?
I went with the VM route. It wasn't the best, but it definitely makes it bearable. VirtualBox isn't good for graphical desktop, and VMWare has it fair share of problems. Wanted to try Hyper-V but seems troublesome to get started.
PSA: filesystem performance in WSL isn't great, but it's absolutely fantastic under windows' hyperv hypervisor.
As a dev env I run CentOS on hyperv and putty into it, and map the drive with dokan+winsshfs, and it's just as performant as Linux/Mac on the same hardware
Do you ever need to go the other direction, e.g. access NTFS-hosted files in the VM?
For that, samba/cifs share from windows, then mount from VM should work fine. I haven't tried it though.
Does that mean your code repository is on CentOS inside HyperV, and use code editor from Windows to edit it?
It's the 5th result for me (when searching Ubuntu), after a Linux Cheat Sheet, some PasteBin program and WepUpd8 (whatever that may be), then when I click it, the first line says: "This title is powered by great new feature of the windows insider program, please join at..."... Now should I, do I need to do that? The Get button is greyed out, but no indication why (probably because me company hasn't approved the anniversary update yet). What a crappy experience.
That's a reverse first bug :-).
For the sake of completeness:
"Microsoft has a majority market share" Bug #1 (liberation) reported by Mark Shuttleworth on 2004-08-20
https://bugs.launchpad.net/ubuntu/+bug/1
I just don't care anymore - I keep windows on VM it's way easier (eg. WSL doesn't support docker). I don't use any other Windows app except: VS (from time to time) and Word. VirtualBox is more than enough for this (my host linux desktop is beefy machine though)
I have a Linux laptop and a windows laptop. I bought the windows laptop for games and to hobby in game development , blender and unreal engine but I can't stand windows even for those basic purposes the popups for updates and other "do you want to set this setting now" when I just quickly want to open a browser and google something drive me nuts. Put notifications in the toolbar in the right with some annoying icon and leave me alone. I know what Linux is doing all the time and if not it's easy to look up but windows Microsoft magic makes me feel like I need tons of more security apps than I would like to have running. I need a windows lite.
I just wish the issue with symlinks not being interoperable between Windows and the Linux subsystem (and vice versa) could be fixed.
Microsoft has one problem - it struggles with it being irrelevant.
Years after years of shaming from angry penguins did their job. Now Linux is cool and Win is not. Well, Mac is now supposed to be even cooler.
Windows can't regain even a second place as a development platform unless, ... , it stops being windows. The negative connotation and "uncoolness," just sticks to anything that remotely touches Microsoft. Unless they can do something like a total market and product production approach U-turn as a company, they can't change their trajectory into the dustbin of history.
Oh, hi guy from Starbucks with lots of stickers on his macbook writing nodejs apps in VIM.
Linux was never cool and will probably never will. Mac is cool because they had the amazing marketers, but nowadays it's getting more and more lame.
Well that, and it offered a off the shelf unix with support down the road (or in the university library sometimes).
Best i can tell though the unix parts are growing more and mroe stale compared to both the BSDs and GNU (many seems to resort to installing the latter via third party tools).
You try and defend windows, but give absolutely no defence other than the fact that Unix isnt cool.
I had no word "windows" in my comment. Windows never was cool and never will be cool. It just works.
I think there is a some truth to software being hype driven and MS being uncool. Even when discussing new MS ~since Nadella, the fact you have to add that modifier makes it come off as forced.
However MS did everything to make people angry itself. Basically taking control of their PC, forcefully upgrading to Win10, pushing whatever updates they deem necessary, opting in to telemetry and making it (almost?) impossible to disable it, are all things Windows users experienced first hand.
I would not short MSFT just yet, but would not be surprised if your last prediction would come true.
Doesn't this break every policy the app store has about what programs can and can't do? This has full system access and every other app is constraint to the file dialog to get write permissions.
Windows store also has full/legacy Win32 apps. See the Evernote app in the store, its regular old Win32
I thought it had "full win32" support, ie, you can run win32 apps but they have to be modified. It's clear as mud though, MS says one thing but their windows store migration guide says another. The existence of the migration guide is rather telling though.
Desktop Bridge (Centennial) apps are modified to use the same appx packaging and installer format used by UWP apps. Unlike true UWAs they run with user privileges, not inside an app container, and so they have the same filesystem access as the user.
They can be distributed through the store but the onboarding process is much more arduous than with true UWAs (for which the Store acceptance process is largely automated since they're relying on the app container for security). AIUI to submit an unsandboxed app they expect you to already be an established developer and submit a request, wait for them to do a bunch of manual investigation of who you are and get back to you, etc.
Yeah, it's a bit confusing. That's the reason why it won't be available on Windows 10 S...
Very excited! Been using the WSL for a bit now to do tensorflow and python stuff. Just a bit of tweaking to get it all to work (less than an hour), and I get to dual boot less frequently now.
Does the performance take a hit when using tensorflow this way ? (when compared to running it straight on the windows)
Why not installing tensorflow on Windows directly? The WSL does not currently support accessing hardware like GPU so there is no benefit of using tensorflow on WSL.
I am not too familiar with developing on windows directly. Don't feel like learning all the tools when I am already so comfortable in Unix like environments.
Never used the Windows Store - do I need to register or can I download Ubuntu without a Microsoft account?
I haven't seen anything that doesn't require an MS account on the store.
No, everything that is free can be downloaded without account. It's actually the only platform I'm familiar with (android, iOS, MacOS) that allow users to do so. Really convenient for computers that we install at costumer site.
Well, Linux distros themselves are an obvious other example, you also don't need to register to apt-get install.
Well i'll be damned. When i looked into this a while back i had to register (used an old hotmail account i have sitting around for when i have to interact with MS) before getting anything done.
Responding to myself here to document a few things.
Seems that MS distinguishes between a desktop/laptop install and a tablet install.
I have a cheap 8" x86 tablet i picked up, and there i have to log in to grab even free apps. But if i use my laptop, i can grab free apps without logging in.
how are file endings handled with WSL? last time I tried using git & sublime text on Windows with some version of cygwin it would checkout a repo with windows file endings, which broke all the bash scripts. if it uses POSIX file endings, how about opening the files with windows applications like VS?
Edit: Also, does the windows terminal now have some sane colour scheme? I could never make it work to not show me some completely unreadable colors, like dark blue text on black ground or light yellow on white.
As far as line endings etc goes, WSL is Linux. It literally has the same binaries running.
WSL doesn't change the line endings, so you'll want to make sure that if you use Git for Windows along with it, you set it up to use Unix line endings. Most decent editors (including VS and VSCode) can handle LFs just fine. The most annoying gap is Notepad.
We are definitely aware of the problems with the terrible color scheme. I don't remember right now if we have done anything about it quite yet... but it should be coming. In the meantime you can adjust the colors manually.
Btw: I can recommend Notepad2-mod: https://xhmikosr.github.io/notepad2-mod/ It can replace Notepad and understands LFs.
You can install it with Chocolatey https://chocolatey.org/packages/notepad2-mod which will automatically set it up as a Notepad replacement :)
Conemu is pretty nice, and works with WSL:
https://conemu.github.io
I always configure git and all editors on Windows to use LF line endings. It is so annoying that so many applications use CRLF endings by default, I never understood reason for that, I'm always using LF and have no issues.
It's a bit misleading. Unless you're on Windows Insider builds this isn't available until the windows 10 fall update.
2017: the year of the Linux desktop.
With no actual Linux kernel code. Oh, the irony.
At least they have the decency to call it Ubuntu and not Linux in the promotional material.
Personally, I would have called it Line (Line Is Not an Emulator) or Eniw
LINE was a real thing 16+ years ago, probably still on sourceforge. It allowed you to execute native Linux binaries on Windows, similar to WSL.
https://sourceforge.net/projects/line/
Is it worth installing Ubuntu via the Windows store or would we be better off running it through VirtualBox?
Is this different from the linux subsystem microsoft already supports? Which is nice, and would,be worthwhile if i had enough motivation to use windows gui programs, but is limited given that you have to jump through an extra hoop to run linux gui programs, and cant even access your linux partitions from it
Did you mean gnu/windows?
-rms
:)
It's actually gnu/nt. WSL completely bypasses the windows APIs and talks to the kernel directly, AFAIU.
That's because Dave Cutler (of DEC VMS fame) specifically designed the NT kernel to make it easy to add new ABIs. NT originally supported running Win32, OS/2, and POSIX executables. Now apparently they added Linux executables.
While Windows is in a good place right now, its not great.
I have been a Windows guy for a long time but for the past couple of years I have been waiting for the day when I can finally ditch it and move over to a pure nix platform.
I want to do this because I understand </i>nix, specifically have worked with Debian for a long time so I am aware of how good the base architecture of Unix-Like OSes are - its that good because it was well thought out from the early days.
Being a .NET developer I am literally waiting for the moment when I can unshackle myself from Windows 10.
Windows 10 is good, its about as good as we will get with the current bloated architecture and while I suspect the direction the OS will take is to become a VMlike app on a version of "windows-is-linux-not-bash" offering from Microsoft that day is a long way off.
Its all the little things that destroy productivity and become major time sinks. Individually we could say they are related to whatever product is causing them but collectively they can seriously eff up your professional working day.
MacBook's are great, hardware is where Apple really excels and no one can take away the great productivity to be had on the operating system which is based on the awesome BSD but the buy-in is ridiculously expensive.
As someone said pound-for-pound we can get better offerings from other vendors which will soften the shitty experience on Windows however what you get with Apple is quality and you can confidently state that you will get a good experience (provided you get good enough Apple hardware).
Here is where the problem is, the buy-in is expensive and then you are hurt even more when you realise you need to upgrade to get a better experience later down the line.
Conversely we can argue that because the BSD-like OS requires less resources it operates much better for less hardware.
I really do hope Windows becomes an "experience" on some BSD/Unix like OS that would open up a world of possibilities.
At least they have the decency to call it Ubuntu and not Linux in the promotional material, seeing as it does not contain any Linux kernel code.
Personally, I would have called it Line (= Line Is Not an Emulator) or Eniw.
How can I have it run a server in the background/after I close the window? (Either that or it already runs in the background)
But can I access to my desktop, documents, music folder and create archives or more folders to development environment?
Yes.. save file in cd /mnt/c/Users/$"%USERPROFILE%"/(Desktop|Documents|Downloads|Music|Video)/
Its really nice