My only complaint is that if the mac were truly a developer-centric device, I wouldn't need homebrew to install software. It should just be in the apple store for me to download.
I think that'd be a disservice to both developers and non-developers alike. It'd clutter the app store and force developers to use the app store and whatever approval process they decide.
I think it would be cumbersome to say the least...
* Would you have to install through the app store gui?
* How would it manage dependency chains and conflicts (system ruby vs local ruby)?
* How about explicit paths or build parameters?
* How would it handle different shells?
I know other operating systems do this but I've never liked it... I guess I just don't mind installing and managing command line/developer tools from a terminal window ¯\_(ツ)_/¯
And, with all that said, I have a quite a bit of negative sentiment towards Apple lately for their hardware and platform choices. So I would still say, it's not a developer-centric platform (the Mac)...
> Would you have to install through the app store gui?
Possibly or not. Ubuntu gives me both a gui and a command line option for apt. Thinking about being able to type "app-store install openssh" gives me goosebumps.
> How would it manage dependency chains and conflicts (system ruby vs local ruby)?
First, that example is a problem for ruby, not for the package manager. Second, software can be in the store statically compiled. Third, apt handles dep management really well. Perhaps that's something apple can learn from?
> How about explicit paths or build parameters?
This is a solved problem in ubuntu.
> How would it handle different shells?
Again, this is a solved problem.
> So I would still say, it's not a developer-centric platform (the Mac)
The question I have is if we deploy on linux, why are we using a mac to develop software on?
As someone who lives on linux and has to touch OSX for things like building for iOS devices, I find it really odd that OSX doesnt just solve these problems like all the FOSS distros do. It's insanely odd that Apple gives me a bash shell which is years out of date, and it feels hacky to just use what i want. I know Propietary and free software kinda have a hard time co-existing on operating systems built on free or mostly free software, but if OSX is half free software and its posix compliant, Its hard to believe that apple couldn't give you both propietary software and an easy package system for developers easily.
The sad thing about linux is that as much as I love it and its ecosystem, i cant recommend it to anyone who wants things to "just work":
- X and wayland crash on me all the time on this laptop because of its HiDPI screen and my kinda-works-but-is-wonky fixes to work with multiple monitors.
- Hardware support is the best its ever been, but graphics cards, wifi, exotic devices, laptop power states and embedded devices can still be a pain because manufacturers simply dont care.
- desktop applications can still be a little glitchy, Web browsers work fine, as do first party DE apps, but the more you get away from things which arent in the big name gui toolkits and have custom controls and behaviour, the more problems you seem to run in.
But aside from all that im happy here in ubuntu. When your software library feels as easy as picking a book from a shelf and 90% of the system updates by the update manager and says "hey restart when you feel like it" Im quite comfortable.
Apple wants to use open source code, but doesn't want to make their proprietary code open or to license patents to anyone who wants to build off of their code.
Ultimately apple will sell developer devices at the price point of their Mac pro devices that come with all the approved tech you are allowed to use to build end user services/apps. In addition to the high purchase price you will have to sign up for a developer account and pay annually.
Everyone else will buy consumer oriented devices that are as open as the ipad.
It's not a bicycle for the mind its a train and if you dress appropriately and pay your fee you may set up a concession stand on the route.
* Would you have to install through the app store gui?
With various linux package management systems you have multiple interfaces to the same same system thus you can at one moment use the gui to install foo and having closed that you can fire up your favorite terminal and run install bar.
* It'd clutter the app store and force developers to use the app store and whatever approval process they decide.
It also has a concept that neither Microsoft Apple nor Google has opted to pick up on because they desire control of their platform and to extract a substantial tax on all software sold on same via such control... sources also called repositories.
Linux package management systems draw from not a single centrally managed source but a user editable list of sources. Each source is free to run with their own set of requirements. There is nothing requiring a hypothetical dev tools source from being any more restrictive than whomever maintains the source used by homebrew.
Further packages can actually contain sources. It would be entirely trivial to package up a source of dev tools as a package and allow people to install that via the front end of their choice.
* How would it handle different shells?
Different shells is probably the simplest answer the arguments to a hypothetical install command would be simple text strings. If the argument command includes characters that the shell considers special characters they would have be escaped or wrapped in quotes like any other combo of shell and cli tool. Generally most package names just don't include characters like ([])$\~`'" in the name and most commands don't require any particular special attention to shell escapes.
* How would it manage dependency chains and conflicts (system ruby vs local ruby)?
* How about explicit paths or build parameters?
These are implementation details that don't go away by exiling developer tooling to officially unsupported channels. For example language specific package managers will probably remain a thing but it would be vastly easier if you could do officalmacpackage install developerrepo then officialmacpackage install cargo|node|whateverfloatsyourboat then use that to deal with whatever.
All your concerns are basically lack of experience with more reasonable systems there are zero good reasons not to do this. There are literally no downsides other than the work required for an official solution. However it seems vastly unlikely that we will ever see such a thing.
The logical endpoint of Apple's vision seems to be 2 classes of device. One with a very high introductory price and annual maintenance that allows you to create and run whatever you like so long as such software is distributed via blessed channels and you tithe the required 30% to apple and more reasonably priced but still expensive devices that only allow you to consume software.
The former will come with xcode and technology to deal with apple approved languages. You will be able to play with other tech on your local devices but it wont be able to be distributed to end users.
It's not a developer-centric OS and it's not supposed to be. But, that doesn't change the fact that a lot of developers prefer it over other OSs. I prefer because it has been more reliable for me than Windows. It's not right for everyone though and I completely understand anyone who prefers Windows or Linux.
I could see an argument that Apple should make a tool like Homebrew themselves or official support Homebrew development (maybe they do, haven't looked), but including it in the app store would just be confusing. Plus, I can type 'brew install <package>' far faster than I could type <package> into the search bar and make the necessary clicks to install.
That same argument extends to the users of Homebrew who are overflowing with cash from startup get-rich moments: please consider funding (if you have $1/mo or more to spare) the Homebrew patreon, which currently lists a total of 285 paying users out of the million developers that depend on it to earn a paycheck every month.
I've been using homebrew for years and have never heard of this. Maybe the reason there's only 285 patrons is that the patreon page has not been promoted in any way that I can remember?
Can’t say I blame them for not promoting it through the only way any current user would see it: inside the brew command line tool. I can see the angry commenters now:
“How dare they inject advertising into a critical command line tool that I use to get paid money!”
“It’s inexcusable to promote your own financial success when someone types brew upgrade”
“No doubt they’re blowing the money on burrito delivery in SOMA”
“I’ve been a $1 Patreon since they launched three months ago and they haven’t implemented my favorite wishlist feature!”
“If they can’t do it for free, they should give up and shut down and let someone fork it.”
> ... or official support Homebrew development ...
From memory of speaking with an ex senior-Apple-dev-person, Apple doesn't support any 3rd party Open Source projects nor Communities. eg Homebrew, or even the software they bundle in their OS
Apple will never distribute gpl v3 software, this is the reason bash is ancient on mac and why samba is gone.
Any license with a Patent clause or Tivoization clause will be verboden. As an example you will never get something that depends on Postgres in the Apple store.