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.
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.
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.
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.
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 ;)
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.
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'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.
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 don't have these issues.
Somehow desktop hardware seems a lot more solid though.
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.
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.
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.
Hah, thanks for the laugh, funniest thing I've seen today. So true! =)
(Razer Blade > 2016 MBP)
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.
Haven't had any Mail.app problems yet but I run an empty inbox.
Also, they are currently in the process of rewriting the build system, with a preview shipping with Xcode 9.
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.
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
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.
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.
I think you just have a bad SKU of a laptop if Linux gives you 1hr and Windows only 2.5hrs.
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.
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.
Windows 10 has its share of issues but I think it has well above ZERO in quality.
Not sure what you mean here. Can you elaborate?
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 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.
1. https://apple.stackexchange.com/questions/84784/128gb-ssd-an...
2. https://medium.com/@thomasdegry/how-sketch-took-over-200gb-o...
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.
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.
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).
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.
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.
I used this tool to get it going : https://github.com/RoliSoft/WSL-Distribution-Switcher
There are some powershell wrappers that make it better.
For me, that's Windows' fault.
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?
It is a bug on Git side if it fails to be platform independent and requires POSIX semantics to function properly.
And that's both SSD backed.
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.
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.
I use fossil for my own projects. I find that agreeable on all platforms.
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.
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.
> 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.
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.
Because OS X and GNU/Linux don't have the same APIs?
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.
I frankly don't understand why anyone would care to run anything but Linux on their workstation if their production deployments are Linux.
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 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.
I have never heard this and in fact have only ever heard the opposite.
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.
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.
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.
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.
And battery life on thinkpads often needs tinkering, either through kernel parameters or tp_smapi if supported.
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.
Microsoft building a Linux sub-system is Microsoft admitting defeat.
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.
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.
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!
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.
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.