Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's such a minor contribution that I always get a good laugh watching people praise Apple for this. Microsoft, for all the evil they do, contributes millions of SLOC to open source along with generous funding for various non-selfish projects. Facebook, for all the societal ills they cause, also develops multiple projects in public even when it would make more sense to withhold them. Apple, for all their exploitation of the developer community, flips a switch on the Macbook that enables parity with traditional x86 BIOS functionality, and people start partying in the street crying "this is for us!"

And since then, it's been radio silence from Cupertino HQ. Nobody ever confirmed why they did this. Was it serendipity or loving compassion? Nobody can say for sure, but if it's the latter then Apple seems to be very conservative with their blessings upon the community.



Apple contributes quite a lot to open source (WebKit, llvm, clang in particular but there are other high volume projects), though not so much in the Linux kernel. There are some patches by Apple in Linux though and they've made quite a lot of strides in expediting postbacks internally over the last few years.

I left Apple partly over their poor oss policies, but even I won't sign off on the idea that they don't do any at all.


- WebKit is a co-opted KDE project that was open source before Apple forked it (also LGPL, it would be illegal for Apple to distribute WebKit if it wasn't GPL too)

- LLVM was also open source before Apple bought the core developers

- If Clang wasn't open source then literally nobody would ever use it

There are definitely a few spotty places where Apple tosses up a CUPS patch for Linux or fixes a cross-platform WebKit bug. Relative to the rest of FAANG, though, Apple is unprecedented in their posturing against open source.


I didn't say (or at least didn't mean to imply) that any of those were originated at apple, but that they are high volume ongoing contributions to open source from apple and they could do less on them.

I also don't know why you think apple would particularly care if "no one else used clang." Their goal with developing it was clearly also not exactly altruistic but their contribution of it into open source didn't really benefit them much in the short term in any way that isn't true of other major open source work at other FAANG. Never mind swift, which has basically failed to benefit apple much at all from being open sourced. But if clang were closed lots of people would still use it - everyone developing for macs and iOS. That's probably all that matters to the brass.

In the end I agree that apple is much worse than other FAANG. That is, like I said, part of why I left a pretty nice job there after many years of frustration at the pace of change.

But it's hard to pin down a position on all this that applies to all of apple. Some parts are very friendly (compilers), some parts are obligate mildly friendly (core Darwin/xnu and WebKit), some parts are bristling for change, but while change has been slow contributions have been ramping up as processes change (all of services, the growth area of the company). In the 2 years before I left it went from months to approve a minor patch to OSS to more like a week, with certain internal projects having regular unreviewed postback rights to designated high volume OSS projects and official champions of upstream efforts.

Where there seemed to be zero progress at all was personal projects, where apple has a catch-22 process that never progresses while insisting that you can't do it outside that process (regardless of the legality of that assertion).


CUPS was maintained by one single guy for several years.


To be fair, Apple actively participates in a long long list of open source projects, to give you some comparisons between Apple vs Microsoft -

* MS still refuses to open source its windows kernel to the public. Apple has its kernel accessible by the entire world.

* MS still refuses to open source its c++ compiler. Apple has swift built by the open source community and there are llvm/clang.

* MS still refuses to open source its sql server, when Apple has FoundationDB for the world and actively contributing to Apache Cassandra.

We are talking about a company that for many many years called open source a cancer.


1. The XNU kernel isn't novel, and isn't used by anyone other than Apple. Open-sourcing the NT kernel would effectively kill the project, since everyone would port the Win32 bindings to Linux (same thing would happen if Apple open-sourced their userland software)

2. Apple didn't get to choose whether they could make LLVM/Clang open source. They were forced to release it under GPL, and if you actually look at the license for those projects you'll see that Apple's contributions are dual-licensed.

3. What chance would FoundationDB have if it wasn't OSS? Why would Apple maintain a stale, internal fork of Apache Cassandra?


Nether llvm nor clang are GPL, dual licensed or otherwise. They're Apache 2.0[1] (or formerly a quasi-MIT/X11 license[2]), as is swift[3].

The binaries of the compilers they release with the platform are also built with internal forks that have some differences with the public llvm/clang/swift trees and that wouldn't be possible with gpl.

[1] https://github.com/llvm/llvm-project/blob/main/llvm/LICENSE....

[2] https://github.com/llvm/llvm-project/blob/7555c589af006c9c4d...

[3] https://github.com/apple/swift/blob/main/LICENSE.txt


1. NT kernel is neither novel nor used by anyone other than MS. Open sourcing the NT kernel would effectively kill the project as its security issues would be fully exploited with wide range impacts on literally everyone.

2. LLVM/Clang are not GPL licensed, they are apache 2.0 licensed. Open sourcing contribution is just open source contribution, it is not about whether you get to choose the license or not.

3. Well, SQL Server is a pretty good demonstration that proprietary database software can survive for decades.


Not true. Their list is short, their definition of open source is technically in name. You're deliberately pretending MS' current form doesn't exist.


>Was it serendipity or loving compassion?

Yes.

Or, more accurately, it's historical inertia. Macs are "computers", iPhones and iPads are "devices".

The arguments that Cupertino used to defend against Epic in court were roughly that Macs were inherently less secure than their locked-down devices, and that this was a deliberate security trade-off that they were not willing to allow iOS users to make. In other words, something you carry around in your pocket is such a potent malware and spyware vector that users cannot be trusted to decide for themselves.

I personally think this is a half-truth. If Apple had started with portable devices first and then scaled up to the Mac, rather than them starting with PCs[0], they absolutely would have tried to sell it locked-down. Both the tech and the impetus to lock down the iPhone did not exist when the Mac was first made, and the iPad is evidence of this. While there are legitimate user-interface reasons for iPads not running macOS, there is no argument for why they can't have the same security policy as a Mac[1]. But it was borne from iOS[2] and intended to displace personal computers, and thus inherits all of the iPhone's baggage, including the App Store lockout with no owner override.

Since Macs were always open, Apple's management can't insist on locking the system down without pushback both internal and external. Software developers expect to be able to ship their own software ecosystems and users expect to be able to have full control over their Macs. Locking down the Mac makes it a worse Mac, because the product is defined by it's openness.

[0] The Mac and everything that came before it.

[1] Nor is there an argument for why Apple TV can't have an owner override, either. It's even less capable of spying on you than your Mac!

[2] This is actually backwards; the iPad came first as a tablet tech demo and then it's tech lifted to make the iPod Phone work. But then Apple backported the finished phone OS onto the iPad, which is where all the iPhone-isms come from.


> Locking down the Mac makes it a worse Mac, because the product is defined by it's openness.

s/mac/computer and you're right on the money. All computers are defined by their openness - even Apple products. A basic Turing-capable machine should have the capability to copy arbitrary software to-and-from the memory of the device; iOS doesn't allow this. Now, I've heard every philosophical waxing about "product segmentation" and "muh iPhone security", and all of that is fine. Nobody has to leave the App Store if they don't want to. But Apple's limitation of iPhone capabilities are entirely arbitrary, and there is quite literally nothing that stops them from adding a little toggle-button in iPhone settings that says "Reduced Security Mode" or something. Nothing besides greed.

Apple's ideal of a smartphone is so far-removed from the ideals of general-purpose computing that they need to be litigated into submission, just for common-sense upgrades like a universal charger or upgrading to USB-3.0. They chose this state of affairs for themselves.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: