I'm not quite sure what the point of this article is. He's quite clearly not the target market, and is shocked and enraged by this. This is clear right from the get-go:
>Be customisable. I want to be able to replace any part of the system I would like
So you're going to use a closed-source OS that's notorious for enforcing homogeneity wherever possible?
>Be transparent in its workings
Again, so you're going to use a closed-source OS?
He then complains about a lot of optional features that can be turned off in a few minutes (Gestures, SIP) and have clear use cases for the remaining 99% of the system's users. His complaints about SIP are particularly bizarre. It's obvious what the utility is, it's trivial to disable, and yet it's "the sort of decision that is endemic to a system which is designed to lock you into a software prison"?
Indeed - one of the main selling points of OSX has always been its UI (where swipy gestures are rather handy), simplicity, and 'it just works' appeal. If you don't care about any of those things it's clearly going to lose a lot of it's appeal. Personally I ran linux for years before deciding I had wasted altogether too much of my life recompiling kernels and got a mac, where I can do Unix-y things with better hardware and less headaches.
Yes, it's fairly obvious that the author wasn't go to like osx from the start. However, I really do appreciate him giving it a go for a week. It's mind-blowing how many supposedly open-minded people refuse to try something before knocking it. Seriously, this is Green Eggs and Ham level stuff: try it try it, and you may. But geeks are some of the most stubborn people out there. Good for him for giving it a whirl, even if it was inevitable that he was going to hate it.
Is transparency and customisability really so fundamentally incompatible with closed source software? The fact that the source code is not available does not prevent the availability of clear documentation detailing system functionality (whether or not you can verify whether the two correspond is another argument). Detailed documentation can allow for customisability by swapping out closed-source defaults.
I agree that the OP was never going to be happy with OS X, but were his expectations really so misguided? His requirements were not unreasonable.
Well it's not really clear what he was hoping to modify in OSX that found impossible to change. Many of the settings mentioned are readily toggled off, you can install most linux software (Homebrew is necessary, i readily concede that without it OSX packaging is a problem), I'm not really sure what he wants apart from that. Not sure what he means by "developer workflow"...
Maybe it was more UI customization - there are definitely things which would be nice to tweak which are not tweakable, although there are a good range of apps and plist hacks to do so too. Mostly get the feeling he was primed to dislike it and, surprise surprise, disliked it.
I haven't given OS X a try yet, so I don't have the experience to know whether his rant is validated, but how about his example: using gcc. Is it difficult to get gcc running smoothly?
Also, how is OS X not transparent in its workings? Underdocumented, yes. But Linux's man pages aren't exactly a model of consistency and clarity, either.
He also misses the part where Macs are perfectly fine for a wide range of developers (I almost said 'most' but there's plenty of people out there writing code in environments I'm no authority on).
If you're a kernel hacker, then yes. I imagine it's shit. But writing Go works fine, despite his protestations to the contrary. I'm also happily running GCC in parallel with Clang. And a ton of other programming environments too.
Problems like the lack of a package manager are more of an easily-solved annoyance than they are a fundamental flaw. The problems I've had with HFS being case insensitive were more the fruit of people doing stupid shit on case sensitive file systems than they were fundamental 'sky is falling' problems.
All in all, this reads like someone trying to emulate one of Linus's shitstorms, while missing the fact that Linus gets away with it because his ranting is usually backed by pretty substantial arguments.
Man there's a lot of FUD in that article, but this one in particular:
I mentioned this earlier, but most developers use virtual machines
in order to properly use OS X. The very notion that your operating
system is so lacking that it is easier to just run a virtual
operating system to fill the gaps shows you that there is clearly
something very wrong with this model.
No, the reason to run a virtual machine is that I'm not running OSX on my production servers, so why would I develop against a different target than my deploy target? You could pretty easily run nginx, node.js, golang programs, dbs, etc. on a Mac, and some people do, but if you're running VMs its because you want to mirror your deployment system architecture into dev and reduce a slew of corner-case bugs that might crop up otherwise.
Or clang, OpenCV, boost, ocaml, &c. All of which build and run natively, and are no less well packaged and accessible on OS X than they are from any Linux distro, short of nixos.
For me OSX gives one very clear advantage over Linux. Time.
Running Linux I found myself constantly wasting time on fixing WiFi card drivers, etc after every update. I don't have time for that shit. A Macbook may be more expensive out of the box but the extra time I can spend on stuff that is important (and fun) is worth it.
Out of curiosity, when did you experience the issues with the drivers and such? I know that was a problem in the past (and I fought with it as well), but for at least the past 4 years, I have found linux to work "out of the box" on several machines, without any fiddling of that nature. I suppose there could still be some problematic hardware, but lately, I have found linux to be much quicker to get up and running. I used an iMac for ~4 years of my PhD, while using a linux laptop alongside it. I found it was easier and faster to use the linux machine's package manager to get up and running for python coding, compared to the package managers for Macs (I tried several).
I see this argument a lot, yet I have not spent one second customizing a linux driver for anything in the last 8 years.
Maybe, if I'm running games or 3d software, I'll update to the proprietary drivers, but I've not touched anything else (wifi or otherwise) in a very long time.
It's not 2002 anymore, it used to be like this before but it's been a long long time since I had to do this. On my case, using Linux over OSX is also about time, I could use OSX but you need to install a lot of stuff to make it usable for a development environment (which is pretty normal, I'm not the target audiance).
If you're willing to buy specific pieces of hardware in order to make sure your wireless works under OS X, why not buy known good hardware for Linux? You could buy a nice Zareason with support for less.
There's nothing wrong with liking OS X, but Linux is far better than it with hardware in general, and nearly equivalent if you are willing to only buy from a tiny range of hardware.
I'm also an Arch user (not use Linux that much now, but my VMs and servers are all Arch, as well as my netbook before I tried to install Plan9 on it the hard way, now it's waiting for some OS) and OSX user. After reading what the OP wants from an operating system, then bashing OSX for not being that is like wanting a spoon, getting a knife and complaining about what a shitty spoon a knife is.
I tried OS X for about the last year and a half on my primary work machine(s) whilst ssh'ing into remote Linux boxes and using Vagrant locally. Finally plopped a dual-booting Xubuntu partition on the drive and I'm happy as a clam. I understand and acknowledge that I'm not the target market for Apple products, but what I fail to understand is why other developers like the Apple ecosystem so much. It would be one thing if I were writing iOS and OS X apps, but usually I'm writing native binaries for Linux servers or at least interpreted code intended to be run on Linux. The OS X development environment for this kind of stuff is plain nutty to me and I've yet to find many people defend it without saying "just use boot-to-Docker or Vagrant or Vagrant with Docker or ssh into a VM in the cloud or an ESX cluster". No one seems to say "yeah, writing C or Go that links in C libs or Python that uses native modules on OS X is a pain, but here's why I prefer that to Linux..."
It's a usability mindset thing. Apple's software is great if you can live within their vision. Microsoft aims at everyone from newbie to an elite power user. Linux, well, you can do anything you want but it's on your head if you screw it up (or it screws itself up).
To view it from a political perspective, it's a scale from authoritarian (Apple) to libertarian (Linux). Those who are used to surviving on their own probably don't appreciate the rules (like putting up with superfluous visual effects).
I switched from Linux to OSX after I found I was spending more time fucking with configs to get simple things like Skype working than I did actually working. Bummer for me, huh?
Fortunately, there was another system out there that satisfied my needs. And I didn't even have to write a rageface blog post about how sucky the one that didn't meet them was.
Arch is clearly the OS of choice for dragon-fighting free thinking Athiest scientists who don't have time for artsy pursuits and their associated mind-numbing animations.
I don't get this kind of posts either, and am not at all sure it's newsworthy. I run minimalistic Linux desktops _all the time_ (even gone as far as setting up a Docker image for one I can instantiate on the fly[1]) and like them for testing and debugging stuff I need to run as native ELF binaries, but OS X has saved me _decades_ of frustration.
I can't really imagine a client describing "I want to be able to replace any part of the system I would like, and it should be easy to replace" as an exceptionally simple requirement and being taken seriously. In fact, I think only some open-source operating systems even come close to that goal.
tl;dr: he did give a chance to OS that clearly and obviously doesn't match his explicitly stated expectations from the get-go and it didn't impress him.
Terrible post IMO. I've been using both OS X and GNU/Linux (Arch) for several years (OS X since 2006, several GNU/Linux distros since ~2000), so I think I can weigh in. I'll quote a few interesting parts.
> Be customisable
Valid reason. But he perfectly knew he was getting a proprietary OS, not Arch.
> because if you follow the Unix philosophy, each component is modular and replaceable
Who told him OS X follows the Unix philosophy? Also I don't understand the obsession with applying the Unix philosophy to everything. Give me a good full-featured browser and email program, keep your Surf (http://surf.suckless.org) and mutt if you want.
> Make it easy to compile, test and run any kind of software I'd like
Yes, like you can do already on OS X since forever. Obviously if you're going to do Linux kernel development OS X is not ideal and I think everybody can agree on that one. But for UNIX/POSIX software it's pretty much the same. You can get GCC from MacPorts and I guess Homebrew too, pretty much any version you want, if you don't like Clang (which is the default compiler in FreeBSD too btw).
> Be transparent in its workings, be easy to understand in principle
100% agreed on this one.
> Should be a separate entity. It should not rely on some third-party service in order to function properly. If I can't access the internet (or choose to airgap the machine eternally), it should be possible to run all of the software I'd like (and to use all of the features I'd like to) without needing access to online services.
I really don't understand this one. This is OS X, not Chrome OS. You don't need an Apple ID to update the OS itself. You can get programs from the internet or your favorite package manager without ever logging in with your Apple ID on the App Store.
> A package manager is useless if it doesn't manage all of the packages on a system
I wouldn't call it "useless", but I guess if you prefer a package manager for everything then MacPorts/Homebrew are not for you.
He then mentions that OS X has a "horrible development environment" without giving any actual reason, and mentions too "filesystem pollution" because OS X separates most GUI tools from the BSD tools (so he considers a logical separation between the BSD subsystem and the rest of the system "pollution". I think it's the opposite).
The post is a series of exaggerations and inaccuracies mixed with actually valid criticism.
yay, another rant into the OS wars. and like all of them, flawed from the outset - this guy is happy with Linux or BSD, and nothing will ever top that.. alas, this is not the final flaw in this article;
swipey bullshit - can be disabled. explore system preferences.
why customise perfection - bullshit with a hint of straw man. OS X is not perfect, i think there are few people that claim that. perfection would preclude any more work on the OS. want GCC? install it. it's not hard. proof,
% uname && gcc --version
Darwin
gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
botched package management - OS X doesn't have a native one, yes. in my experience, they all suck. and for someone that wants to know everything that's going on, i'd be surprised if he didn't build from source for everything.
horrible developer workflow - what? firstly, it's so similar to linux, what is he talking about? i don't know any OS X users that build on a virtual machine, unless they are wishing to replicate the exact running environment of a system. in which case, people do that on linux too.
filesystem pollution - aha! the first almost valid complaint! although it's in a compliment sandwich kind of format - bullshit, valid complaint, more bullshit. System is for OS X internals resources and libraries. Library is common resources for applications. done.
but here it comes, a valid complaint! yes! HFS+ is terrible. apple very nearly did switch to ZFS a long time ago, alas it fell through for some unknown reason. shame. HFS+ is case sensitive, although the default option for Apple is to disable this behaviour. whilst i do not like this, when you consider that they're aiming for windows converts.. well..
hardware - all EFI firmware is proprietary. apple don't have an open-source update tool, but so what? most UEFI motherboards have an auto-updater built into their firmware. good luck finding the source for that.
this guy loves linux. so stick with it. have your hidden partition of OS X on a removable drive (because you can do that) for firmware updates. or use a regular laptop. the article had as much content in as an article titled "i ate a faal curry.. and it was too spicy for me!"
This silly zealot never intended to be objective to begin with.
> I care about feeling the power of a modern operating system
I'd say OS X has this one covered. It could even be said to be the most "modern" OS out there. But of course, however he'd define "modern", it wouldn't be favorable for OS X.
> and being able to build any software I want. I cannot do either with OS X
What can't he build on OS X? I have no idea.
But can he really not live without whatever esoteric thing might not compile on OS X? Especially considering OS X does look nicer, and things do just tend to work..
I used at OS X at work for 2 years and hated it. It's a nightmare for doing real software development on. Now I have a GNU/Linux workstation and things are much better.
I use OSX every day for "real development". I develop in Java and I can deploy the same things from OSX to my Linux (Centos) servers and know they're going to work as expected. In addition to similar environments, I can use real MS Office so that I can actually communicate with the rest of the corporation and have exactly the same formats and such (which is a huge time saver on both ends).
It's clear that OP, just like you, are not in the market for OS X (I am not even talking about windows, or probably ant proprietary OS).
For me, OS X is the best option, I do not need to deal with Linux intricate setup, but I can develop software I want to develop. OS X, in my case, is developer friendly, just enough so I can do what I want, and casually friendly enough so I do not need to worry about some (broken) things, I do not want to be in my way (FileVault, Time Machine, printing[1] and any other nice feature for everyday normal guy[2] (mail/picture/pdf annotation, continuity, Photo/Video editors)).
I want to stress, that I know that many equivalent software and features exist in Linux world, though usually it is much more troublesome to use. Not everyone is (or want to be) Linux guru, rockstar hacker or simply willing to solve bugs or errors for and at uncertain time.
Simply, Linux vs OS X is a flame war without any point. Everyone has a subjective opinion and discussion must end there.
It's a nightmare for doing real software development on.
For you. I have programmed C, C++, Prolog, Java, Go, and Haskell on OS X since 2007 without any problems. If you go to any developer conference, you'll see that a sizeable chunk of the audience agrees.
Former 9 year linux only user here, recently switched to using OS X (mostly) for development. I live in a terminal, always have, and unless I need something specific to linux that will not work on a VM, apart from the mac fancy button crap, I hardly notice a difference. To each his own I guess and at least he stuck with it for a week.
Also while most of OS X is closed source, they do use some open source tools:
https://www.apple.com/opensource/
but if you want a 100% open system, obviously OS X is not for you.
>Be customisable. I want to be able to replace any part of the system I would like
So you're going to use a closed-source OS that's notorious for enforcing homogeneity wherever possible?
>Be transparent in its workings
Again, so you're going to use a closed-source OS?
He then complains about a lot of optional features that can be turned off in a few minutes (Gestures, SIP) and have clear use cases for the remaining 99% of the system's users. His complaints about SIP are particularly bizarre. It's obvious what the utility is, it's trivial to disable, and yet it's "the sort of decision that is endemic to a system which is designed to lock you into a software prison"?