1. 17
    1. 9

      I wrote this! But I think it’s already been discussed here?

      1. 1

        I thought so too, but I checked other stories on the same domain and I couldn’t find it. It might be a victim of corporate rebranding or something.

        1. 1

          It was discussed in the comments in the interview with me.

      2. 8

        The GPL has failed at almost everything it was intended to do, but I feel like it’s still got some use not for any technical or legal reason, but simply because corporate legal departments are terrified of it.

        1. 15

          Linus likes GPLv2, and Linux completely changed the OS and driver landscape

          It’s not perfect (nvidia), but it’s way better than what we had in the 90’s before Linux, and what we had before GNU

          So I don’t see how anyone can proclaim it a failure. Certainly there are criticisms to be made, and it didn’t achieve all of its goals. But that’s pretty much to be expected given the relatively utopian goals and framing, and it doesn’t count as failure IMO


          IMO the a primary “failure” of F/OSS operating systems is actually one that was unanticipated – Intel built another closed-source OS beneath the open source one.

          So you don’t really control your machine. You don’t have full transparency or trust.

          And one of those OSes is based on Minix, which is not GPL! https://github.com/minix3/minix/blob/master/LICENSE

          I think it is probably heavily forked too, and the resulting changes don’t have to be upstreamed

          Are we going to argue that it’s the failure of Minix’s license then?

          That’s one issue regarding “freedom” at play, but IMO most of them are simply orthogonal to the GPL or BSD or whatever. Basically a whole lot of closed source hardware arose beneath the open source software, and a lot of hardware is like software these days.

          We kind of have half of a “free” OS, which is better than zero. Although certainly you can build 100% free OSes with different hardware, and people do, and that should be counted as a big success too.


          Really the forces at work are more powerful than the GPL. The GPL doesn’t substantially change the incentives/economics of making software, but no F/OSS license does. So I don’t think it’s a failure – it almost certainly improved “freedom” overall

          I also think it is interesting that Apple is OK with GPLv2 but not GPLv3 – at the very least it can be counted as a success to know where the “line” is, where corporate legal departments start to advise the company to avoid code or rebuild code

          1. 4

            That’s kind of how I use the AGPL. When I want to work in public and I’m not sure what I ultimately want to do with a thing, I’ll push it online under the AGPL. Generally, I include a note in the README or COPYING file saying “if there’s some part of this project you’d like to reuse under different terms, contact me.”

            It’s a very nice filter, and it’s not hard for a solo developer or a very small group to change to something more permissive later.

            1. 2

              I kind of disagree: I think the GPL has succeeded at almost everything it was intended to do, but no one realized at the time that the things it was intended to do were nowhere near sufficient for a functional and sustainable Free Software movement.

            2. 7

              One of the nice things about Visual Studio is that it uses the same parser and semantic analyzer for syntax highlighting and error reporting as it does for code generation, allowing for much better feedback than you get from editors that completely separate the two

              Funnily enough right around this time they moved to explicitly not using the same parser: https://devblogs.microsoft.com/cppblog/rebuilding-intellisense/

              1. 6

                The failure of the GPL was confidently declared back in 2009, and yet today it’s more significant and important than ever. In an era of app store walled gardens where the stores can pull the plug on any apps they compete with (or just don’t like), and cloud services can just offer hosted versions of any popular backend services, and popular open source projects get literally no developer time or money while all but forcing their maintainers to contribute unpaid volunteer effort–GPL and especially AGPL are receiving more interest than ever before.

                1. 6

                  How does GPL help with those? The article specifically mentions how those such scenarios aren’t assisted by the GPL, which is one of it’s shortcomings.

                2. 4

                  Licensing gets discussed.

                  Richard has always been “crazy like a fox”. The GPL has always read as a license prohibiting business adoption, with concerns rising as the size of the business grows. Not too much in debate.

                  Will you be writing a follow-up on why BSD licensing is failing?

                  1. 4

                    Hm, I don’t fully agree with the article. I agree with its reading of a lot of things and the dynamics it explains are very much true. However, I don’t think they fundamentally flow out of the GPL, which I think is a good license, but ill-governed by the FSF and Stallman. It’s just not the license.

                    What I don’t agree with is particularly the view that company compliance with the GPL is too hard. It’s actually easy, if you have a willing legal department. But for those, the GPL needs to be explained as one of the available tools, which it often isn’t.

                    I have two experiences with the GPL that contradict parts of those items:

                    • What I see the GPL to be used for is open joint ventures between companies. It’s a good rule-set for code-sharing that binds all parties to not diverge too hard “in secret”.
                    • The GPL is a great license for people who are user-focused and are indeed not writing code predominantly for end-users. There’s a huge, non-commercial, GPL ecosystem which IMHO should be appreciated on its own right.

                    What I dislike - and the article works that out very well - is that the GPL has pretty often been used by companies to poison pill their codebase for commercial use. This grows frustration with it.

                    I think though it is still good to have a license that has the end-user in mind and has quite a bit of mindshare and I respect the GPL for that.

                    1. 5

                      The GPL always oozed this uncanny sense of entitlement to me, it feels so antisocial. I’ve always been weary of people employing pre-emptive mechanical systems to “force good behavior” because they simply do not trust their fellow human being. Ironically, it’s created a situation where, the open source movement is massive, it did take over - using permissive licenses like MIT and BSD - and not due to “forcing everyone to play nice” with the GPL. People, even companies simply gave back, without being legally required to. But this isn’t good enough for the GPL crowd, they’re still upset that people are sharing code “without the protection of the GPL”, which has thoroughly proved it’s uselessness. I busted a gut when Stallman decried that using LLDB from Emacs was “an attack on freedom”. I am not shy to say the FSF is a literal cult that believes software itself deserves more rights than the humans who use them, they are utterly oblivious to how our actual human society functions and only see bad people everywhere.

                      1. 20

                        If the FSF really believed in freedom for end users, they would have spent more time working on end-user programming systems (no, sorry, Guile is not a good end-user programming environment, Scheme is not the language for the masses). The economic benefits to companies of having a second source are clear, but for end users a big blob of GNU C code is no more open than a Microsoft product because it’s simply too hard to make changes.

                        1. 11

                          I’ve read Free as in Freedom cover-to-cover at least twice. I’m thoroughly convinced the entire FSF movement is simply Stallman trying to re-create the old MIT lab. Not the spirit of it; after all, it’s hard to capture the spirit of a small tight-knit community with a global movement. But because Stallman is genuinely nostalgic for the days when he hacked on a PDP-11 with his collogues, and this is the only solution he could come up with to try and relive it. I feel like that’s why he’s so prone to tantrums over seemingly nothing, because he’s trying to re-create his old home out of a political movement and the cognitive dissonance gets to him. But I feel like this explains the FSF’s total disregard for modern technology and methodology, they romanticize these “good old MIT days” as told by St. IGNUtius, and try to force it into existence with the iconography of the technology of the day, like a cargo cult. Honestly, I’m shocked something like Mastodon exists, even if that also feels like it misses the point.

                          I don’t know if I’m just overly skeptical and making up strawmen here. I’m sure I am at some capacity. But the FSF really does just give me this cargo cult feeling, it feels so disconnected and backwards. We’ve had similar discussions on Lobste.rs before about how older projects are becoming more anti-social by failing to adapt to newer communications standards for their teams, and this feels like a continuation of that.

                          1. 14

                            I don’t think it’s off base to assume a lot of the FSF’s problems come from conflating users and developers - they were one in the same in the AI Lab, after all.

                            1. 11

                              It decays from there to conflating the set of users with the set of people who either are developers or can afford to pay developers. The latter means that, in most cases, the rights given by the GPL are reserved for big companies and rich people.

                              1. 6

                                People routinely criticise the free software movement’s ideology as being irrelevant to users who are not developers. This seems to be missing the point. I don’t know how to work on a mobile phone OS, but I still benefit from the freedom to tinker indirectly because other people in the same boat as me do know how to work on a mobile phone OS. Of course I only benefit because I’ve forked out for a phone that lets me install another OS; but if Linux were GPL3 everyone with an Android phone would be able to do that. This specific thing bothers me a lot, because there are functioning phones in landfill that would not be there if their owners had been able to flash an OS that is still updated.

                                1. 6

                                  I think it more likely that if Linux were GPL3 then Android just wouldn’t use it.

                                2. 1

                                  I think that it’a absolutely important for users to be developers.

                                  Users who do not develop are at the mercy of developers.

                                  1. 2

                                    That’s a bit like saying that homeowners that don’t learn how to rewire their entire house are at the mercy of electricians. It’s trivially true but we have incentives in place to ensure that electricians do a safe job at a reasonable price without maliciously electrocuting people.

                                3. 6

                                  Mastodon isn’t a GNU project or related to the FSF in any way, so not sure why it surprises you

                                  1. 4

                                    I had an itch when you said Mastodon wasn’t a GNU project so I did a bit of a history dog. You are correct. GNU Social used a different federation protocol called OStatus. OStatus was, apparently, quite frustrating to work with so a group of people came up with ActivityPub and took it through the W3C process. Then GNU Social adopted ActivityPub alongside OStatus. Weeeeee…

                                    1. 8

                                      Actually exactly the same people came up with OStatus and ActivityPub (and OMB before either of those). GNU Social never really existed. It’s just that after the maintainers got bored of maintaining StatusNet (nee Laconica) and moved on to pump.io and ActivityPub some of the users renamed it as GNU Social and then made a little space in GNU to keep it on life support, but the project was effectively dead by then.

                                      OStatus was actually much more efficient and standard for the use cases that are popular on Mastodon. ActivityPump/ActivityPub were created in order to add support for private sharing and other things which are used but not quite so much as public microblogging still is.

                                4. 5

                                  I strongly believe that the myopic focus on IP trickery has lead to an actual decrease in the prevalence of the FSF’s nominal ideal end state. We are not any freer from arbitrary nonsense today than we were in the 80s and computer systems are much more difficult to reason about.

                                  1. 4

                                    An irony to your remark about Guile is that if Emacs were written as a small amount of C + Guile instead of Elisp, it would be closer to the Lisp machine environment it is inspired by, which was reputationally a very good end-user programming environment for the era. Or maybe Climacs, if it weren’t defunct. In any event, that’s not what we have. Historical reasons, and whatnot.

                                  2. 12

                                    I’m not too worried about my fellow human being, but the big corporations have shown time and time again that they are perfectly happy to take a bunch of open source code, build it into a product, then use that product to violate the rights of the end user, depriving them even of basic freedoms to repair or reinstall software on the device.

                                    1. 9

                                      I’ve always been weary of people employing pre-emptive mechanical systems to “force good behavior” because they simply do not trust their fellow human being.

                                      so, like, uh, laws? people consistently have to be forced into good behaviour compliance. the only reason our society barely works is because of milleniums of constant enforcement of this under various more-or-less enjoyable frameworks.

                                      1. 9

                                        This is not how laws work and most societies that try to make laws work like this fail. Making murder illegal does not prevent murders, most people do not commit murder because they think it is a bad idea. Murder is illegal so that there is a framework to deal with the outliers who disagree. Laws are based on a society’s consensus of acceptable behaviour. When laws diverge from this, you see widespread illegal behaviour and eventually a collapse of the rule of law.

                                        1. 4

                                          Laws definitely do change norms of behavior though. They just don’t always do so; and it’s clear that the effectiveness of enforcement is a part of how much norms of behavior are changed.

                                          1. 2

                                            ?!?!?! What about taxes? People pay them not because they think this is a good idea, but because they are required to do so

                                            1. 10

                                              There are lots of ways to avoid taxes. It’s quite easy to move to somewhere that has no taxes, though typically the lack of any of the infrastructure that taxes pay for makes people disregard this as a choice.

                                              In democratic societies, most candidates have their tax and spending plans in manifestos, you can always vote for the candidate who promises to cut all taxes and reduce public spending to zero. Most people don’t, the consensus view is that taxes are a good idea.

                                              I don’t know where you live, but polling before the last election here in the UK said said that around 70% of the population would rather see tax increases than reductions in public spending.

                                            2. 0

                                              A minor quibble - in both English and Scots law, murder is not illegal.

                                                1. 1

                                                  Note that is says “unlawfully kills”, not “illegally kills”.

                                                  The former means in violation of (Common) Law, the latter in violation of a Statute. Hence the “minor quibble”.

                                                  1. 2

                                                    What is your source for believing in this distinction? They are synonymous and not used as terms of art to make that distinction in legal writing.

                                                2. 3

                                                  I’d like you to expand on that, because a cursory googling suggests that it in fact is.

                                                  1. 2

                                                    Murder is unlawful, not illegal. i.e. it is contrary to Law, not to Statute. What Statute sets are the various penalties for murder and manslaughter.

                                                    It is a technical difference, with no overall effect - one is still imprisoned when convicted of murder.

                                                    Hence the “minor quibble”.

                                                    1. 1

                                                      Ah, I suspected it was a common law/staturary law quibble.

                                                  2. 2

                                                    In regular English, illegal and unlawful are synonyms. Since David wasn’t speaking in British legalese, he didn’t say anything incorrect about English and Scots law.

                                                    1. 2

                                                      It is not legalese, but is in the similar class to the common use of referring to say apes as opposed to people, despite the fact that man is an ape.

                                                      For most purposes illegal vs unlawful is a distinction without a difference, but “technically correct”.

                                                      It is something one occasionally runs in to when talking to / taking advice from a solicitor, barrister or advocate, when they’re conversing with one in English, rather than “legalese”.

                                                      It is useful to know for pub quizzes. Again, hence “minor quibble”.

                                                      Anyway enough of that, it was simply intended as an amusing interjection.

                                                3. 2

                                                  I’m fairly disappointed in this comment, it comes off as impulsive. Yes, laws exist. Licenses exist, too. No, not just the GPL, many lawfully-enforced licenses exist. That’s not my point. I’m not asking people not to actively harm each other, that’s what laws are for. I’m saying the GPL is over-reaching to the point of actively distrusting people before they can even prove their willingness to act in a way that’s beneficial for society. It is, in it’s very conduct, an anti-social statement, declaring to the world that one believes they must be forced to publish all modifications to their project, because the author inherently is distrusting. It’s rather unsettling. Laws exist, so do governments that make too many of them.

                                                  1. 10

                                                    they must be forced to publish all modifications to their project,

                                                    No they won’t? You just need to provide the source code (or offer to provide it) if you distribute the binary to someone. This is such a reasonable requirement that I can scarcely believe that someone can argue against it in good faith.

                                                    Here’s an example of the kind of problem it prevents: Apple distributes a modified curl binary that is secretly more lax in checking TLS cert validity. But there’s no way to check exactly what they did because they aren’t obligated to, and don’t, provide the modified sources. This is actively user- and security-hostile. https://daniel.haxx.se/blog/2024/03/08/the-apple-curl-security-incident-12604/

                                                    1. 1

                                                      I won’t claim to be too familiar with the requirements of GPL, but I’m fairly certain, it not only includes the availability of the source code, but also instructions and means to roll your own update, to what ever you have purchased that includes that modified curl binary.

                                                      So if Apple includes that modified curl in the base system of iOS, for instance, they would need to provide you with instructions and means to change the version being used by your devices iOS installation.

                                                      I won’t go into if that’s reasonable or not, but it’s easy to imagine, that that’s a lot more complicated to facilitate, than just providing you with the modified source, dumped on some CDN. Especially, when you need to ensure that the systems security is not compromised by any unauthorized modifications.

                                                      1. 3

                                                        curl isn’t GPL-licensed so this is kind of hypothetical.

                                                        I won’t claim to be too familiar with the requirements of GPL, but I’m fairly certain, it not only includes the availability of the source code, but also instructions and means to roll your own update, to what ever you have purchased that includes that modified curl binary.

                                                        Sort of – the way it works is:

                                                        The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.

                                                        In my experience, these requirements aren’t too hard to circumvent for practical values of “making modifications” though. Probably the most hilarious example I’ve seen (I don’t know if it ever stood in court, but there was some confidene that it would) was simply not including any “scripts to control the installation of the program” in the first place. Instead, if you purchased the “enhanced support” package or whatever, among other things, you got a long PDF file with a table that said what had to be copied and where.

                                                        The argument was that the program simply required some manual set-up, like a lot of programs do. No part of the source code was being withheld. Pile up enough of these obfuscation measures and someone’s going to pay up eventually.

                                                4. 6

                                                  Well FSF sure has cultish vibes, but GPL is a license that is still used a ton (Linux) and it for sure contributed to a movement and a discussion around what digital rights individuals should have over what they own. Bsd and mit licenses have contributed too, but saying it’s only them is disingenuous.

                                                  Personally I’m quite q fan of the EUPL, which seems to be a mixture of AGPL and LGPL that remains more enforceable and grounded in eu law (at least one would hope so).

                                                  1. 1

                                                    GPL in Linux’s case is more for the GPL’s real-world use case - it’s used to protect a business. Let’s not forget that software and licensing is just as much a social phenomena as it is a technical one, perhaps even moreso. Linux is at an especially poignant status as an extremely valuable technology used as the foundation for most business, it needs something to legally protect it, whether that’s GPL, an education-only license, being outright proprietary - as long as nobody can take it, make private changes to it and then try to lock people in with their unique version ala Oracle. In that sense, you can say the GPL is doing what it’s supposed to, but not because Linux is the rule, it’s the exception. Most software, most GPL’d software at that, is niche and unprofitable, either it’s a simple application or a library that nobody would even know is being used by a business and has no business being GPL in the first place.

                                                    1. 8

                                                      I see where you’re coming from but… Linux is about as unprofitable as it gets, too. That’s why its development model has settled into this “corporate commons” model, where it’s primarily being developed by companies which have a mutual interest in sharing what, to them, is highly unproductive software infrastructure cost.

                                                      It’s services (either software, as in what we call SaaS, or “corporateware”, for lack of a better term, i.e. support, consulting etc.) or hardware running Linux that are profitable. I’m using hardware pretty broadly, too – I don’t mean just e.g. Intel or Samsung, who are selling hardware that’s literally running Linux, but also e.g. Analog Devices, who sell hardware that goes into devices running Linux. Both the hardware and the software are usually proprietary (or really unprofitable :-) ).

                                                      There was a time when e.g. NetBSD would’ve been a reasonably safe bet, too. There weren’t too many vendors trying to lock their customers in with their NetBSD-based Windows CE alternatives.

                                                      I do remember a bunch of BSD-running hardware that ran unpublished code. That sucked but the GPL isn’t magical upstream dust, either. Most of the Linux hardware I’ve touched or worked on might as well have been closed-source. 90% of the time you get a frankenkernel and source packages for whatever gets on the rootfs. Even if you can turn that into a viable development environment, it’s not like you can load your code onto the device and run it. In practical terms it’s about as open as if it were running QNX.

                                                      1. 3

                                                        Even if you can turn that into a viable development environment, it’s not like you can load your code onto the device and run it.

                                                        Which to be fair, would not be a problem if Linus had adopted the GPLv3, which was designed for this exact purpose.

                                                        I have a 3D printer (Creality K1 Max) that uses Klipper as a firmware. Klipper is GPLv3 licensed, so Creality were forced (unwillingly!) to actually allow people root access so they can load modified firmware. And I am very happy that they were forced against their will to do so, it’s really raised the value of the printer for me to know that the community can fix things even when the company has moved on to the next greatest model. Which makes sense - the “device driver” type of software is the core defining purpose of the GPL, after all.

                                                        1. 6

                                                          Which to be fair, would not be a problem if Linus had adopted the GPLv3, which was designed for this exact purpose.

                                                          Oh, it certainly wouldn’t be a problem, because if Linus had done so, only devices in the hobbyist market would be running Linux nowadays :-).

                                                          Back when, for my sins, I had been cast in the seventh circle of hell that is Linux BSP consulting, “no GPLv3 code” was a requirement on the same level as “the code compiles”. I thought this was bollocks back in the day, too, but not all of it is under technical control. In some regulated industries you’re literally not allowed to sell a device that (easily) allows unrestricted firmware sideloading. It sucks, but it’s the kind of thing that you can’t settle between the FSF and its software’s users. Given a choice between taking it up with the FDA or the DRM alliance and just using an operating system where that’s not a problem, any commercial user will go with the latter.

                                                          Ultimately, in order to make their software usable for people who write software to pay their bills, even the FSF had to relent on some things – GNU libc isn’t GPLv3-licensed and the GCC runtime library has a runtime exception, for example. The unfortunate reality, at least for the tivoization clause, is that most of the software that ended up licensed under GPLv3 is software where tivoization isn’t a problem in the first place.

                                                          Edit: I don’t like this but it’s just how things are, at least for the time being. I’d love to be able to securely load my own firmware onto my devices and wherever that’s a concern of practical relevance for me, I try to buy devices where that’s a thing. But the vast majority of the consumer and industrial market – which is where the vast majority of embedded Linux consulting shops operate – is, sadly, not in that boat.

                                                          1. 1

                                                            Many consumer devices are not regulated in this way. And if a device doesn’t let me root or run custom firmware, and just hosts a locked-down frontend, then there’s no benefit to me in having Linux run on it - so why should I care that the corporation has to put more work in to write their own OS?

                                                            So I think it’s simply empirically not true that only hobby devices would run Linux: plenty of vendors don’t want to allow root access, but also don’t greatly mind being forced to do so. They do the cost-benefit tradeoff and it often still comes out well positive.

                                                            The point to me of GPLv3 is this: those devices that can be legally user-modified, should be able to be user-modified. The GPLv3 incentivizes this by giving the vendor code for free, which certainly nobody was required to grant them: it’s a donation with strings attached. I don’t see anything problematic with that as a user or a developer. It sucks for the vendor, of course, but … well, given my experience with what they tend to use locked-down platforms for, namely hacky custom apps that mostly present ads for the vendor’s family of subscription services and send eminently local data over dubiously secured remote servers in order to gather marketing data, I have very little sympathy for their plight. (“Sent from my LineageOS phone…”)

                                                            1. 2

                                                              I’m not arguing for the current status quo here. If you ask me, sure, all devices, including regulated devices, should be legally user-modified, with reasonable protection in place for all parties, including the vendors (i.e. if you flash your own firmware on your insulin pump and you die, that’s on you and your relatives can’t sue whoever made the pump; but by all means you bought it, you own it, you should be able to flash your own firmware).

                                                              But that’s not the world we live in. GPLv3 just means more strings attached to the same thing – “donated” code – so there’s no wonder vendors, who have to foot the legal bill, weren’t exactly enthusiastic about it. Does it suck? Absolutely. But Linux is an operating system, it’s going to thrive only insofar as there are devices that run it and that people care about. Fewer vendors using Linux in this space is worse, not better.

                                                              Plus, only half facetiously: if GPLv2 is good enough for GNU Hurd, maybe it’s not entirely bad for Linux, either ;-).

                                                        2. 1

                                                          90% of the time you get a frankenkernel and source packages for whatever gets on the rootfs.

                                                          Even that’s optimistic for SOCs.

                                                    2. 3

                                                      I have almost the opposite sense from you. Once money is involved, every system becomes “give them an inch, and they’ll take a mile”, at least for the worst actors, and there’s always incentive to get worse. So pre-emptive enforcement sounds good to me. The problem for me is that the GPL never really got at the heart of what needed to be enforced (and which probably can’t actually be enforced only by a copyright license).

                                                    3. 2

                                                      It seems the actual GCC codebase failed to win over Apple. After all, they chose to invest in LLVM with-all-faults and all its licenses (they don’t exactly run a 3-clause-BSD shop). If LLVM had originally been licensed AGPL, wouldn’t they just be using that? Would history have played out any different?

                                                      There’s plenty to dislike re: GPL: v2 versus v3, not being AGPL, not being compatible with CDDL, toenail-eating jerks, or whatever. But I am still a big fan of copyleft.

                                                      1. 7

                                                        Apple deciding to reimplement a bunch of gcc stuff and waste their time and money on that is a great GPL success story. Instead of just stealing the work of gcc contributors and using it they had to do the work themselves.

                                                        1. 4

                                                          A lot of the faux-GCC behavior in Clang is explicitly for the sake of compiling Linux. The Clang team were even averse to a lot of the GCC-specific extensions Linux depends on and tried to persuade them to adapt to other standards. Clang/LLVM is not simply “me too GCC”, it’s a significantly different beast.

                                                          1. 1

                                                            Sure, but Apple’s investment was because they wanted to get away from gcc because of the GPL

                                                            1. 3

                                                              I don’t really know much about the history of LLVM, is that a fact? It’s nothing to do with LLVM being designed (however poorly) to be a compiler framework instead of a compiler suite?

                                                              1. 6

                                                                It’s a bit of both. They started investing in LLVM when GCC went GPLv3. Apple had (and, I believe, still has) a policy of no GPLv3 code in the building. Their first uses were in the fallback shader compiler for CPUs. They had an interpreter, 32 and 64-bit PowerPC and x86 JITs (I think that was the three. It’s been a while). All of these had subtly different bugs. They used llvm-gcc to compile the interpreter to LLVM IR and then replaced the compilers with a single front end that generated calls to the front end and used LLVM to generate optimised versions for the different targets. The end result was faster and all four (interpreter plus three compiled targets) worked the same way. The GPL meant GCC couldn’t be considered for this use case.

                                                                Once this was successful, they looked at XCode integration. There were legal and technical reasons for avoiding GCC here. GCC does constant folding in the front end, so can’t be used to syntax highlight expressions, for example, but also the GPL means that it can’t be used in a proprietary IDE (without implementing something like LSP, which didn’t exist back then). And GCC was a dead end for Apple going forward anyway unless they forked 4.2.1 and maintained it independently.

                                                              2. 1

                                                                And yet, Apple’s investments into LLVM and Clang are not private, they are open source, just like GCC…

                                                                1. 7

                                                                  This is the key place where (as I say in the article) my opinions diverge from the FSF’s. Investing in LLVM let Apple keep their XCode bits and their GPU compiler stack proprietary. The permissive license meant that they built the bits that they did not regard as differentiating features proprietary. Their LLVM contributions increased the amount of Free Software in the world, but the fact that they could use it in proprietary things increased the amount of proprietary software in the world. I regard this as a good tradeoff. For me, increasing the amount of Free Software in the world is a good thing, if this also enables proprietary software then that’s a sad, but acceptable, consequence. For the FSF, increasing the amount of proprietary software in the world is bad and reducing the amount of Free Software in the world as a consequence is an acceptable compromise.

                                                                  The choices for Apple were not GPL or a permissive license though. They were GPL or build a proprietary compiler suite. They’d probably have bought one of the existing companies that made such a thing (on classic MacOS, most people used the Metrowerks compiler suite, for example, though they had already been bought by Motorola by the time Apple was in the market for one. Borland / Inprise would have been an option if they didn’t want to develop something entirely in house). So it’s not really clear to me that the GPL even reduced the amount of proprietary software.

                                                                  As a result of Apple’s choice to invest in LLVM, most Free Software desktop environments use GPU drivers that compile shaders using a load of Apple code. To me, that’s a better outcome than if Apple had bought Borland and built an in-house compiler suite and required other people to implement something like LLVM for GPU compilers. Similarly, with clang, we have an Objective-C compiler for non-Apple platforms that has feature parity with Apple platforms, which is something that we never had with GCC.

                                                        2. [Comment removed by author]

                                                        🇬🇧 The UK geoblock is lifted, hopefully permanently.