One of the major benefits of macOS has been that everyone who uses it has a consistent experience. Some people will use more specialized applications or tools, but the base has been very consistent.
Homebrew has made things even easier and has been adopted as the one right way to install things in a lot of projects and companies. And the fact that it is a rolling release package manager means you can always get the latest and greatest or use homebrew/versions to stick with an LTS version.
I have always found installs of the same Linux distro by different people to be almost incompatible, let alone installs of different distros. Different hardware, different desktop environments, different applications and configurations. On the one hand everyone can have a tailor made experience, but it makes it hard to debug or come up with common configurations and instructions.
Elementary is making some simple and familiar choices that make it easier for everyone to start at the same place. It looks and feels good, but is different enough that I can't just switch without feeling all the rough edges.
If developers are serious about migrating to a linux distro and PC hardware, I think a hybrid rolling release for devtools and versioned releases of the base system might be needed to capture a lot of the success of macOS. I'm not even sure if that's really possible.
Homebrew barely works. I dread messing with it. It's not Homebrew's fault: with Macs the stars have to align to get things to work much of the time. I find that the origin OS for most of my libraries (Linux/Debian) is much more reliable than a Mac. I had some issues switching away from a mac at first, but I got over them.
Brew works great most of the times and it is indeed very human friendly. The problem sometimes arises when you need to install something a little bit more exotic than usual (eg. graph-tool was my last case) in that case lot of things can go wrong.
Yeah as long as you're using what everyone else is using and stay "inside the lines" it's OK. But step off into special territory, you're better off on Linux.
Brew recently started refusing to install anything if your xcode is out of date, and forces you to wait for a "brew update" if it hasn't updated in 24 hours. It's actually hideously user-unfriendly, but it probably saves the devs a lot of stupid github issues.
It's working for me but I would love to have an example of breakage to take to my IT as another reason they should allow the company machines to be updated.
The only time I remember having a problem with Homebrew is in the summer where I'll run some beta version of the new macOS on a testing machine while trying to use Homebrew which does not support the beta.
Other than that it never fails for me, and I install a boat load of tools through Homebrew. I even install as much of my GUI tools as possible using brew cask.
Homebrew is a "package manager" that has worse dependency management than a ham sandwich and a community that reacts to criticism with "don't talk to us, you're being negative".
Homebrew was built as a source-only package manager, with the most basic of dependency management systems.
Now they try to default to binary distribution but the dependency management basically works up until compilation time only.
So for example, the Percona Toolkit package has a dependency on `:mysql` which can be provided by the Oracle mysql package, Persona Server package, or MariaDB package.
But binary packages don't really do dependencies like that - they hard-code to whatever they were built against.
The end result is you can't realistically have percona server and percona toolkit installed via homebrew, without also having the oracle mysql package installed and constantly link/unlink-ing between percona server and oracle mysql whenever you need to update percona toolkit.
Do you know what the Homebrew response to this issue was?
Close the issues, remove/disable the binary package of percona-toolkit, and force all users to compile the package from source, every time they install/upgrade it.
To even put Homebrew in the same category of tools as Apt/Dpkg or Yum/RPM is a joke.
Homebrew has made things even easier and has been adopted as the one right way to install things in a lot of projects and companies. And the fact that it is a rolling release package manager means you can always get the latest and greatest or use homebrew/versions to stick with an LTS version.
I have always found installs of the same Linux distro by different people to be almost incompatible, let alone installs of different distros. Different hardware, different desktop environments, different applications and configurations. On the one hand everyone can have a tailor made experience, but it makes it hard to debug or come up with common configurations and instructions.
Elementary is making some simple and familiar choices that make it easier for everyone to start at the same place. It looks and feels good, but is different enough that I can't just switch without feeling all the rough edges.
If developers are serious about migrating to a linux distro and PC hardware, I think a hybrid rolling release for devtools and versioned releases of the base system might be needed to capture a lot of the success of macOS. I'm not even sure if that's really possible.