5 ms·
>Well, the GPL mandates the right to use the application, and that a redistributor cannot restrict it (section 0, preambule and section 6, IIRC); that right is
by SomeCallMeTim 11y ago
>Well, the GPL mandates the right to use the application, and that a redistributor cannot restrict it (section 0, preambule and section 6, IIRC); that right is not guaranteed by MIT, BSD, MPL or Apache.
Yeah, and because of the additional restrictions of GPL, big companies are simply avoiding it or writing software to replace it.
See: CLANG/LLVM. GCC used to be the king of the compiler heap; now it's well on its way to becoming an historical footnote.
It's far better to convince people to help you by being trusting and generous than by coercion. The GPL uses coercion.
Yes, some companies use BSD/MIT software and lock it up, never to send improvements back upstream. But they ultimately are harming themselves, as they can't trivially update to new versions of the the software, because they're now maintaining a fork, and the longer their code diverges, the harder it will be to maintain. So they are motivated to send improvements upstream. And many (most?) big companies do.
When there's another game in town, people will play the one where they're more welcome. Open source software benefits by many eyes and many hands; the GPL (especially GPLv3) cuts off access to just about everyone in big companies, which means the size of the potential user base is a fraction of what it can be.
Linux is a notable exception, obviously. But with Linux there's a clear way to use it that doesn't risk your proprietary code. Most other software, not so much.
- dman 11y agoCould you provide some supporting arguments / evidence for this statement - "GCC used to be the king of the compiler heap; now it's well on its way to becoming an historical footnote." ?
- deleted 11y ago[deleted]
- SomeCallMeTim 11y ago* As pointed out by another commenter, Apple switched away from GCC as the default to CLANG. * Microsoft is supporting CLANG. * Android switched from GCC default to CLANG default. * The CLANG development community, combined with the LLVM development community, are both extremely robust. * GCC used to have full time commercial developer contributors working for Google and Apple and other large companies; most such companies have migrated almost entirely to CLANG/LLVM support. * Because of better management and the army of full time commercial developers contributing to it, CLANG is better in practically every conceivable way at this point than GCC. If GCC weren't GPL, CLANG would likely be (at most) a fork of GCC, and may have been merged back into trunk by now (this happened to GCC once before). CLANG is also an excellent example of how a completely permissive license can be sufficient to encourage big companies to contribute their changes back to the commons. All of the GPL fearmongering would have you believe that CLANG couldn't exist, and yet it thrives. And printer drivers are still almost all proprietary [1]. So GPL didn't even achieve the objective that inspired it. GPL did prove that open source CAN work, and it jumpstarted the open source movement. But its time has past; enough people understand the benefits of contributing to open source that the coercion is no longer necessary, and in fact is harmful. [1] Some printer drivers have been reverse-engineered for Linux, certainly. But modern printers frequently leave so much processing for the host that their drivers are nontrivial, and even when there exists "free" drivers for Linux, they pale in comparison feature-wise to the proprietary drivers. I'm sure there are exceptions.
- Tyr42 11y agoI feel like the GPL-ness of gcc was less material than the fact that it's developers were afraid of closed source frontends benefiting from their work, and obfuscating the front end so that it was hard to use without pulling in the rest of the codebase. And the reason I switched was because Clang had better error messages.
- GFK_of_xmaspast 11y agoc.f. Stallman squashing the exportation of ASTs from gcc for use in emacs earlier this year.
- timtadh 11y agoLLVM was not created as reaction against the licensing model of GCC. It was created as a research project exploring: "transparent, lifelong program analysis and transformation for arbitrary programs."[1] GCC and other compilers were not setup to do this. They needed to build an intermediate representation of a kind that was highly unusual for the time. That is where it originated, as pure research. Trying to build a better mouse trap. Not to become a GCC competitor. It did become one because it turned out they had some rather good ideas! The GPL is not harmful and I encourage you to utilize it when appropriate for it protects you (the original author) and your target users far more than BSD or other similar licenses. [1] http://llvm.org/pubs/2004-01-30-CGO-LLVM.html http://llvm.org/pubs/2004-01-30-CGO-LLVM.html Read full paper not just the abstract to get the full picture.
- bsder 11y ago> It was created as a research project exploring: "transparent, lifelong program analysis and transformation for arbitrary programs."[1] GCC and other compilers were not setup to do this. gcc was in fact set up to explicitly not be able to do this. The developers of gcc made understanding the intermediate forms as well as creating plugins as hard as possible specifically so that you couldn't get around the GPL. clang a direct result of attempting to coerce people with real money with the GPL.
- david-given 11y agoEvidence, not so much, but I've got anecdata, if that's any help: I used to work for a company which produced a game-playing virtual machine. We had a toolchain that allowed building C and C++ programs for it. The toolchain was based on LLVM and gcc (because clang wasn't around at the time). Integrating gcc into our toolchain was appallingly hard, solely due to GPL restrictions. The extra work in dividing everything into GPL and non-GPL parts, interfacing between the two, producing split packaging and distribution etc was basically half a full time job. If the company had survived long enough for clang to have become stable --- which, sigh, it didn't --- we would have switched to it like a shot.
- jcranmer 11y agoA more accurate statement would be that gcc ceded an entire market to Clang. Clang made a big deal about static analysis and tooling for C++ programs, in effect bringing advances in software engineering and tooling made for Java/C# to C/C++. The hostility to making gcc's parsers be more usable by other applications (GCC plugins only very barely made it into the tree) makes Clang the de facto solution; given differences between ASTs, there's also a strong network effect--if you start using Clang, you'll find it hard to switch to gcc and vice versa.
- dman 11y agoI dont know if licensing was the only reason why GCC missed out on this market. Using parts of the compiler as a library to aid tool building, refactoring and analysis is one of those great ideas that seems obvious in retrospect. To the credit of LLVM's early authors they had a larger vision of what a compiler ought to be than other compilers at the time. I dont recall gcc or any of the other commercial compilers having this expansionary vision of a compiler stack back in the 2000s. Once LLVM was able to move the goalposts on what users expect from a compiler stack, I can see that the license could have eased the decision for the likes of Google and Apple to come on board. It would be interesting if someone from Google / Apple / Microsoft commented on what the thought process was regarding moving to LLVM / Clang and if licensing played a role.
- jbk 11y ago> Yeah, and because of the additional restrictions of GPL, big companies are simply avoiding it or writing software to replace it. Sure, and my point was to answer the parent about what freedom does the GPL grant to the users. Your point is interesting, but is totally besides what I was saying, or the parent.
- epistasis 11y agoNo, his point was exactly why I don't believe that permissive licenses are any worse at perpetuating user freedom than coercive licenses like the GPL: when one feels coerced by a license, the option is to just not take it at all. Whereas with a permissive license, one is far more likely to take it initially, and then perhaps share alike afterwards. Those who wouldn't share under a permissive license wouldn't accept the GPL to start with, so what additional user freedom can the GPL possibly create in the world that's not already there with permissive licenses?
- jbk 11y agoYou are speaking of feelings, I speak about facts and what's actually written in the license: the GPL forbids restricting the freedom to use, even when redistributing; the other licenses don't. This is a clear user freedom that is guaranteed by the GPL.
- epistasis 11y agoFeelings are incredibly important around these things! Dismissing them as unimportant misses a huge part of humanity, and of freedom itself.
- deleted 11y ago[deleted]
- SomeCallMeTim 11y ago>This is a clear user freedom that is guaranteed by the GPL. Yes, and that freedom is being guaranteed to fewer and fewer end users of GPLed software because of those feelings you're dismissing. Linux is probably the success story for GPL, and even in that case Google has bundled it with proprietary software (Android now outnumbers all other operating system installs, IIRC). Yes people can make their own distributions, but they're for the most part irrelevant to 99% of users of Android devices. Probably 99.99% if you include people who never install Google proprietary apps (the Play Store; Google Maps; etc.) on their devices. The point of GPL wasn't to serve the 1%, but to expand software freedoms to everyone. To start a revolution in software, and to supplant closed source and restrictive licenses. Look around, though; most people are ignoring what freedoms they are offered and basking in proprietary software options. Open source is beautiful when it works. But freedom to redistribute something without value is about as relevant as debating whether a tree falling alone in a forest makes a noise.
- xirdstl 11y agoI'd go further and say it's not just big companies. I've worked for big companies and small, and they have all avoided GPL as much as possible. It is worse, though, in larger companies. There is generally several layers more of bureaucracy to get through to be able to use GPL licensed software. To be clear, I'm speaking of my role as a developer and using GPL software in developing proprietary software.
- weland 11y agoI've worked for a small company and we had similar problems. It's not that you have to convince six layers of bureaucrats who have no idea what GPL is but they read in eWeek that it's scary -- it's simply that, when you're that small, long-winded consulting services from IP lawyers is not the kind of stuff you want to spend money on.
- andmarios 11y agoWebkit is GPL. Android (Linux) kernel is GPL. CUPS is GPL. Busybox is GPL. Companies may try to avoid GPL but only if they have another, viable choice.
- xyzzyz 11y agoNit: Webkit is not GPL. It's partially LGPL, and partially BSD.
- microtherion 11y agoIn the case of CUPS, Apple's choice appears to have been to buy a license exemption for themselves.
- Nelson69 11y ago> Yes, some companies use BSD/MIT software and lock it up, never to send improvements back upstream. But they ultimately are harming themselves, as they can't trivially update to new versions of the the software, because they're now maintaining a fork, and the longer their code diverges, the harder it will be to maintain. So they are motivated to send improvements upstream. And many (most?) big companies do. Is there any evidence of this?
- 0x09 11y agoSony has spoken about the problems associated with maintaining a private fork of Clang for the toolchain of the then-unreleased PS4. See "Working with the LLVM community": http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain.pdf http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain....
- jcl 11y agoClang is not a good example... It was adopted by Apple for its technical merits over gcc rather than its license. And, in fact, Apple tried to license clang/llvm under the GPL as a contribution to gcc but was rejected: http://www.phoronix.com/scan.php?page=news_item&px=MTU4MzE http://www.phoronix.com/scan.php?page=news_item&px=MTU4MzE That clang is not GPL is more an accident of history than a preference of licenses: https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00594.html https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00...
- clacke2 11y agoNon-coercion fails with LLVM: "indeed there are multiple proprietary compilers and utilities built on top of LLVM—including Apple's Xcode and NVIDIA's CUDA compiler." https://lwn.net/Articles/582697/ https://lwn.net/Articles/582697/ OpenStack is one of the biggest permissively-licensed free software projects out there: """ Everyone I know who is deploying OpenStack has forked. Not publicly, but they have. No one can run the mainline code, it’s a disaster, and OpenStack politics of the “Big Tent” are going to make that problem a lot worse. Because everyone has their own fork, very little code is making it back upstream. """ http://gigofham.com/archives/47 http://gigofham.com/archives/47