I've struggled with this idea - almost everything (outside Apple specific development) is ported to Windows. My work is in .NET and various Javascript frameworks. Never had a problem with Windows.
Plus I feel if I really needed a Linux environment, the Linux subsystem would fill that need.
Early WSL was a pain, but they’ve come a long way. My entire web dev stack works natively on WSL these days–and WSL2 is due any day now, which should make it entirely on-par going forward.
I'm a little skeptical given the shortcomings/difficulties I encountered last year, but a solid competitor to macOS as a unix workstation with broad desktop app support would be great to have.
Even in the last year it’s actually a dramatic shift in the landscape. I use WSL as my full-time development environment with Docker/PHP/Node.JS, and have few problems getting anything working–no more than any other platform.
Yeah, I really wanted to WSL to be ready for prime time, and bought a Dell XPS 13 on that expectation, but... nope. It's still mostly promise, you only pull off using it for day-to-day unix-based dev if you're willing to put in a lot of effort, jump through hoops, address unanticipated conditions, and otherwise engage in a lot of yak-shaving.
Our family has lots of Apple hardware and I’ve had Macs off on over the years. But, the last time I owned a Mac - the 2006 Core Duo Mac Mini - I realized that there was no software that I was using on it that I couldn’t get for Windows that I cared about.
I also told myself I needed a Windows laptop for hobby projects outside of work. A few things happened to make me think about getting another Mac within the next 18 months.
- All of my work now is cross platform .Net Core, JavaScript, and Python.
- I don’t have any plans on doing any Windows specific development.
- In the unlikely event that I need to do anything on Windows, I’ll spin up an EC2 instance in my hobby AWS account.
- the chances of any company I work for not giving me a Windows laptop is slim.
But honestly, I don’t do side projects that aren’t work related and I hardly ever use my computer at home besides as a Plex server. I use my iPad at home mostly with a Bluetooth keyboard for the rare personal MS Office work
You're in a bit of a niche though; gamedev is heavily slanted towards the microsoft ecosystem, and that might be changing depending on how Stadia is adopted.
Web and mobile are such a huge chunk of our everyday lives now though that I would dare say that everything else pales in comparison.
And Apple has had the mindshare of that crowd for quite some time now. But...
---
Personally, I despise working with both Windows and current generation of Linux desktops. They are clunky, inconsistent, cluttered etc. However, they are improving (albeit slowly sometimes) while Apple's "pro" offerings are degrading at an alarming rate. And with the impending advent of Marzipan we might see an exodus of pro users from MacOS.
What's the rationale behind Marzipan causing an exodus of pro users? Even if there were a flood of low-quality mobile apps onto the Mac... I don't see how that would reduce the availability of existing desktop-first apps.
In case of Linux and Windows you can see their effort to improve things. Their failures and shortcomings stem from either decades of legacy (Windows) or lack of overarching vision and resources (Linux).
Whereas MacOS... It has always been billed (and billed itself) as the UI/UX front runner. It was (or was trying to be) polished, consistent, good.
Apple had Human Interface Guidelines in as early as 1987[1]. Apple was the definitive yardstick interfaces would be measured by.
But in the recent year(s)... Apple has been consistently dropping the ball themselves. When their own first-party apps break almost every single HIG [2], how can one expect third-party developers to create quality apps. When their own third-party apps are locked in to landscape mode (iOS dashboard and iOS books interface), how can one expect third-party developers spend any significant amount of time creating seamless experiences across multiple screen sizes (and Apple’s own Marzipan apps like Newsstand and Home are barely ok at best).
When your OS is no better than the competition, what’s to stop people from using the competition (which actually shows willingness to improve).
It's interesting that you describe a Unix/Linux development environment as web development friendly. Historically, the only relationship between the two was that a portion of the server/hosting market ran on Solaris and Linux boxes (and now, Linux servers and VMs). But that's not really why it became popular for web development.
Since web development doesn't require a proprietary dev toolkit, it gravitated towards the platform that most naturally supports software development in general. And that happened to be Unix/Linux.
Mobile and enterprise, you say? Android Studio and IntelliJ IDEA feel no more at home on Unix than they do on Windows. Same for MySQL and Oracle stuff. As for the Web, granted I only do occasional Angular development, I can also say I've never faced any limitation - not even considering the WSL compatibility layer.
It really depends on what languages/frameworks you use. A lot of common languages have package support in the standard repos for Ubuntu-based distros, and the command line is more of a first-class citizen in Linux environments than in Windows or macOS.
For me it's less about what's "so great" and more about what's not awful.
I need a Unix-like command line environment and Windows is inferior there. Otherwise it's fine (I use it on my gaming machine), but if you look closely you can see it's a huge mess (e.g. the insane state of the control panel(s)) in ways Mac OS just isn't.
Linux is too much work. I say this as someone who has used it for years, still uses it every day, I've compiled my own kernels, etc., but it's just too much work to get everything working perfectly on my personal machine, especially on a laptop.
Mac OS doesn't have many of these problems. I am old, I have too much real work to do, and I need a machine that works and gets the fuck out of my way. I am past the point where I consider fiddling with the guts of my OS a badge of honor and think having a bunch of code up on my screen makes me look super cool like Neo from The Matrix. For people like me who don't need things it doesn't have and like what it does have, it's a good choice.
Now if only Apple would stop making so many dumb hardware choices...
Another feature that keeps me on OS X is the ease of imaging a system and booting from that image. Also target disk mode - I've yet to see anything that comes close in Windows or Linux but I admit I'm a bit out of touch.
I wholeheartedly agree. I'll add, though, that due to some recent work in deep learning I started running Pop_OS 19.04. Other than the stupid name, it's actually been surprisingly great at doing everything I need and staying out of the way without me having to fiddle with it. I can run steam, skype, zoom, and everything but office as easily as on any other os.
Overall polish is not to Mac level, but it's a smidge above Windows 10. Which is about 100x better than my prior experiences with desktop linux.
Windows is crap. The UI is totally schizoid, with different apps using different toolkits. Office for Mac integrates more cleanly into the look and feel of the rest of the OS than Office for Windows. There are two different settings apps with different features. Basic things are poorly designed. E.g. if you put the task bar in autohide mode, it routinely gets “stuck” because some notification is keeping it from hiding.
Best example is still the Settings/Control Panel mess in Windows 10. It's always a fun game guessing where the setting I need is, especially considering the useless Start menu search.
That being said, I have high hopes considering their latest efforts, the new terminal looks cool, powershell is useful and WSL2 looks to bridge the gap. I'm a die hard macOS user that requires Windows for a variety of work tasks, i'm glad to see the effort and competition.
Electron is a browser. So a huge chunk of things are native: keyboard support, inputs, dropdowns, context menus, menus, preference panes, popups, window chrome etc.
And all this is available to developers out of the box. Very few "cross-platform UI toolkits" can come even close.
That said, a fully native app would be a better option, but Electron apps are ok (unless devs go out of their way to make them bad)
The problem is that the controls generally are made by web developers rather than just using the underlying platform’s widgets so, list views look wrong, input handling is slightly off, etc. All the normal issues with applications made with web technologies.
Additionally, browsers are one of the most out-of-place feeling applications because the look and feel is controlled by the website, not by your operating system.
I'm curious which applications made you come to this conclusion. I've heard a lot of Electron criticism, and most of it is very valid, but I think Slack, Spotify, and Atom very much fit into the macOS UI environment.
Kinda like how iTunes was brushed metal forever while the Finder was Aqua and some apps roll their own UI to mimic Aqua? It's not like either Apple or Microsoft produce consistent applications, let alone the lack of control they have over third party developers. There is also Carbon vs. Cocoa, where different programs get different services "for free" from the operating system (e.g. spell check). Apple is just as guilty as Microsoft.
Giving a couple of decade-old examples doesn’t show that Apple is “just as guilty.” Apple has two toolkits: Carbon, a legacy framework for transitioning from MacOS classic, and Cocoa. Microsoft has releases a new toolkit/look-and-feel basically every other year. (Win32, WPF, Metro, UWP, etc.) And unlike Carbon, which is depreciated, Win32 is in active use by new apps and keeps getting new features.
There are a lot of different versions of Win32 and WPF based on the Windows and .NET version they’re targeted to, respectively.
Cocoa is more like targeting an evergreen browser. Just target the version that is just old enough to support enough users and you’re good (and users are happy). Unlike evergreen browsers, though, you do hit hard cutoffs once every few years, but I suspect navigating those means updating the compilation/signing process more than rewriting anything (correct me if I’m wrong).
I thought they'd more than deprecated it, and that Carbon apps won't run anymore on Mojave. They declined to do a 32-64 port all the way back in Mountain Lion.
The original discussion was about desktop operating systems but if you toss in iOS, how many look-and-feel changes does that add? Given the state of Marzipan apps that Apple thought were fine to ship, it may be ever more relevant. Apple didn't even replace the "slot machine" date picker from iOS which is horrible to use with a mouse.
Microsoft is the same as its always been but acting like Apple has a clear, unified, and sane design doesn't reflect the evidence.
Microsofts worst enemy, IMO, is their OEMs who are allowed to put all kinds of custom side-hustle garbage into the OS and it takes alot of work to remove it. Essentially, you have to pay a premium to a manufacturer to signal you're a "serious" user instead of "consumer" user, or you have to spend time removing spam... I mean "custom" apps that the OEM got paid to put onto your machine. At least, Apple only hustles their own ecosystem apps and let you safely hide or remove most of them.
Spoken like someone who does not know Windows. If you buy a machine that comes with windows, and just use it off the shelf it, is a total mess as you say. (As well as probably loaded with crapware)
If you know Windows youre gonna install LTSC on that machine and have a nice productive time.
I am curious, do you buy a mac and just use it for work without any setup, off the shelf? If so that is a point in its favour I guess.
Also as someone who only knows Linux and Windows and is not familiar with Mac OS, anytime I have to use it, it is a baffling experience, common things are done with gestures and keyboard shortcuts that one would never be able to intuit or discover.
I find some random completely new Linux windows manager that Ive never seen before much easier to get to grips with than Mac OS.
Funny you say that, because I wiped whatever was on my X1 Carbon and installed LTSC. Then I had to install the Lenovo touchpad driver because two finger scrolling didn’t work. But that installed a “synaptic touchpad enhancement” background task that was a marked battery hog. The touchpad driver would restart the service if it was killed, so I had to delete the executable. (It led to no apparent change in functionality and notably improved battery life.) at this point, we are solidly in “total crap” territory. I’ve had half a dozen Macs, and never do anything to it besides install the apps I use. I sometimes change the wallpaper, but not even necessarily that. Everything is perfect out of box.
Thats fair enough. Laptops can be very finicky for drivers.
I've been using LTSC on my work / gaming desktop for about 6 months and its been the best OS experience ive had since DOS. Everything works perfectly, and otherwise it just stays out of my way.
You're right that the off-the-shelf experience with Windows can be very dodgy depending on what your OEM is and what crap they decided to put into the core OS.
I'm conflicted about all this myself because I have a good experience with Win10 once I get all the extra nonsense removed, the settings changed, and my shell setup working. I feel like Windows rewards people who are willing to put the time into it now, but its not as easy as dealing with Mac OS where you basically just clear off the toolbar, put the shell and whatever dev apps onto it, and maybe tweak a few settings and you're okay to go.
Well it has decent window manager with multiple desktops, does not require antivirus and supports Adobe. For graphicdesign/developer there really arent many other choices. Also if you work with sound its hands down best OS.
I wouldnt say superior, Logic, Ableton, Reason, Cubase etc. They're all different, they all have their own strengths and weaknesses. Eg. Ableton has pretty crappy midi sequencing capabilities whereas Reason has probably the best. They all fit different use cases.
When ye say "great", I think ye mean "the one I am familiar with".