It's frustrating to see this somewhat blinkered view.
Yeah, Apple definitely doesn't like copyleft. That's okay; lots of people don't (especially larger companies – how many large companies actively release GPLd software?). It's a legitimate business decision, and there are some good arguments that support it (which you may or may not agree with).
The idea that organisations 'owe' the community copyleft software is therefore a bit foreign to me.
Furthermore:
We'll likely see pieces of Swift 2.0 thrown over the wall. But the best stuff will be kept proprietary.
That's a bit of a weird assumption. Apple's statement was the the Swift code and standard library would be open-sourced. What is the 'best stuff' that we're not going to get?
Apple's not-yet-executed move to liberate some of the Swift 2.0 code seems a tactical stunt to win over developers who currently prefer the relatively more open nature of the Android/Linux platform … the copyleft license of Linux itself provides the opportunity to keep the core operating system of Android liberated.
That's a bit flaccid. Google and the Android platform has equally went out of the way to isolate the platform from the effects of the GPL. In fact, I'm pretty sure one of the reasons Bionic (the Android libc) exists is specifically to limit the impact of GPL code on the platform. Android's use of Linux is basically a historical accident, and painting it as some kind of concerted effort towards software freedom isn't a compelling point.
TL;DR - you need to relax. Apple releasing open-source code is a good thing. We can now all benefit from using this code. Maybe you'd prefer if it were copylefted, but it's not – it's still good, and painting it as an evil move against software freedom seems like a bit of a mental stretch.
Imagine Swift becomes a wild success; everyone's writing everything in Swift. What will your reaction be when Apple again makes a "legitimate business decision" and leverages the success to the benefit of their company and implicitly disadvantages other platforms? Maybe they double up on Swift support on Mac and start shipping additional features first for LLVM/Clang on OSX. Will you brush it off again as an understandable move by Apple?
I think you would. I certainly wouldn't be happy with Apple for doing it, but I would definitely say it's understandable. Like you're saying, they're a business, they make business decisions.
The point I'm trying to make there is any problems that arise from this fall squarely on the developers choosing to embrace this new language. I'm not writing this comment to convince Apple to act differently. The original post didn't make those arguments to Apple. This is all directed at developers, trying to change THEIR actions and feelings.
So as a developer right now, given that you have a plethora of open tools and an open ecosystem, why would you choose to use a language where a company has the opportunity to manipulate you in the future? Why write libraries and provide support and do this work for free for Apple? Writing libraries for the benefit of the community provides some security in that no one except the community stands to benefit from it. You can go to sleep happy knowing that you're helping out your fellow devs.
Writing for the benefit of a community that is paired with executive power means that it can all be swept from under you. Your library is still helping your fellow dev, but it helps the fellow dev with OSX 10.12 more. Now you've contributed to Apple's bottom line. Was that your intention?
I completely disagree with other commenters in this thread that we have some obligation to be thankful for companies for putting out things with strings attached. I'm not a spoiled brat for not liking everything. These companies would be absolutely nothing without their developers. It's time the community sticks together and realizes the power they have. It's not unthankful to demand more. It's dangerous to get swept up in the excitement of new languages and to assume good graces. Look no further than what Apple has done to Webkit, LLVM, CUPS and more. First class on OSX, give back only what's not newest. Swift will certainly be the same way.
Imagine Swift becomes a wild success … Will you brush it off again as an understandable move by Apple?
I'm a bit unclear what you seem to think is lost under these circumstances versus copylefted software. Let's say Apple released Swift under the GPL. They would still be free to do all of the things you describe.
So as a developer right now, given that you have a plethora of open tools and an open ecosystem, why would you choose to use a language where a company has the opportunity to manipulate you in the future?
This is, as above, no different from the copyleft case.
So as a developer right now, given that you have a plethora of open tools and an open ecosystem, why would you choose to use a language where a company has the opportunity to manipulate you in the future?
It's extraordinary difficult to argue that Apple would be in a position to manipulate me as a developer if I started using Swift. For one thing, once the code is open-source – that's it. I can continue developing software using that language. If Apple decide not to release new features, and instead keep them proprietary, then the community is free to fork development.
More importantly, if it's important to members of the free software community, they are entirely able to develop capital-F-free software on top of Apple's release!
I'm really thankful for copyleft licensing and the amazing tools it's given us. But it's a vary complex issue, and I just don't agree that release under a license with fewer restrictions is necessarily a bad thing!
> "I'm a bit unclear what you seem to think is lost under these circumstances versus copylefted software. Let's say Apple released Swift under the GPL. They would still be free to do all of the things you describe."
Absolutely not. GPL means anything you put out must be published. If LLVM and Swift are GPL'd they can't develop additions to them, ship them on their Macbooks, and not publish the changes to the rest of the internet.
If LLVM and Swift are GPL'd they can't develop additions to them, ship them on their Macbooks, and not publish the changes to the rest of the internet.
This is true if you redistribute the GPL code of others.
However, as the copyright holders, Apple are free to release their code under whatever license they wish, or to refrain from releasing it. They can ship it on MacBooks, and are under no obligation to release the source code.
You could argue that they couldn't accept GPLd submissions anyway, but since they'd require copyright assignment in any case it's a moot point.
The bit about copyright assignment is significant though. There is a way for Apple to ensure the community that they will not screw them over for embracing their language. I think it would be prudent for the community to ask for that.
I guess one aspect is that LLVM (which Apple doesn't completely own, as far as I know) should have been copylefted to begin with, then any changes (like adding a language) would need to be shared with the community.
The exact same situation happened with Objective C and GCC. In that case, the Objective C frontend was released as free software.
> which Apple doesn't completely own, as far as I know
Apple don't own LLVM at all - they hired Chris Lattner who was one of the original directors of the project when it started at the University of Illinois.
> should have been copylefted to begin with
Why? To prevent the vast majority of companies with the money to actually support and grow such a project the way LLVM has, from doing so?
They might not have "provided LLVM with changes for the compilers they are selling" but they have provided TONS AND TONS of changes and fixes and new features for the core LLVM infrastructure.
I could not care less about having the changes to their compilers, and I would even dislike it if LLVM's license required them to do so if that meant they wouldn't touch LLVM in the first place -- in which case we wouldn't get all these core LLVM improvements.
>the freedom of new languages in LLVM would be guarenteed.
No, the GPL does not work that way.
If LLVM was GPL it wouldn't make any difference. LLVM is modular. You can write a front end that generates LLVM IR, then pass that LLVM IR file to LLVM to be compiled. It would be no different then a program that generates bitmaps and then passes them to another program to be jpeg encoded. The licence of the jpeg encoder doesn't affect the licence of your bitmap generating code.
Yes, they can. The GPL is a software license, that is, it authorizes the use of the software by persons or entities other than the legal copyright holder under certain conditions. The legal copyright holder can do anything they want with the software under US law, and any provisions of the GPL that purport to bind the legal copyright holder are not enforceable. I believe Richard Stallman even acknowledges as much.
Also note that 2005 is pre-GPLv3 and that Apple to this day dislikes GPLv3 so much that it continues to ship antiquated GPLv2 versions of GNU utilities in MacOS. So, my reading of the tea leaves is that the offer is not likely to be resurrected.
> Absolutely not. GPL means anything you put out must be published.
Assuming that you don't own all the copyright. If you do (and Apple presumably would, in this instance), you're under no obligation to release source, and can produce alternate non-open-source versions. See MySQL for an example of this in action; also some non-GPL extensions to OpenJDK in Oracle JDKs, and Virtualbox (Oracle likes this model).
I'm not sure you're wrong. I was under the impression that contributors retain copyright over their portions under GPL.
This would require the copyright holder of the larger piece to get permission from all contributors before releasing under a different license, and I thought Ubuntu's CLA with Mir was to ensure they weren't trapped by this.
Nearly all companies who release stuff under the GPL require copyright assignation on contribution, actually giving the company far more control than if they simply used a liberal license. Using the GPL is more about making sure third parties can't lock up derivatives than that _you_ can't.
I've read below and I see where you've changed your thinking. That said, I've seen many people (not necessarily on HN) espousing the belief that once the copyright holder releases, they're now legally committed to releasing all their future changes as well.
In a lot of GPL projects, this is essentially the case, because they either do not have copyright assignation, and have lots of external contributors (Linux, for example) or do have copyright assignation, but to a non-profit dedicated to the principles of the GPL (FSF stuff). People tend to forget about the third case, where a company has copyright assignation for contributors (Oracle stuff), or doesn't take contributions (common in dual commercial/GPL stuff).
> I completely disagree with other commenters in this thread that we have some obligation to be thankful for companies for putting out things with strings attached.
Swift will be released under a permissive licence, which has literally no strings attached - you can use the software however you like. Unlike the GPL, which has a very explicit string attached.
> Imagine Swift becomes a wild success; everyone's writing everything in Swift. What will your reaction be when Apple again makes a "legitimate business decision" and leverages the success to the benefit of their company and implicitly disadvantages other platforms? Maybe they double up on Swift support on Mac and start shipping additional features first for LLVM/Clang on OSX. Will you brush it off again as an understandable move by Apple?
This is not the optimal business decision anymore. Platform protectionism of this nature is not helpful today: customers expect their products to work across multiple platforms. Apple open sourced Swift because having more people use Swift is good for Apple's developer ecosystem. Even if they use Swift to create programs for non-Apple platforms, they still know the lingua franca of Apple products and could easily develop for them. Programming languages are a dime a dozen; Swift as a language isn't objectively superior to Java or Ruby or anything.
But ultimately, most people don't write software for fun. They write software to make money, and Apple has a great platform for doing that. Yes, in order to make money on Apple's platform, you have to pay Apple a cut -- and sometimes you have to write libraries to support certain features, and it's up to you and your priorities whether or not you open source those libraries.
"The community" as you describe it has no power. So long as there is money to be made on iOS, there will be a deep line of companies looking to make a buck. And so long as Apple is the gatekeeper to getting your apps in front of iOS users, you have to deal with the fact that they treat iOS and OS X as their preferred development platforms. As long as it makes business sense to develop apps, people will do it.
> As long as it makes business sense to develop apps, people will do it.
This is exactly what the parent commenter railed against. Go ahead and be an industry apologist but you're only squashing your rights in the process.
Apple knows that developers will keep making apps because so many will just accept what they're told and not ask for more.
As the parent put it, "it's dangerous to get swept up in the excitement of new languages and to assume good graces." We always have to remember that corporations are always going to be thinking of themselves and their gains. Especially one with a history of undermining FOSS values.
> "The community" as you describe it has no power.
Just like Tinker Bell, if you don't believe, the power of the community will fade to nothing. Be skeptical, careful, and vocal about your tool's licenses and Tink will live to see another day!
>Imagine Swift becomes a wild success; everyone's writing everything in Swift. What will your reaction be when Apple again makes a "legitimate business decision" and leverages the success to the benefit of their company and implicitly disadvantages other platforms? Maybe they double up on Swift support on Mac and start shipping additional features first for LLVM/Clang on OSX. Will you brush it off again as an understandable move by Apple?
So? It sounds not only an understandable move, but NO ISSUE at all.
In this scenario you describe people have ALREADY benefited tremendously from Swift ("writing everything in it" etc, as you describe).
If they don't like some Apple's moves they can always fork from that point. A language in which "they have written everything", means it has huge adoption, and several third party companies and lots of community members to take this up.
And even if they don't fork, they still have the existing compiler and libraries -- the ones they LIKED so much in you scenario that they have adopted and written everything in them --, and they can continue using them.
Basically your argument is: if Apple gives this as Open Source, they should continue giving us anything they do with it as Open Source.
For me just giving it once as Open Source is enough.
If the main offering is good enough, then I don't care if they add some proprietary extensions, now or in 2020.
And if the main offering is not good, I don't care about it in the first place, whether OSS or not.
> Imagine Swift becomes a wild success; everyone's writing everything in Swift. What will your reaction be when Apple again makes a "legitimate business decision" and leverages the success to the benefit of their company and implicitly disadvantages other platforms? Maybe they double up on Swift support on Mac and start shipping additional features first for LLVM/Clang on OSX.
This seems implausible, given the extremely long lead-time on wide adoption of new language features that is customary. It would also be _easier_ if they went with a GPL-with-retention-of-copyright model; with a non-copyleft license anyone sufficiently motivated could just fork in this hypothetical scenario.
> Yeah, Apple definitely doesn't like copyleft. That's okay; lots of people don't (especially larger companies – how many large companies actively release GPLd software?). It's a legitimate business decision, and there are some good arguments that support it (which you may or may not agree with).
While I do agree with your point, I do also find it frustrating when businesses' are quick to base their core components on copyleft licensed code (eg CUPS, kHTML, Mach, OpenSSH, OpenSSL, Apache httpd, many GNU projects, and much more https://www.apple.com/opensource/), often only releasing patches because of their legal obvigation. Yet they are quicker to hoard their own technologies claiming they've "innovated" the industry and that their technology "works like magic".
It feels extremely disingenuous and I think that's why Apple is met with such criticism and skepticism by their critics.
I appreciate that there are other companies who mix and match open with closed proprietary solutions, but Apple seem to me to be the worst and most aggressive for exaggerating the significance and originality of their own proprietary code relative to the amount of copyleft code they depend on to run their software stack.
edit: s/copyleft/open source/g Sorry for the school boy error
I understand what you're saying, but there's some confusion there – of the projects you've listed, none of Mach, OpenSSH, OpenSSL, and Apache are copylefted – they all use permissive licensed. And regarding CUPS and Webkit/kHTML, I think it's difficult to argue that Apple 'only released patches because of their legal obligation' – they were the primary developers of those projects.
But more importantly, I don't think it is a disingenuous complaint, and it's the basis of most commercial software. I build software – we release some component parts as open-source, which the proprietary bits on top are how we can make value. And it seems like that benefits everybody!
They openly took the KHTML code and just dumped code with no source control every few months to satisfy their legal requirements with very, very little in the way of collaboration until it was politically convenient for them.
> the proprietary bits on top are how we can make value.
Important nitpick: this is not how you make value. Being proprietary reduces the value you make.
No, this is how you extract value from your users. Maybe you have to (one's gotta eat). But I'm sick of the English language speaking of wealth appropriation as if it generated actual value.
"CUPS is provided under the GNU General Public License ("GPL") and GNU Library General Public License ("LGPL"), Version 2, with an exception for Apple operating systems. A copy of the exception and licenses follow this introduction."
EDIT: Just to provide the full exception clause text.
"Apple Operating System Development License Exception;
Software that is developed by any person or entity for an Apple Operating System ("Apple OS-Developed Software"), including but not limited to Apple and third party printer drivers, filters, and backends for an Apple Operating System, that is linked to the CUPS imaging library or based on any sample filters or backends provided with CUPS shall not be considered to be a derivative work or collective work based on the CUPS program and is exempt from the mandatory source code release clauses of the GNU GPL. You may therefore distribute linked combinations of the CUPS imaging library with Apple OS-Developed Software without releasing the source code of the Apple OS-Developed Software. You may also use sample filters and backends provided with CUPS to develop Apple OS-Developed Software without releasing the source code of the Apple OS-Developed Software.
An Apple Operating System means any operating system software developed and/or marketed by Apple Inc., including but not limited to all existing releases and versions of Apple's Darwin, OS X, and OS X Server products and all follow-on releases and future versions thereof.
This exception is only available for Apple OS-Developed Software and does not apply to software that is distributed for use on other operating systems.
All CUPS software that falls under this license exception have the following text at the top of each source file:
This file is subject to the Apple OS-Developed Software exception."
pyre already acknowledged that Apple now owns the code. The reason why CUPS is GPL+/LGPL+the Apple OS exception? Because Apple bought the rights to it and made it that way. Before that, it was GPL/LGPL.
In contrast to matthewmacleod, what I find tenuous is the argument that these things would have been open source if it weren't already so and these had been initiated from within Apple instead. Case in point: Swift!
To be fair, if Apple had developed their own printing system instead of using CUPS, it probably would have been highly integrated with/specific to OSX and never would have been open sourced.
"Apple seem to me to be the worst and most aggressive for exaggerating the significance and originality of their own proprietary code relative to the amount of copyleft code they depend on to run their software stack."
I'm finding this hard to parse. Mix & match is okay, so long as you don't promote what you feel makes you special? I don't get it, this seems to be an emotional reaction to the fact Apple is still doing so well vs. more open source (Android) approaches.
Herein lies the crux of the competitive manner. In what possible way is Apple's success with their proprietary code and processes exaggerated? I mean, Apple might market in a way you find distasteful, but facts are facts - Apple has been wildly successful in profitability, largely because of their proprietary ability to design great holistic user experiences that people like to use. This isn't because of marketing and brainwashing solely, as the products do mostly work really well, with some debate around overall quality lately.
The Google/Android ecosystem has access to the same open source base Apple does, and they've wound up in a different competitive situation - high marketshare, no direct profits on Android itself. Everything is driven by compliments, like Ads. Perhaps that's part the point of open source - to drive out direct profits on a core set of capabilities. But why hasn't it worked on Apple?
I think the issue is not solely about code, it's about ecosystem and all the proprietary bits surrounding that (The Apple Store, the app store, their hardware devices, the Genius Bar experience...). Apple has managed to build a very appealing proprietary ecosystem to both users because of the experience, and developers because of the overall architecture of the app store and potential for $$$.
All of this is not about exaggeration and "it's magic" stuff, it's about very smart people thinking through how they're going to compete against an ecosystem that doesn't want to make any money.
> In what possible way is Apple's success with their proprietary code and processes exaggerated? [...] facts are facts - Apple has been wildly successful in profitability, largely because of their proprietary ability to design great holistic user experiences that people like to use.
You won't find anything in the comment you're responding to that says anything contrary to what you've written here. You're reframing the argument into something that it is not. No one is talking about whether or not Apple is successful.
The OP suggested that Apple is mainly successful because it is exaggerating the value of its proprietary efforts in its marketing vs. the success it has had co-opting the work of open source software.
I'm saying that most of their success has come from their proprietary efforts, particularly around their ecosystem, and that it is an interesting reflection of where open source has succeeded and failed in the broader market.
> The OP suggested that Apple is mainly successful because it is exaggerating the value of its proprietary efforts in its marketing vs. the success it has had co-opting the work of open source software.
That wasn't what I was saying. While I'm sure that their PR contributed to their success (as all successful adverts help sell products), if Apple's products weren't also done to a high quality then their adverts wouldn't have made a difference. So I will always credit Apple for releasing well polished products. But in any case, I wasn't commenting about the success of Apple nor their products.
My complaint is that the incremental improvements that Apple bring to the industry - regardless of how sleek they may be - isn't itself innovation. And I'm saying that their proprietary efforts are actually a relatively minor part of their wider software stack. But obviously being the front end, it's what people recognise as being "Apple" so all of the fundamental open source components that power iPhones and Macbook Pros get forgotten about.
I guess if were to argue that I was having an emotional response to anything, it would be that the true innovators of the technology we use get forgotten about. eg the creators of the programming language C - for without which there wouldn't be Objective C or Java. Or the creators of UNIX, for without which we wouldn't have Mach or Linux. In many ways, Dennis Ritchie contributed more to the technology that powers our smartphones than Apple and Google have, yet his death was a footnote only noticed by us geeks.
> My complaint is that the incremental improvements that Apple bring to the industry - regardless of how sleek they may be - isn't itself innovation.
That's really debatable. Innovation is about bringing something new and uniquely useful to the market [1]. It is an economic term, arguably coined by economists to distinguish from invention, which often has zero economic impact. Innovations can be incremental. They might not even be technology - a small change in process or in positioning can be an innovation. Incremental things add up to a big deal. My favorite list of sources of innovative opportunity is Drucker's [2]
I agree the true inventors often get forgotten about, and that's lamentable. And I'm sorry for reading into your comment too much about success.
> The OP suggested that Apple is mainly successful because it is exaggerating the value of its proprietary efforts in its marketing vs. the success it has had co-opting the work of open source software.
No, he or she did not. I repeat myself: there is not a mention of Apple's success in the comment you're responding to, much less that this tactic is the principal reason for it. The argument is only that this tactic is something that Apple does plenty of. Every mention of Apple's success, starting with the comment of yours that I replied to, is a derailment.
You're either totally disingenuous here (by intentionally arguing against a point that was never made) or totally confused (by arguing by mistake against a point that was never made).
> this seems to be an emotional reaction to the fact Apple is still doing so well vs. more open source (Android) approaches.
Wow that's a hell of a conclusion to jump to. And your argument doesn't even make sense given how hugely successful Android has been.
I was actually thinking more on the wider industry scale, such as Redhat, Canonical, and obviously Google (but not specifically Android).
> In what possible way is Apple's success with their proprietary code and processes exaggerated? I mean, Apple might market in a way you find distasteful, but facts are facts - Apple has been wildly successful in profitability, largely because of their proprietary ability to design great holistic user experiences that people like to use. This isn't because of marketing and brainwashing solely, as the products do mostly work really well, with some debate around overall quality lately.
Clean design isn't innovation. I'm not disputing that Apple have done great work on polishing their products and rightfully deserve to be rewarded for it. I have an issue with companies that stand on the shoulders of giants and then claim their software stacks are "innovative", "original" and deserve aggressively pursuing any company who developed similarly usable frontends around the same or similar underlying open source software stacks.
> All of this is not about exaggeration and "it's magic" stuff, it's about very smart people thinking through how they're going to compete against an ecosystem that doesn't want to make any money.
All of that you listed existed before Apple incorporated them, it wasn't their invention. And your "[the mobile ecosystem] doesn't want to make any money" couldn't be more wrong. Mobile apps were a profitable market before the iPhone came along, not to mention the profitability selling feature phones and smart phones at that time. It was already a pretty big industry - though obviously had room to grow.
Apple obviously did a great job carving a share of that market. But it would be silly to say they were the only ones wanting to make money.
innovation is generally considered to be a process that brings together various novel ideas in a way that they have an impact on society. (https://en.wikipedia.org/?title=Innovation)
This pretty much sums up Apple's M.O., which has often been described as taking something that has already been invented (often by someone else), and putting it together in a new way that makes it useful (and usable) to mass market consumers.
Consider Time Machine. Apple didn't invent backup systems, but designing one in such a way that non-technical people could use it, was truly innovative, and Apple deserves a lot of credit for this. Likewise Apple didn't invent the tablet computer, but they came up with the key innovations that made it an attractive product.
So, maybe you didn't mean innovation, but invention, and maybe you don't think Apple deserves much credit, because you think invention is much harder than innovation and design? But if that truly were the case, then why do so few companies do what Apple does?
> So, maybe you didn't mean innovation, but invention, and maybe you don't think Apple deserves much credit, because you think invention is much harder than innovation and design? But if that truly were the case, then why do so few companies do what Apple does?
Even fewer companies do invention, so I don't think your closing argument quite proves the point it's trying to. But I do take accept your argument none-the-less.
Innovate generally means to incorporate something new, but it's true that you don't necessarily need to invent to innovate. However Apple are aggressive in litigating against anyone who they feel borrows their ideas via intellectual property laws - which would suggest they at least consider themselves to be inventors, even if you don't include that in the definition of "innovation".
ALL companies are aggressive in litigating against anyone who they feel borrows their ideas via intellectual property laws. It's basically REQUIRED (by those same intellectual property laws) to maintain your 'intellectual property'.
Now, one could argue that there shouldn't be such laws or that they should be shaped differently, but that's a different discussion, in some ways.
It's only required for trademarks. Copyrights and patents don't require defending every case to maintain ownership.
Perversely it might actually be a good thing if you did have to for patents as it would force trolls into the open early on (ie before their claims run into the millions).
This is only partially true. You are 'strongly encouraged' to enforce your patent violations, for after a period of years (6) they basically become unenforceable. This is to prevent things like 'patent bombs'.
In practice it doesn't always work this way ( see patent trolls ) but it can be a BIG issue for people looking to enforce their patents.
No, that ALSO applies to patents, though the term is actually 6 years rather than the standard 3. Your 'confused' comment is a good example of why the FSF should encourage educating ones-self instead of trying to play semantic games with the english language.
But that only limits the time period for which damages may be claimed - it does not forfeit the ability to claim damages altogether, which is what may happen with trademarks; that's a pretty significant difference.
Ok, that is an interesting aspect of US patent law I wasn't familiar with. But this doesn't look like a universal property of patents, more likely it's specific to the US?
> I'm finding this hard to parse. Mix & match is okay, so long as you don't promote what you feel makes you special?
No, it is more like Apple mostly takes and only gives grudgingly, so grudgingly that they are willing to spend millions of dollars on e.g. LLVM so that they won't have to give at all.
They say a good marriage is when both sides feel they are providing 80% of the "give". With Apple, they really are providing only 20% of the "give" and begrudge even that.
That's nonsense. If they don't want to give at all, why did they make clang free? That was entirely an Apple project, and so they could have made it proprietary, yet they made it open.
Or how about Webkit? Yes, they started from KHTML, which was LGPL. They could have easily kept most of their additions in separate parts linked with the LGPL parts, and they could have kept their parts proprietary. Yet they released their parts under a permissive license.
Or how about launchd? That was entirely theirs, and they could have made it proprietary. Yet they released it under an open source license, one that the FSF recognizes as a free software license. Then when Ubunutu was looking for a new startup daemon and considered launchd, but did not like the license, Apple change the license to Apache. That sure doesn't sound like Apple is trying to give anything.
As far as LLVM goes, there is no reason to believe funding it was anything other than an engineering decision. They needed a modular compiler kit so they could use parts of it in things like debuggers and editors and on-the-fly optimization of graphic filters.
LLVM was the only free compiler kit at the time that was production quality and could do these things. GCC could be modified to do these things if you put in a lot of work, but as a matter of policy Stallman would not allow those changes back into the codebase.
So, they had two options: (1) fork GCC and diverge massively from the official version, or (2) use LLVM. Any sane engineer would choose #2.
CUPS is owned by Apple. Mach, OpenSSH, OpenSSL & Apache are not copyleft. The success of Apple has nothing to do with the copyleft software they use, most code used by Apple has been based on permissively licensed code or written by them. The main software asset Apple has is Cocoa and Cocoa Touch, which are as far from copyleft as you can get. Apple could replace every piece of copyleft software they have left in OS X tomorrow and no mainstream news source would bother to inform of this. That's how relevant copyleft software is to the success of Apple.
Now if you say "open source has been an integral part on the success of Apple", I would agree with that. Still Apple owes its success to it's own code not to code from others. If taking open source code and modifying it a little was all it took to make a successful company, all of us would be millionaires.
CUPS was bought by Apple. It was originally GPL software and was incorporated into OS X a few years before Apple bought it.
> Mach, OpenSSH, OpenSSL & Apache are not copyleft.
Fair point, I did actually mean open source in the more general sense than the copyleft subset of open licences.
> The success of Apple has nothing to do with the copyleft software they use....Now if you say "open source has been an integral part on the success of Apple", I would agree with that.
I sense you're nitpicking for the sake of nitpicking :) In any case, I think we agree the same point.
edit: why is this comment getting downvoted so much yet not one single correction posted? Please guys, don't just downvote because you dislike the tangent I started in my previous post. Take this comment in isolation and if you still disagree with me then explain why.
Wait, what? Mach, Apache, OpenSSH, OpenSSL are all under Apache/BSD style licenses, not "copyleft" GPL licenses. You clearly don't understand the issues being discussed here; for at least those projects things are working exactly as intended.
> Yeah, Apple definitely doesn't like copyleft. That's okay; lots of people don't[...]
A lot of FLOSS advocates don't either. Like BSD developers, for example.
Personally, I release all my stuff under MIT/ISC licence. Feel free to use it. I don't keep parts secret, etc. I just choose MIT because I feel that users can use the code however they please, and if they share back, it should be because that's what the believe in, no because of legalese.
GPL doesn't force you to share back either, nor is that its intent.
The purpose of the GPL is to ensure the users of the derived software are granted the same rights the authors of the derived had been granted originally. It's a pay-it-forward mechanism.
You don't have to "give back" (push your changes back upstream), but you do need to put your changes out there to comply with the license once you begin distribution.
Not "out there," just to give the source to the receivers of binaries.
I know that in the context of B2C that sounds like an irrelevant distinction, but in B2B, it isn't - such software is often distributed only to a handful of organizations, who have no interest in becoming redistributers even if they have the right to do so.
I can tell you that there are lots of derivatives of copyleft software that are never made available to the original developers, in a perfectly legal way, and people who are choosing a license for their code should realize that.
I find that limiting a companies usage of available tools based on policy decision is a bad business decision. Industries that have plenty of competition tend to discard of such attitudes, since there will always be someone willing to save money whenever possible.
Take games. While a game will likely not use GPL in the product since it would conflict with the basic model of selling licenses of copyrighted content, even a large industry actor like blizzard will use LGPL in their flagship products (like starcraft 2) if it saves them developer time. They don't seem very upset, or a failure, to have to distribute source code of those parts. It seems a very legitimate business decision to make decision based on increasing revenue and decreasing costs, and a illegitimate business decision to increase costs because for fear of "licenses" when it does not conflict with their revenue flow.
I would claim there is some good arguments (which people may or may not agree with) that any like or dislikes that companies has that is not PR based or revenue/cost based is illegitimate business decision that a market economy should replace.
I find that limiting a companies usage of available tools based on policy decision is a bad business decision.
Oh, I completely agree with that. I'll never forget a particularly frustrating conversation with a client who refused to allow access to their database, because we were using 'open source code that anybody could have changed'. That sort of thing – banning open-source software from your systems – is silly.
However, you've got to consider the default-conservative attitude of larger companies. In Apple's case for example, the breaking point seems to have been GPLv3 - this was when they started reimplementing things like Samba and removing copylefted software. And that's because the GPLv3 represents a real business risk – aside from the direct patent implications, litigation under it is sparse, and businesses don't like operating in unsure legal territory!
A lot of FSF advocates don't realize how toxic the GPL has become outside of the FSF bubble. GPLv3 software in particular is a now non-starter for a lot of companies and has undermined a lot the goodwill businesses had towards GPL software.
The shift towards BSD, Apache, and other open source licenses is a symptom of that and unless the FSF wises up, support for GPLv3 projects will dry up.
I would guess that these companies never had actual "goodwill" towards GPL software and the Free Software community. Instead their motivation was simple profit and they weren't interested in anything that might interfere with that, such as freedom for their users, which GPLv3 enhances (specifically via the anti-Tivoisation provisions).
A company that seeks to maximize revenue and minimize cost would then do a cost analysis on that risk, and determine how much money it is worth. Risk, be that of lawsuits, fire or meteors, if you spend money on it it need to be legitimized by doing the math and showing how much money a company would expect to loose by distributing gplv3 instead of gplv2.
I would very much like to see such calculations so the market could evaluate if it is correct. Maybe see what a insurance company would ask in return for covering it, as that is their domain of expertise. So far there has not to my knowledge been a single lawsuit over GPLv3 specific requirements, which is something I think a insurance company would consider. Good money with a risk that has never ever occurred is something they might like in a deal.
I would claim there is some good arguments (which people may or may not agree with) that any like or dislikes that companies has that is not PR based or revenue/cost based is illegitimate business decision that a market economy should replace.
That's a nice summary.
Been thinking lately about "business bugs". As technology developers, we're all familiar with technology bugs: system crashes, system runs too slow, system does something unexpected.
It occurs to me that there are business bugs as well. Business takes too long, business solves the wrong problem, and so on.
Perhaps the entire raison d'être of Lean Startup is to apply ATDD at the business execution level.
> That's a bit of a weird assumption. Apple's statement was the the Swift code and standard library would be open-sourced. What is the 'best stuff' that we're not going to get?
I'd expect Foundation and other Cocoa stuff (Core Data and the like) will not be part of the package.
Unfortunately many of the the really nice things about working in Objective-C and Swift are actually parts of Cocoa. I imagine the language will feel a bit like you're in a straight jacket without them.
I think that's the crucial point. If they do not at least include things like networking, multithreading and file system access from Foundation then server-side Swift will either not happen for a long time or it will be very fragmented.
As mentioned elsewhere, Core Foundation is open source (http://www.opensource.apple.com/source/CF/CF-635.19/), though IIRC only parts of it currently work on Linux. Calling Core Data "Apple's best stuff" is a serious stretch, if you have ever used Core Data :)
> The idea that organisations 'owe' the community copyleft software is therefore a bit foreign to me.
It's not about owing something. Apple is not just passively not releasing copyleft software, they're putting a lot of work into releasing non-copylefted alternatives. That's their right of course, and there are certainly good aspects to it.
> That's a bit of a weird assumption. Apple's statement was the the Swift code and standard library would be open-sourced. What is the 'best stuff' that we're not going to get?
I can well imagine them having their equivalent of System.Windows.Forms, or of Google Play Services, so that even if the language is notionally open, no iphone apps will run on the open-source version of Swift.
Of course we don't know, because nothing is open-source yet. Which is the biggest point, I think. Good intentions are great, but let's not give apple too much credit until (and unless) we can actually clone and build their repo. We've had broken promises of this sort before (facetime protocol).
Open-sourcing Swift doesn't really have anything to do with being able to run iOS apps outside of iOS. Objective-C has been open-source for a very long time, and this would at most only bring Swift to the level of openness of obj-c. There's countless libraries unrelated to Swift that you'd have to also open-source to be able to run iOS apps as-in on an entirely open source stack.
> Apple is not just passively not releasing copyleft software, they're putting a lot of work into releasing non-copylefted alternatives
Do you mean Swift, or LLVM/clang? I mean, LLVM/clang are, amongst other things, an alternative to GCC, but I think most people would say that having some competition there is a _good thing_. Swift isn't really an alternative to any copyleft thing that I can think of.
> I can well imagine them having their equivalent of System.Windows.Forms, or of Google Play Services, so that even if the language is notionally open, no iphone apps will run on the open-source version of Swift.
The intent here isn't that iPhone apps will run on Swift on Linux, say; there are lots of libraries there that aren't part of Swift and aren't otherwise open-sourced.
Open sourcing System.Windows.Forms wouldn't achieve much anyway because it depends on the Win32 API which is Windows-only. The same is likely true of Cocoa Touch, I imagine it , depends on a lot of iOS functionality.
C# and .NET's openness is a great thing and I think it's unreasoanable to expect to be able to write Windows apps on other platforms which lack the underlying APIs to support them. The same is true of Swift - why all the complaining?
The main point of comparison for C# is not Swift but Java, and in Java all the UI frameworks are cross-platform. Also the fact that Mono managed a pretty good implementation of System.Windows.Forms suggests that Microsoft's reasons for omitting it from Rotor were, uh, not entirely technical.
The best stuff that we're not going to get, is everything above the STL, but I doubt anyone is expecting that Foundation/Cocoa are going to get open sourced any time soon :)
Here are some other users who may feel they are getting the "best stuff":
Compiler designers, programming language researchers, or even CS students the Swift core is a fount of of information to learn from, modify, experiment.
Teachers whose school could not afford Macs. They can now use Swift on cheap Linux machines, and eventually on Windows.
> The idea that organisations 'owe' the community copyleft software is therefore a bit foreign to me.
What do you mean? That is the very credo of free software, namely all software should be free. Hence, everybody owes the community free software. You might not agree with it, but that's the ideology behind free software.
> Google and the Android platform has equally went out of the way to isolate the platform from the effects of the GPL.
That's absolutely true. That effort is why Google didn't use OpenJDK (which is under the GPL), which led to Oracle suing them. All because Google went to extreme great lengths to avoid the GPL (they did have their reasons: they believed, perhaps rightly so, that phone manufacturers would not agree to a GPL platform).
Hence, everybody owes the community free software.
I think the credo is that developers owe the users of their software certain privileges, like access to source code and the right to modify and redistribute that source code.
What I don't like about the way the free software movement demands these rights is the misuse of the words freedom and liberty. By using these words, they deliberately imply that withholding these privileges from users is tantamount to a human rights violation.
I think that is an insult to people suffering from real human rights violations.
Ideologies are not binary -- they each have relative importance. I don't think for a second that the FSF places software freedom above human rights or even equates the two. You can be a staunch theft opponent; that doesn't mean you believe theft is tantamount to murder.
The wording they use equates the two and I don't think that is an accident. Either they believe it or they use it for effect, just like the media industry likes to call copyright violations theft.
I don't see how you can imply a human rights violation. "Human rights" are a largely technical term. It's not just rights that humans have, it's a special category of restrictions, and unless you point out the significance of that, you're not talking about human rights. The term "Human Rights" is not very good because it invites confusion. This is not the FSF's fault.
But you can't go from "you have rights" to "that's a claim of Human Rights."
You are imagining what people think and being offended by it, which is your own fault.
>I don't see how you can imply a human rights violation
By using words that are closely associated with that context. This particular article goes even further, using words usually reserved for humans (or animals) to talk about software itself:
"[...] Objective-C was liberated. [...] when and how programming language software is liberated. [...] keep the core operating system of Android liberated."
>But you can't go from "you have rights" to "that's a claim of Human Rights."
And I did not. I specifically complained about the misuse of the terms "freedom" and "liberty". I have no problems with "rights". Quite the contrary, I value my rights as a user of open source software. But they are different, less important, rights than my fundamental human rights like freedom and liberty.
>You are imagining what people think [...]
Well, you know, that's the only thing language can ever do. Make people imagine what you think.
What words do you think they should use? Don't you think the fact that they are talking about software provides enough context to determine exactly how important those rights are? Clearly they can be no more important than the software itself. So I don't know why you'd think software is on the same par as human rights, and that this'd be a problem with first recognizing the importance of software in human life.
That is, software rights can't be more important than software, and if software is critically important to human life, then software rights are human rights. And whether or not software is that important today, it is quite likely to be in the future.
>Well, you know, that's the only thing language can ever do. Make people imagine what you think.
Yeah... So why'd you quote the first half of that statement to make an irrelevant observation? Language doesn't force you to be offended.
> That is, software rights can't be more important than software, and if software is critically important to human life, then software rights are human rights.
I don't follow that logic either way. Of course you can hold the opinion that the principle is more important than any individual case. And the free software movement clearly does that.
On the other hand, there are many things that are critically important to human life, but that does not mean that specific ways of regulating them are human rights or even important.
Human rights are ends in themselves based on needs that all humans share, like the right not to get tortured. All humans do not share the need to distribute modified versions of other peoples code, even if that code runs the nuclear power plant next door. What humans share is the need for the code to be safe, but there are different means to that end.
The ability to participate in an economy in an informed and voluntary manner is a human right. That's why we tend not to practice Laissez Faire 'let the buyer beware' capitalism: because it results in blatant exploitation and in some extreme cases, slavery.
When purchasing software, the ability to view the source code is critical to making informed economic decisions. (I suppose you could have a regulatory authority that verifies software as well, but that comes with a whole other can of worms.) And unless you can build that software from source, you have no effective guarantee that the source you are looking at corresponds to the binary you are running.
>The ability to participate in an economy in an informed and voluntary manner is a human right.
I think we have worked out the core of our disagreement then. For me, not having exact knowlege of how every product I use is made and not having the right to copy, modify and redistribute someone elses product is not a restriction that is comparable to slavery, torture or imprisonment without trial. And I think people who were slaves and got tortured would agree.
There are so many things that we're not allowed to know, so many things we're not allowed to do, many of them much more important than distributing modified source code. If we start calling all of that a human rights violation, we are watering down the notion of human rights until nothing is left.
The power of universal human rights is that it is a small set of very basic things that people can agree on across all cultures and across most ideological divides. You got to think about whether or not FOSS is important enough to dilute this idea.
But again, I have no problem with the FSF fighting for the rights they fight for and I think Richard Stallman's work is net net very positive for the world. I just don't like this particular way of advocating it.
The reason why Google went with writing their own version of Java has nothing to do with avoiding the GPL and everything to do with avoiding to have to pay money to Sun.
Well, they had two options: license Sun's Java or do as they please with the GPLed OpenJDK. If they'd chosen the latter they wouldn't have needed to pay a dime. Sun/Oracle place no restrictions in addition to the GPL itself when it comes to OpenJDK (in fact, the GPL explicitly prohibits any such further restrictions). You can do as you will with it.
My understanding was that Sun (and now Oracle) had "field of use" restrictions on the JDK that prohibited it being used on mobile devices without buying a license.
I am not sure how enforceable those restrictions were, but I imagine that factored into the decision to use the Apache JDK project
That was before OpenJDK. There are a few ways you can license Java. You may freely implement it yourself, but then you must pass the TCK and abide by Oracle's field-of-use restrictions, you may negotiate a license from Oracle (Sun at the time) for their source code and use of the technology, or you can do whatever you like with OpenJDK (although to use the Java trademark you probably need to conform to some other requirements)[1]. BTW, Oracle/Sun's JDK is OpenJDK with a few advanced monitoring/profiling add-ons.
In any case, OpenJDK was released in May 2007, and Android unveiled in November later that year and made available only a year later. The reason Google used Apache Harmony was because they couldn't reach a licensing agreement with Sun and chose not to use OpenJDK because of its GPL license, believing phone vendors would reject it.
As Google probably wanted to have a non-standard edition of Java, it's unlikely that Sun would have licensed it to them (or they would have required a new standard being formalized first). Their best option was to use OpenJDK, but they didn't. They wrote their own runtime -- which, to this day, is at a great performance disadvantage compared to OpenJDK -- suffers annoying incompatibilities and is a few Java versions behind, all in order to not use GPL software.
Was Google right in thinking that phone manufacturers not have put up with GPL? I'm sure that at the time that's what the phone makers told them. Perhaps Android wouldn't have taken off if they had tried to shove the GPL down their throats. But I believe that with the iPhone breathing down their necks and no better alternative, the phone vendors would have yielded. We would have ended up not only with a much better, faster, more compatible Android, but with the most ubiquitous operating system on the planet being truly free. This also would have prevented the Oracle-Google lawsuit.
Instead, we're left with a slow OS that's years behind embedded Java, not truly open (as closed-source modifications are made by vendors), and a legal battle that some believe may have far-reaching consequences. All because people are afraid of the GPL.
[1]: For example, I believe (though I'm not sure) that IBM's and Aicas's JDKs follow the first choice (maybe the second), Azul's Zing JVM the second, and Azul's Zulu the third.
> They wrote their own runtime -- which, to this day, is at a great performance disadvantage compared to OpenJDK
This is completely incorrect. OpenJDK is absolutely not optimized for mobile and it would have been a disaster on mobile. A lot of the Dalvik runtime and libraries have been rewritten with performance and memory in mind.
You are right that Dalvik was written to be optimized for mobile, but you have to understand compared to what. Dalvik is optimized for mobile compared to simple VMs that don't have a lot of work put into them -- not compared to HotSpot. Java's embedded versions have had a lot more effort put into them than Dalvik.
Dalvik itself was plan B for Google, after they'd failed to secure a licensing deal with Sun (and didn't want OpenJDK's GPL). It wasn't anyone's first choice, and certainly wasn't some new powerful technology. Just a VM that was good enough compared to the effort that's been put into it.
There are open source (obviously) OpenJDK distributions[1] specifically made for embedded devices (although you can build them yourself), and (proprietary) editions of Java have been running on devices as constrained as SIM cards for much longer than Android exists.
You are glossing over the fact that Dalvik is a multiprocess VM. There is no such JVM, even today.
This aspect and the Dalvik bytecode are the main reasons why Dalvik is so fast on mobile. No other VM (or JVM) can realistically compete, especially not HotSpot. Not now and certainly not back then.
> You are glossing over the fact that Dalvik is a multiprocess VM.
Making HotSpot multi-process would have been a much smaller effort for Google. It really isn't that hard.
> No other VM (or JVM) can realistically compete, especially not HotSpot. Not now and certainly not back then.
I've just shown you how HotSpot embedded handily beats Dalvik. Remember, Dalvik was Google's plan B. It wasn't anyone's first choice, and certainly not some cool groundbreaking technology. It's a not-too-shabby VM for the amount of effort put into it (which isn't much), and it was available for Google to buy. That's all.
Was the is the performance difference between HotSpot and Dalvik worth $45 million in 2006 dollars?[1] Those were the alleged licensing terms proposed by Sun ($20 million upfront + 10% Android revenue capped at $25 million).
Your budget determines the kind of software you get. On a purely engineering basis, Hotspot might have been the better option, Business-wise, Dalvik made sense to Google.
I don't know, but it was certainly worth much more than the $0 they would have paid for HotSpot if they'd had the guts to go with the GPL. That's what's missing from the timeline:
* March 2007 -- Sun open sources the JDK at the perfect moment for Google to adopt it. Google chooses not to because they don't like the GPL.
I think the phone vendors would have caved. It might have taken another year, but they would have realized they had no choice once the app store opened in July 2008, as none of them could have had the brand recognition to build an attractive software platform to rival the iPhone.
I strongly suspect Android's uptake by manufacturers and MNOs would have been far less if it was licensed as GPL. So there would have been an opportunity cost to Google (that is certainly not $0).
Do you think Sony, let alone Verizon would cave and agree to the terms of the GPL? Remember this is in 2008 - Sony's DRM/rootkit scandal was only 3 years prior (2005).
Verizon doesn't make phones (I think; not too familiar with them), so what do they care? But Sony, yes, I think that when the app store opened in mid 2008, they would have realized they have no other choice but to rally around a single software platform, and one that's made by a company with a bigger brand in the software world than them. If GPL was the bitter pill they had to swallow, they would have. The upside to GPL from their perspective would have been that all of their competitors have to abide by it, too.
Also, just to clarify, the pill really isn't all too bitter. Use of OpenJDK wouldn't have dictated that all apps must be GPL -- not even bundled apps made by the manufacturer. The OpenJDK has a clear "classpath exception", which makes it more like LGPL -- any code dynamically linked with it is not required to be GPL. The only implication is that any modification they make to the actual runtime itself would have needed to be GPLed. I don't think phone manufacturers make any technologically groundbreaking, game-changing changes to the runtime -- anything that could hurt their competitiveness had it been free.
So I can understand Google's decision, and they certainly believed going GPL was an opportunity cost, but in retrospect, choosing OpenJDK would have -- at the very worst -- delayed Android's adoption by a single year, but would have ended making everyone's life much easier. I think that in hindsight, it's clear that passing on OpenJDK was a big mistake. Don't fear the GPL.
Verizon does not make phones - it sells them. It was responsible for much of Android's early success in the US with it's multimillion dollar "Droid does" ad campaign to the extent that "Droid" was synonymous with "Android".
Yes, but if Google had not been afraid of the GPL, there would have been no need for that fight. OpenJDK is licensed under GPL plain-and-simple. Google could have done whatever they pleased with that code (and would have had far less work to do, and would have had a more modern and performant runtime).
> Yes, but if Google had not been afraid of the GPL, there would have been no need for that fight.
If Android had been using the GPL, it would probably never have taken off because:
- Manufacturers and other partners would have refused to use it
- OpenJDK is not optimized for mobile, so performance would have been disastrous (especially in 2007, try to remember the kind of phones we were using back then)
I'm not sure that is the credo. At least, it's not the credo behind the GPL. Every day I use software that is at least partly GPL code, but I can't access the source code. Why? Because I used a webapp. If the software you use is running on a server rather than your local machine then the GPL says you don't get to have 'freedom'.
So "users" isn't a useful distinction when it comes to Free Software, because the GPL doesn't guarantee freedom for users. It only guarantees freedom for the person who owns and controls the hardware.
When the GPL was written, this kind of software wasn't very common. Now that it is, the FSP formalized the AGPL, which they recommend over the GPL for server-side software.
Nearly any software is potentially server side software. So really they should recommend AGPL for everything, and relicence all FSF owned projects as AGPL.
They don't because a lot of people even inside the FOSS community are violently opposed to the AGPL. Quite a few people think that it conflicts with Freedom Zero.
There is no meaningful distinction between user and developer. All developers are users, and in cases like this, with compilers, all users are also developers.
Reading this thread, I can only imagine some people saying to themselves: and this is why we don't open source our code.
I wonder how many companies keep their source completely closed so as not to have to deal with this kind of PR? Would we not be in a better world if, when a company offers code under a BSD-like license, we just say "thank you very much" and move on? If we don't like the license, we develop our own code under a different one, and that's the way the world is meant to work, surely?
There's a lot about this backlash I genuinely don't understand.
I completely see your point. But then we've learned from microsoft "embrace, extend and estinguish" tactics that something that may look good at first happens to be, in fact, just a trap to lock you into spending money for something that you didn't used to.
Imagine that swift becomes a super dominant language both for client and server, but that half of the ecosystem still remains locked by Apple, to have you buy apple products (like developing for iOS today requires you to buy apple products, which i personally don't mind because i love their products, but it shouldn't be mandatory).
I guess it's normal that developers as a community takes great care into what path they're heading toward.
> Imagine that swift becomes a super dominant language both for client and server, but that half of the ecosystem still remains locked by Apple, to have you buy apple products
If that happens (which I suspect is unlikely, though I can see it being quite attractive to some people interested in Rust and Scala, say) then it will become dominant on the strength of the released language, not on Apple's unreleased libraries.
> Imagine that swift becomes a super dominant language both for client and server, but that half of the ecosystem still remains locked by Apple
Isn't that exactly the situation with C# and .net?
C# is kinda open source but the runtime is completely Microsoft's. Nobody seems to make a big deal of it, and C# developers seem pretty happy with their platform overall.
I wouldn't call C# a super dominant language. it is extremely popular in the corporate world, where paying for something is seen as a good thing, because it means you've got support from a vendor.
In the start up culture, where technological innovation and taking risks are core values, people tend to favor maximum freedom and maximum technological possibilities, which are often in contradiction with what a corporation would like you to do.
Now that corporations want to have the same level of innovation you usually find in start ups, they start to want to use the same tools and embrace a bit of its culture. Note that Microsoft saw that and have announced massive open sourcing of every part of the .Net ecosystem just this year (which made a big impression here on HN, judging by the comments).
And now we've got Apple and swift, and people start to wonder if it's going to be "Ballmer" open sourcing, "Nadella" open sourcing, or "Stallman" open sourcing.
It's not just a matter of ideology. It will have practical consequences on the possibilities of using the language on every server configuration, of building innovative software with it, things even people at Apple wouldn't anticipate. Or if you're going to remain constrained to where Apple wants to allow this technology to grow.
- C# did not become super dominant.
- The runtime was only recently open sources, and MS keeps on releasing more bits. Their goal is to clearly port the entire runtime to OS X and Linux.
Agree this is unreasonable and makes no sense. "Embrace" is Microsoft releasing IE and "Extend" is adding IE only features and "Extinguish" is killing Netscape. How is Microsoft open sourcing C# or, in this case, Apple open sourcing Swift in any way an "Embrace" of an existing technology or standard in an attempt to destroy it?
We have Apple open sourcing Swift, Google open sourcing Go and MS open sourcing C#. Things have never been safer from the EEE strategy, indeed nobody seems to be even using it anymore.
Since you're talking about my comment, i just want to make a point : i'm absolutely thrilled by Apple's announcement. I just hope they're going to go all the way in.
I also understand why people that have been disappointed by previous MS tricks start to raise caution signs. That's the only reason i quoted the embrace stuff. To remind people that sometimes tech companies have hidden motives to offer free candies. Not because they'll be reproducing the exact same strategies.
Oh, I fully don't trust MS, Apple or Google at all. It's just that right now, only Google is in a good position to screw us (and one could say they are) and it's not because of their EEE strategy.
Vice president of Intel, Steven McGeady, testified that Microsoft vice president Paul Maritz used the phrase in a 1995 meeting with Intel to describe Microsoft's strategy toward Netscape, Java, and the Internet.
So it's hardly fringe and people are well founded in their beliefs that this is a strategy that's end goal is to make Apple more dominant, not "help open source" or "be friendly to developers".
Lots of comments are talking about how Apple "doesn't owe [the FSF] anything" and that it's a "business decisison". This is all true, but it misses the point.
The point is that the current trend of companies releasing stuff under non-copyleft licenses and keeping the 'good stuff' in proprietary forks is bad for free (FSF-style) software. That's why the article argues that you should take a good look at what these companies are actually doing beyond press releases and act accordingly.
You might still think that free software is unimportant or that having pseudo-freemium open source release is still better than nothing. But that's your own decision, based on your own values, which might not be the values the FSF thinks of as important.
> The point is that the current trend of companies releasing stuff under non-copyleft licenses and keeping the 'good stuff' in proprietary forks is bad for free (FSF-style) software.
Copyleft is meaningless without Copyright.
Apple created Swift, and thus owns the Copyright.
As the Copyright owner, Apple can licence/release Swift or parts-thereof, as it chooses.
Even if they did release Swift under the GPL, nothing would prevent them from also using a non-released version of Swift or from keeping certain parts/libraries in-house.
> You might still think that free software is unimportant or that having pseudo-freemium open source release is still better than nothing.
I think its both insulting and an incredibly narrow-view to call permissively licensed software "pseudo freemium".
Either you/the author are claiming Apple will break the licence terms they themselves have chosen to release the software under, or you're insulting permissively licensed software.
I'm not trying to insult anyone. The BSD and similar licenses are of course free software licenses, and the FSF does (again, of course) acknowlegde that.
Still, a company like Apple can use these licenses to take outside contributions in their proprietary software. Freemium might not be the right word for that, but I think it's not unreasonable to dislike these (completely legal) practice.
> Copyleft is meaningless without Copyright. Apple created Swift, and thus owns the Copyright. As the Copyright owner, Apple can licence/release Swift or parts-thereof, as it chooses. Even if they did release Swift under the GPL, nothing would prevent them from also using a non-released version of Swift or from keeping certain parts/libraries in-house.
If swift is GPL, Apple cannot keep secret changes it makes on top of third party contributions.
If swift is MIT/ISC, Apple can keep changes made on top of third party contributions secret.
Oh like Oracle cannot make a commercial closed version of MySQL because it is under GPL[0]
or QT[1] cannot have both a closed and a GPL version.
There are a lot more examples of this.
On the other hand look at how RMS/FSF talks about LLVM and BSD[2], i am a developer there prefers the MIT license for my software, and for me FSF and GPL are a lot more dangerous then apple and there open source license.
> Oh like Oracle cannot make a commercial closed version of MySQL because it is under GPL[0] or QT[1] cannot have both a closed and a GPL version.
Oracle can't pick up third party patches and incorporate them into their proprietary version (for example: patches from MariaDB). They can only incorporate their own changes, and changes that other sign over.
As I see it permissively licensed code puts every one on equal terms. We all can make open source forks & we all can make proprietary forks. With copyleft some one is more equal and it is not the users, since we can only make copyleft forks.
Except that lone developers or small teams and large corporations aren't equal. A lone software developer who works on software under a permissive license is not benefitted to the same degree by those supposed "equal terms", because he doesn't have the resources of a larger team or corporation to exploit that "permissiveness".
Or you could contribute back to the copyleft project (without copyright assignment or relicensing grants) and then you're all on equal terms again: nobody can make proprietary forks.
Why should i take the freedom of making proprietary forks away from people?
My goal with open sourcing my software are to make the (software) world just a little better, i do that by writing the best software i can and hope that as many people possible use it, if i write the best ftp library in the world and you need a ftp library for your proprietary program i hope you use mine instead of an inferior implementation.
In my world view i do not loss anything by you making a proprietary forks of my work (i still have my version of my work with my license) but you and your users are getting a better product.
If your priority is to improve the quality of the software that people use, I don't think you should use copyleft.
If you think that quality is important, but that as important as that is that users should have control over the software they use, as part of the control they should have over their own lives, then I think a copyleft license is a good tool to help achieve that.
My comment was in the context of big company X, "releasing something in a permissive license" vs "releasing something in a copyleft license". Either way I prefer to use, support and contribute to permissively licensed projects.
If swift is GPL, Apple cannot keep secret changes it makes on top of third party contributions.
AFAIK, even the FSF requires copyright assignment – Apple likely would too, and this means any 'official' work on Swift will can be released by Apple under any license they wish.
Of course, if you don't agree with that, you are free to license your contributions as GPL and release them to the community without assigning copyright. They just won't be part of the official distribution, and Apple can't build on them. That's the best of both worlds, then.
>FAIK, even the FSF requires copyright assignment – Apple likely would too
Assigning copyright to a 501c(3) non-profit is much different than assigning copyright to a for-profit multi-billion dollar corporation.
I've completed the copyright assignment form for some of my contributions to GNU. The FSF's terms are reasonable and the legal text prevents the FSF from being able to make the software non-free in the future. I really dislike copyright assignment in general, but the FSF is in a unique position and I appreciate that they can defend the GPL on my behalf.
I invite you to google "Contributor Licence Agreement". Either way I don't see why we are arguing about it, Swift will be released with a permissive license, which is a good thing :-).
> I invite you to google "Contributor Licence Agreement".
I know what they are, and that doesn't change anything. Apple can't force people to sign a Contributor Agreement. Look at, for example, what happened with MariaDB and MySQL. Oracle can't force the MariaDB devs to sign the agreement, nor would Apple be able to in similar situations.
>pseudo-freemium open source release is still better than nothing
No - it's much better than copyleft - the only point he has is the lack of patent grants - which is achievable without copyleft (like Apache license).
Apache gives you the code and the ability to integrate the code in to your product where the copyleft part might not fit.
Open source isn't some ideological dogma for me or these companies - it's a tool to lower the cost of maintenance/support (eg. community is very good at maintaining ports for niche use cases you don't have the resources to support), gain exposure and provide better tools for developers (it's much easier to work with tools that you have source access to).
If you see open source as that then (A)GPL becomes a niche license that's useful for stuff like giving people free access but knowing that copyleft will unacceptable for most commercial applications so they will need to license a custom version (eg. this is the business model of companies like Qt, Xamarin, etc.)
Being a useful tool for businesses is not the main goal of free (FSF-style) software. The freedom of the user to read the source and modify the software is. That's why they care about the distinction between open source and free software.
You can disagree with this, but I think just dismissing it as ideological does not do it justice.
>The freedom of the user to read the source and modify the software is.
A freedom 99.9999% can't even use (because they can't read code or the code in question). These aren't 70s - code for modern applications is huge/complex and requires familiarity with the field to understand - your average programmer can't use the code even if he/she has access to it.
Instances where code access is actually meaningful is closely related to someones expertise domain and that's also related to business (including "hackers" - as modern hackers are trying to monetize their ideas) and while GPL isn't a blocker for commercial use by default it usually ends up being a no-go in the practical sense.
The other counter-intuitive reality of GPL is that as long as you keep your changes private you aren't required to release the code to the public. This can lead to some ironic cases where for eg. I can modify a GPL project to integrate with my code and produce something valuable - and if I wanted to provide those changes for free to give back to the community - but not release my code - I can't do that - so in the end I get the benefits and can't (for business reasons) give back.
I can understand LGPL - you explicitly ask for changes to the code back so you can benefit from them - this is just a formalization of the implicit assumption that people will push back their changes to simplify their maintenance costs.
Opensource licenses give you all the practical benefits of free software you need without the downsides.
A freedom 99.9999% can't even use (because they can't read code or the code in question). These aren't 70s - code for modern applications is huge/complex and requires familiarity with the field to understand - your average programmer can't use the code even if he/she has access to it.
Most people benefit indirectly by using forks created because those rights exits. And you can also pay someone to work on it for you: while this is rarely true for consumer software, we see it all the time in the business world.
The other counter-intuitive reality of GPL is that as long as you keep your changes private you aren't required to release the code to the public.
That's counter-intuitive because, unfortunately, people have the wrong idea about the purpose of the GPL. It's not about giving back, it's about paying-it-forward to the next users. So it makes perfect sense that if you don't have users, the GPL doesn't force you to do anything.
Opensource licenses give you all the practical benefits of free software you need without the downsides.
That's another misconception; the GPL is also an open source license, and the BSD/MIT are free software too.
Almost all open source licenses are free software, and vice-versa.
>Most people benefit indirectly by using forks created because those rights exits. And you can also pay someone to work on it for you: while this is rarely true for consumer software, we see it all the time in the business world.
You're arguing my point here - most people don't care about the code - they care about the derived work - so non-copyleft licenses serve them even better because they allow for more use cases (more forks). Even if my fork is commercial if you're willing to pay for it it means that existing code doesn't serve your purpose - therefore you benefit from that closed source/commercial fork. In most cases the commercial fork would not even exist under copyleft model so you can't argue "they won't benefit from further forks".
>That's another misconception; the GPL is also an open source license, and the BSD/MIT are free software too.
I think it's clear that I meant that "non-copyleft open source licenses give you all the practical benefits of open source without the downsides of copyleft"
You're arguing my point here - most people don't care about the code - they care about the derived work - so non-copyleft licenses serve them even better because they allow for more use cases (more forks). Even if my fork is commercial if you're willing to pay for it it means that existing code doesn't serve your purpose - therefore you benefit from that closed source/commercial fork.
Yes, but the point is to promote forks of forks (and so on). If you close it, the branch dies there.
But then we come back to my original point that you're (GPL people) arguing for ideology (idea that being able to crate forks is intrinsically valuable) and i'm arguing that copyleft means less forks in the first place and that a closed source fork is better than no fork.
By the same token, it might also be nice to see FSF advocates taking on board the notion that they have brought some of this on themselves with newer versions/variants of the GPL.
While I consider the GPLv3 family to be shoddy licenses in practice (I wasn't aware that it's possible to build a wall of text that makes seasoned lawyers run away, screaming), I understand the rationale.
First, that there were devices shipping GPLv2 code that couldn't be replaced. Remember that the entire FSF story began with a printer driver that couldn't be replaced. Tivo struck a nerve there.
Second, the SaaS phenomenon which, again, works around the spirit of the GPLv2 for which the (already existing) Affero GPL license was integrated properly through some notion of a modular license (GPLv3 + extensions for the "L" or "A" specializations, instead of three completely distinct texts).
Absolutely, I hope I didn't convey a message that I think the licenses aren't without justification. I do think that they have gone too far though, and I think that is somewhat supported by the (as I see it, at least) lack of interest in v3/AGPL from large companies involved in FOSS.
If anything, from the part of the universe that I observe closest (cloud stuff mainly, especially OpenStack), the exact opposite of what FSF would want, is happening. Projects seem to be choosing far more strongly to go with much more liberal licenses such as the Apache Licence.
>You might still think that free software is unimportant or that having pseudo-freemium open source release is still better than nothing.
It's strange that you call permissive licence "pseudo-freemium" when the GPL is just as often in that way. The GPL is generally seen as a preferable licence to use in that situation since it's more difficult for competitors to make use of the code commercially - which means they are more likely to buy the paid licence. x264 is an example of a project like this. It's GPL licensed specifically so that people who want to use or modify it for use in commercial settings buy the expensive commercial licence (the lead dev considers other people using code he wrote to make money without giving him a cut to be "theft").
> The point is that the current trend of companies releasing stuff under non-copyleft licenses and keeping the 'good stuff' in proprietary forks
What makes you think they'll be doing that? They generally don't with clang/llvm (the only counter-example being that they briefly had a private llvm fork with ARMv8 support, but that was likely just rushing out ARMv8 support when they unexpectedly launched an ARMv8-based phone two years ago).
I don't believe Mr. Kuhn is especially aware of how LLVM is developed. I am a regular contributor to the project (> 1000+ commits) and it is simply not the case that one can contribute code in this way.
The LLVM project makes it's stance on patents quite clear [1].
Where does he claim that you can't contribute code to LLVM?
His claim is that Apple ships a LLVM that is different from what you can get as source code (thanks to a lack of copyleft). See the saga of the two aarch64 backends...
If that is what he "expects" then he is clearly ignorant of the history of Apple and open source. The Apple Public Source License, Version 2.0 predates the GPLv3 by years and it includes a patent grant[1].
At one point Apple actually wanted to merge the entire of llvm into gcc, and were prepared to non-assert and patents that might be involved: https://news.ycombinator.com/item?id=8868994
Given the success of LLVM since then, it doesn't make much sense to merge them now. The GCC maintainers would demand the removal of a lot of the key selling points of LLVM that have made it so popular among language designers, researchers and academics (the modular architecture, libraries that expose the AST etc).
There are many reasons why it's unlikely to live at opensource.apple.com, here are some of them:
First off, some frontend features are only feasible by changing LLVM itself. This is uncommon but ultimately not rare at all, this is where IR features like musttail, inalloca, safestack and segmented stacks originated. It is unlikely that swift will never need such a change.
Secondly, it would directly contradict what Chris Lattner announced at WWDC: They are going to accept contributions (both ideas and code) from others.
Finally, a frontend which generates LLVM IR has a very tight dependency on LLVM itself. LLVM IR is allowed to freely evolve which, in turn, causes APIs to change or disappear. It is much easier to deal with this if your code lives on llvm.org because the community is obliged to make sure your code continues to work. People fix polly, lldb, clang, etc. if their change to LLVM broke them.
I'm not sold on the inherent good of copyleft licenses. The author seems to think that funding development of permissively licensed free software is, in fact, a bad thing. I'm sure that seems obviously true to some people.
If Apple is a "wily opponent" of open source, then maybe we need more such opponents?
(Also, I'm not following the argument that Apple is open sourcing Swift to try and beat Android. Nor do I think the Android platform deserves as much of a pass as the author gives it.)
Chris Lattner fought many years (I believe he started working on Swift 5 years ago) to eventually bring Swift to the open source world. It's not a "tactical stunt" to implement Apple's evil plan to lure people away from Android/Linux. Believe it or not, there are people inside Apple who really want feedback and contributions from the community to improve their language.
You misread. I don't expect outside contributors to call the shots. b00gizm referred to "people inside Apple who really want feedback and contributions from the community to improve their language" and I suggested that those inside contributors might not have the power to allow effective outside feedback and contributions.
Incidentally, if Swift is to be widely adopted outside the Apple ecosystem, it'll help hugely if it becomes a community project, not "Apple's project".
You can't convince this crowd that Apple is an organization of people, with people inside it, who want to achieve things other than make Apple money. You just can't. I don't know why. Apple is evil in some very special way, apparently.
This kind of texts always reminds me of political/religious pamphlets.
If you love freedom so much why don't you just let people release their software under a license they seem appropriate and you release your software under copyleft?
If Apple's not your friend don't play with them. Don't try to force them into a friendship.
This is a political statement, and I think it's a good one. Politics means the struggle over power distribution in society. It is an unqualified good thing! Some people don't like the game of statesmanship, namely how people bargain over politics, but that's a whole other matter altogether. Politics means defining to ourselves what our goals are. For example, if you say that we as a society should invest in technology because technology can make people's lives better then you've just made a political statement (a very vague one, but undeniably political). Anything that states what we should do as a society -- as opposed to, say, stating what is -- is by definition political.
And by the way, political statements are different from religious ones (though the two may overlap). This is not a religious statement.
The answer to your question (which is also a veiled political statement) is that allowing non-free modification and distribution would go against the political goals of the article's author, who believes that when it comes to software freedoms, all liberties should be granted except for the liberty to restrict that freedom. You may not agree with that political ideology, but it certainly makes sense (but bear in mind that disagreeing with this ideology isn't lack of ideology -- which is impossible if you have an opinion on what we should do -- but merely a different one).
I didn't say it's religious. I just said it reminds me of a religious black&white world view: There's the bad thing that will land you in hell and then there's our thing that will save your soul.
Don't know. It's the whole style. Phrases like "Apple's pathological hatred of copyleft" just don't sit well with me. If you want to educate me: fine, do it. But at least try to avoid sounding like a fanatic.
I guess it's the abstract, evangelical nature of it that makes it comparable to religion in some ways.
The implicit assumption you're making is that developers are not making an informed decision already. I reckon that's not the case, and the developers are informed – they just don't care.
Arguments about long-term, abstract concepts like enduring freedom of software, or the risk of patent litigation for using non-copyleft software, are valuable to have. But these things have a limited impact in the short-term, day-to-day work of developers.
Except, nearly the entire article is based on speculation. Speculation doesn't raise awareness, it simply makes you think you're informed. In reality, you're just accepting someone else's biased opinions.
I think to me its so about how preachy it all is. It's summed up by me with
> their goal is to end copyleft compilers.
Copyleft has nothing to do with this. Apple just want to make a better compiler. If a copyleft compiler is thrown by the wayside in the process, or they choose not to release under a copyleft license, that's just collateral.
Stop being so preachy and making Apple out to be malicious. They just don't care.
I think a better word might be bigoted. The author seems to have strong intolerance for anybody who doesn't share his precise view of software licensing.
> If you love freedom so much why don't you just let people release their software under a license they seem appropriate and you release your software under copyleft?
"Freedom" is only defined in terms of one's beliefs about human rights. Some people (myself not included) believe that they have a right to view and modify the source code of all software they interact with in any capacity. To those people, there is no "freedom to release software under a license they seem appropriate," because the only licenses that do not violate what they perceive to be their rights are open source licenses.
You yourself said "your freedom ends where my freedom begins", and if one defines "my freedom" as "my right to modify and distribute the software I have legally acquired", you can see how laws that ban that are against the principle you referred to. It's not that anyone wants to force Apple to release software, it's that the FSF expects Apple to give back users the rights that ought not to have been taken away through unjust copyright laws. Of course, there's always the option of exclusively using libre alternatives, which the FSF does advocate, but from FSF's point of view, that doesn't mean that they shouldn't complain about how Apple is taking advantage of unfair laws in addition.
>"my right to modify and distribute the software I have legally acquired", you can see how laws that ban that are against the principle you referred to.
Sure, you can modify and redistribute any software you have legally acquired. But that means you have to buy out the original author (like in: he hands over the copyrights to you).
As an end-user on the other hand you usually just acquire a license and not the software itself. And as a license is just a contract you are only permitted to do what the license allows you to. Not what you think you should be allowed to.
Or, if you don't like it, you can complain like the FSF does, in addition to not getting a license.
(To be clear, by legally acquired, I meant paying a developer for a copy of software. The fact that the developer can dictate what the customer does with the software is the status quo that the FSF is complaining about.)
> To be clear, by legally acquired, I meant paying a developer for a copy of software
The only time you're literally paying for a copy of the software is when you e.g. buy a Linux distro on physical media.
Otherwise, you're paying for a licence to use the software - either for a limited time or perpetually, depending on the terms of the licence.
> The fact that the developer can dictate what the customer does with the software
The developer isn't dictating what the customer can do with the software - Adobe isn't telling you that you can't use photoshop to superimpose a supermodel into a photo so it looks like you're friends. Adobe is telling you that you are paying for the right to use the software, not for the right to see or modify or redistribute the source code.
We get it - you think all source code should be open and available for users to tinker with as they wish. The vast majority of the world doesn't work that way, and the vast majority of software developers don't agree with your point of view.
Actually, I don't hold that (FSF) position. I just don't accept the idea that copyright rights are a freedom worth prioritising, and users' rights are a freedom worth ignoring. Also, I don't accept the idea that copyright rights are equivalent to property rights in legitimacy.
These people would claim that it is unjust to distribute any software without providing access to its source code, regardless of the terms of a contract. They probably wouldn't oppose software licensing in theory, but they would require that the source code be available.
I don't think you're understanding my point. These people believe that the existence of closed source software is a violation of their rights, so they too would make the argument that your freedom ends where my freedom begins.
The problem with that line of thinking in general (not just limited to this topic) is that it ignores externalities. It takes the libertarian stance that a man is an island.
"To me, Apple's not-yet-executed move to liberate some of the Swift 2.0 code seems a tactical stunt to win over developers who currently prefer the relatively more open nature of the Android/Linux platform."
They said why this was the case -- Swift 2.0 isn't finished yet -- but have pledged to open-source the entire thing.
It's not necessarily a bad thing to have sentinels out on the fringes, like RMS and Bradley, to remind us not to get lost. We don't have to go where they are, but we can at least navigate by them.
Having said that, there is a detail here which Bradley is omitting. Specifically, that is that Apple is not anti-copyleft, what Apple is (and what many other corporations are), is anti-GPLv3.
Apple shipped Samba for a very long time. They could have replaced it at any point, but they didn't need to. It was Samba switching to GPLv3 that pushed Apple into writing its own SMB implementation.
Now, it's possible that these things are unrelated, but I believe I am correct in stating that Apple has never shipped GPLv3 software, and anything that has switched to v3, simply gets replaced or held back at its last v2 release (see https://news.ycombinator.com/item?id=3559990 ). The most likely explanation is that they are not prepared to be bound by the patent/tivoisation clauses.
The deeper question is why these v3 terms are unacceptable. IANAL, but I have worked at places where there are pretty flexible policies around using/distributing Free Software, and it's not at all uncommon that blanket policies apply to v2 licensed software, but any and all use of v3 (or indeed AGPL) software require specific individual review by Legal to ensure that you aren't placing the company in an actionable position. That's a pretty heavy time/effort burden to place on the (ideally nimble) process of developing and shipping software, it's also a cost burden.
Personally, I love the GPLv2, I think it's a masterstroke of a license. I don't use it very much anymore, but I'm very glad that exists. I think v3 goes to far, and I think AGPL goes way too far.
I tend to think that there are strategic projects which should be under v3, to protect the wider Free Software community from being unreasonably locked out of their own future, however, it seems fairly clear to me that overall, v3 has hurt copyleft more than helped it.
>Now, it's possible that these things are unrelated, but I believe I am correct in stating that Apple has never shipped GPLv3 software, and anything that has switched to v3, simply gets replaced or held back at its last v2 release (see https://news.ycombinator.com/item?id=3559990 ). The most likely explanation is that they are not prepared to be bound by the patent/tivoisation clauses.
Apple have been pretty open about why they don't like the GPLv3. It's not actually the patent clauses at all (their own Apple Public Source License predates the GPLv3 by several years and includes a patent grant): https://news.ycombinator.com/item?id=8868994
Unfortunately this bis of misinformation has become part of the public consciousness.
If it's not too much trouble, could you please this part:
>Personally, I love the GPLv2, I think it's a masterstroke of a license. I don't use it very much anymore, but I'm very glad that exists. I think v3 goes to far, and I think AGPL goes way too far.
I am really not familiar with licenses and I have a feeling the legal text won't make much sense to me either if I treid reading it by my self
Short summary (from memory, so might be a little faulty):
GPLv3 = GPLv2 + you can't sue any users/distributors for violating your patents + you grant an implicit license to all your relevant patents to your users + you must protect users from patents that might be covering code you contribute
For companies with patents and lots of patents they are afraid of losing their ability to sue for patent violations. I'm unclear whether the license you grant is just for the GPLed code or just in general. And in general it's unknown how all this plays out in court, so most lawyers (and thus companies) avoid v3 like the plague.
AGPL = GPL + must distribute even if you just provide an internet accessible service.
The idea being that the GPL only applies to distribution, so if I modify some GPL software but never distribute it (because I just run it on a server I control) I never have to GPL my changes. The AGPL says you have to distribute/open source your changes even if you don't distribute if the modified software is accessible over the network to users.
I think of it as an insurance policy. If I release my server side code as agpl, I know that anyone who uses it also has to share the code in their servers has to share it with their users.
In my simple mind, open source is a developer construct while free software is a user construct. Thank you for bringing a user's perspective in explaining GPL.
FWIW, I tend to substitute the word "user" there, for "software".
I see permissive Open Source licenses as giving developers all the freedom, and copyleft licenses as giving the software itself, all the freedom.
I choose this distinction only because some users are developers, and a copyleft license specifically restricts them from doing some things (i.e. closed source forks), thus restricting their absolute freedom. Instead, the software itself is promoted to the receiver of ultimate freedom, because its basic rights are enforced through all its generations/forks/integrations.
What is a finished software product? One that no longer get patched and supported, or is it when a "gold" copy get sent to the factories to be mass-copied and sent to stores?
I understand the concept when it comes to games, since a finished product is one where the developers has switched over to the next product and only occasional maintenance patches are added post-launch. It makes sense to call those finished, but a programming language that does this would likely be called dead.
One that meets a pre-defined milestone and is seen fit for public release. I guess Apple wants to get some warts out and add a few features before it releases the project to the "design by committee" open source world.
> They said why this was the case -- Swift 2.0 isn't finished yet
You know what else isn't finished? The vast majority of open-source software. You don't need something to be finished to open-source it. That feels like the Android model to open-source: source code dumps at convenient times. The only valid reason not to open-source when you say you will is that you don't have all the copyright to do so, and are actively rewriting the bits you can't open-source.
That is really a separate question though. Open Source is simply about licensing of a software release, it says nothing about the nature of the development community that produced the software.
An open, collaborative development community in an Open Source or Free Software project, is a very good thing, but it is a separate thing.
It's highly unlikely that Apple will release any code under an FSF license, ever. The FSF needs to make their peace with that, no shrill screeds are going to change that.
And frankly, if there's going to be a new, modern, high quality language with support for the platforms I care about (Linux, OS X), I'm going to use it.
I wonder if RMS is going to publish a Swift version of "The Java Trap". I don't think it will meet with the same result (relicensing under the GPL).
"modern, high quality language with support for the platforms I care about (Linux, OS X)" - .NET's open sourcing is already happening (including cross-platform) and is under MIT\Apache license. github.com/dotnet
Not really.. :) Of course the majority of languages today also meets that criteria. I guess I just used that to say that for a company of "the same kind" (unlike who's behind those other languages), MS is actually doing above expectations when it comes to openness.
So what? Every open source project license I've seen has a big fat copyright at the top of it too. Microsoft didn't invent copyright. If coders get to apply it to every line of copy-pasted code they "write" then Oracle should be allowed to copyright an API.
API's are not functional code, they are specifications on how to communicate with said code, these specifications have never been considered copyrightable until Oracle and Microsoft started this legal campaign.
Non-copyrightable API's is in turn is the reason we enjoy atleast some level of interoperability today, as API's and their corresponding functionality can be re-implemented across platforms despite all the 'vendor-lock in' companies like Microsoft have tried to enforce.
>If coders get to apply it to every line of copy-pasted code they "write"
This is not true, copyright applies foremost to the work as a whole, not each indivudual line, this was already proven as Oracle lost their attempt at copyright infringement on a 9 line rangecheck function, which was ruled as fair use.
> API's are not functional code, they are specifications on how to communicate with said code...
Code is not code, it is a specification on how to build machine language. Does that make my code any less valuable?
> ...these specifications have never been considered copyrightable until...
That's correct. Also, nothing was copyrightable until someone started a legal campaign.
> ...copyright applies foremost to the work as a whole...
So copyright can apply to an API as a whole because an API is the same thing as code. APIs are not free. People have to design them and test them, just like when they write code. What universal law do you think grants you the right to just take someones work?
> Non-copyrightable API's is in turn is the reason we enjoy atleast some level of interoperability today...
Yes and tax loopholes are legal until they're not too. Just because you're getting something for free already doesn't mean you're somehow guaranteed entitlement to it forever.
The one they used when they didn't make FaceTime an open standard from the get go. Clearly they knew they couldn't make it an open standard when they announced they intended to, but they still made the promise.
This isn't unique to Apple, but it's stupid to ignore reality. At the end of the day, they haven't release Swift. Banking on it now is, without a doubt, a foolish gamble.
> It only doesn't change things if you're an ideologue who ignores reality.
And you can guarantee that Swift will be entirely open sourced? Sorry, but it doesn't change things because of reality. Apple hasn't released Swift yet as open source. So far, I'm winning.
> Care to share?
Besides FaceTime? Off the top of my head, see the releases of the iPod, iPhone, and iPad. All were released with claims that were turned completely around (only for Mac, no native apps, smaller versions are bad). This ignores other things like how multitasking is bad one year and then good the next.
Simply put, when someone from Apple says they won't ever do something, I assume they just haven't come up with a way to market it effectively.
I don't think you have any evidence of such a pledge.
Personally, I think Apple doesn't give a fig about software freedom. I don't think they are in favour of it, or against it, they simply want to ship their products.
For a time they were happy to use GPL software to help them do that, but then v3 happened and they have been moving away from the projects that switched to v3.
It's impossible to argue that WebKit, LLVM, Swift, etc. are intended "to kill software freedom". They are simply software projects that exist and release code under an OSI license (or will do, in the case of Swift).
If Apple/Google/others can push these projects beyond where things like GCC are, that is more the fault of the GCC project for not being nimble enough to stay on the leading edge (if it ever was there). It's also not because they are determined to kill projects like GCC, it's because they need really good compilers/renderers/etc.
They were never happy to use copyleft software, and they (then NeXT, now Apple) have been trying to weasel out of it since the 1980s, long before the GPLv3 happened.
This isn't a compelling argument for anyone like me who doesn't think copyleft licensing is some grand virtue. If they haven't violated the licenses of software they're using, I don't see a problem. They're under no obligation to open anything at all to the public, and shouldn't be.
LLVM has a developer patent policy, and Apple will adhere to it the same as anyone else or the code won't be part of LLVM. Chris Lattner knows this. LLVM has a foundation with directors that aren't Apple.
So yeah, there goes that argument.
As for the rest - Bradley acts like the free software advocates were much better at open development or not throwing stuff over the wall.
Emacs, for a very long time (and other fsf projects the same), had secret pre-tests.
If you shared the ftp info with others and they found out, they'd remove your access.
Part of the EGCS/GCC split was precisely over the fact that GCC was not openly developed.
Their projects still aren't all developed in a very open or free manner.
Of course, Bradley instead concentrates on the higher level view of what this will do to programming language development , partially because Free Software has such a poor history at the lower level on this one, and partially, i believe, because the details just don't matter to him if the concept is achieved :P.
The short version of that is: I'd love to see the free software folks get their own house in great order before continuously calling everyone else out.
It's not that they are wrong in a lot of ways (except about the patent stuff), but the details matter, and they have a very poor history on those details. They stand nearly zero chance of convincing anyone when all that happens is to stand on a soapbox and scream about how bad everyone else is.
I know y'all want to just compete on ideology, but it isn't going to work.
Prove it's not just a better ideology, but it leads to better communities, or better projects, or anything.
Otherwise, it's just another political faction that nobody is going to care about.
> we should expect the chosen non-copyleft license will not contain a patent grant.
How come? Does Apple have a history of licensing open source software and making it unusable with patents? I can't say I'd be surprised, but it would be news to me. Is Webkit a counter-example, I don't think they've chased Google about patents?
This seems pretty much to reduce to the old copyleft-vs-liberal license debate (along with a generous sprinkling of fear, uncertainty, and doubt), which doesn't seem worth re-hashing.
I don't think I'll ever understand the sense of entitlement people who advocate this idea of 'copyleft license or else' seem to have.
There's nothing bad about Apple not using a copyleft license. I'm glad we live in a world where they can pick any license they want. Apple could have kept Swift closed source if they wanted, and I would have been okay with that - while I might have liked for them to make it open source, it's completely up to them what they want to do with it.
Are we still having these "They chose a license other than the one I support, so it's not really Open Source software." rants in 2015? I thought we were done with those in the late 90s? Come on.
I don't blame them after what Google did with Chrome from all the hard work they poured into WebKit. Especially since they later forked it into a separate project.
So while this is a programming language and such an issue is not likely to rise here - I can see why Apple would be very cautious in this case.
1) Forking in open source is not a crime, it is a virtue and fundamental right
2) By "after what Google did with Chrome", do you mean contributing massive amounts of engineering resources to WebKit for several years, exceeding Apple's own WebKit team? Look here: http://www.kaizou.org/2013/04/why-google-dropped-webkit/
If someone's forking your project, it's usually because productivity/velocity is going down because of either too much political contention, or too much legacy code.
I've never seen any indication that Apple valued their "market share" from Chrome using WebKit in any way, and the people actually working on WebKit for Apple were mostly happy about the fork.
The bulk of WebKit is under a liberal license, similar to what they'll likely use for Swift. Google could do exactly the same with Swift if it felt like this (though in practice forking language compilers/runtimes rarely makes that much sense).
Open Source is not "the cooption of Free Software".
Early versions of the BSD License dates back to at least 1988, the GPLv1 was created in 1989. Do whatever you want, or public domain licensing existing long before either.
If anything GPL and the FSF co-opted Free-as-in-Beer software into their own version of Software-that-is-forever-Free, and now have rewritten history to the point that all BSD code is an attack on Freedom.
And this is largely why GPL/FSF is fighting a losing battle these days. Companies view the GPLv3 as toxic, and most of the kids on GitHub don't care and don't understand why their code isn't just BSD-by-default (and the License Anarchy "movement" is a much bigger problem than this losing battle that FSF is picking with Open Source).
In 1988, open source was a term for spies that collected intelligence from publicly available sources. If you talked about open source then and pointed to BSD, no one would understand you.
If we want to define when liberty was first a concept, it was around roman empire that started to talk about it as a concept. But that is of course not the first time someone was free. Freedom is as old as humanity, and you can't predate that.
so in order, terms was created in: freedom -> liberty -> free software -> open source.
The author mentions patents. What patents could their possibly be with Swift? There's a TON of information on compiler theory available. Would Apple have wasted time trying to come up with something new just to patent it?
There are a lot of valid criticisms that can be thrown at Apple these days, and maybe they're not "our" friend.
But I find myself thinking more and more that when a company becomes the most valuable private entity in the history of humanity off the back of luxury goods the vast majority of the world can't afford - and in a highly competitive arena too - you really have to assume they know what they're doing when it comes to doing right by themselves. And who can blame them for that?
Apple have won: in business terms, they define success. Standing in judgement of them makes me feel foolish.
I'm not sure it's the same you know. Lands are conquered and retained with politics (i.e. charismatic bullshit) and the application of brute force. It's about suppressing the wills of others whereas winning at commerce in a competitive environment is about understanding and fulfilling them. That, I would argue, is a significantly more challenging task. Many large companies are defined by their size and the advantages it brings, but not so for Apple: lots of companies have the resources to do what they do and yet only Apple ever pulls it off. They really are a different beast.
>Lands are conquered and retained with politics (i.e. charismatic bullshit) and the application of brute force.
How is this different to how Apple (Microsoft, IBM, Oracle etc.) play the game?
>It's about suppressing the wills of others whereas winning at commerce in a competitive environment is about understanding and fulfilling them.
This is a wonderful sentiment to approach commerce with, but it's all too easily forgotten when you're already at the top of the game.
To stretch my already two-dimensional metaphor, it's at this point that empires start to stagnate, and eventually fall.
Note: None of this is prediction, or even strong criticism of Apple (They are thriving in an environment they didn't create), merely thoughts :-) I agree that Apple have, in the present climate, defined a new paradigm for commercial success. I just don't agree with the finer points of the paradigm...
> How is this different to how Apple (Microsoft, IBM, Oracle etc.) play the game?
At what point has coercion come in to putting a iDevice in your hand? Sure we could have that argument about advertising but Apple doesn't do a whole lot of that and the advertisements they do create are hardly designed to manipulate you - not to mention we are comparing them to the Romans here...
> This is a wonderful sentiment to approach commerce with, but it's all too easily forgotten when you're already at the top of the game. To stretch my already two-dimensional metaphor, it's at this point that empires start to stagnate, and eventually fall.
It's not a sentiment, it's the very essence of commerce. If you remove that incentive (and decline to implement an authoritarian regime to organise by force, like communism) then you have nothing but a bunch of former bureaucrats twiddling their thumbs (and likely starving to death.)
Commerce is about trading things you have for things you want: no more and no less. The problems of today are not the fault of freely organised trading by independent actors - that, instead, is the thing that brought us out of the stone age - but by the truly pain-in-the-arse implementation details of making this "system" moral and fair (define those terms however you will.) The reason I've air-quoted "system", btw, is because it is no such thing. If the apocalypse comes and the political/financial system falls, and you find yourself holed up in some basement with a stash of weaponry but no food you'll see that commerce is as natural as breathing. We have literally studied magpies and chimps making what we would call business decisions. Commerce is not evil, the system we've built around it is - I think this is the paradigm you have issue with, and it's something you ultimately need to take up with the political system.
Apple's success is owed to being good at this fundamental notion of trade, instead of gaming the system to their advantage (how many Fortune 500's would fall with a fraction of the competition Apple faces?) In order to fall one of four things would have to happen: 1) the entire system turns against them; 2) they stop being good at being Apple; 3) someone else learns how to do as they do or; 4) their actions ancillary to the product they provide me (like OPs points) become so offensive that they outweigh the benefits of being an Apple customer for a significant proportion of the consumer base. Personally, I see none of these as being particularly realistic or becoming so anytime soon.
IMO non-copyleft opensource licenses are better for technology push as they lower the barriers for the closedsource industry to embrace and extend the technology.
I agree with the title of this, but not much else.
I have nothing against apple or swift, but the way I see it, there's no good reason to only target iOS and ignore android and windows. So Swift has no utility for me at all. Proprietary languages are the worst sort of vendor lock-in, and I have no interest in participating, especially considering that apple has historically not been particularly great to developers.
If there is something very specific to Apple and they want to keep the copyright after writing that module in LLVM, we should respect their decision. There are several companies using copyright licenses or not open sourcing anything they are working on. Compare to them this entire LLVM situation is a success story from the free software point of view. LLVM became the default toolchain and compiler for many project because of its high quality and meaningful error messages (GCC anyone?). I can live without Swift, but I definitely need LLVM going forward.
> But, their anti-copyleft witch hunt goes back much further.
> It began when Richard Stallman himself famously led
> the world's first GPL enforcement effort against NeXT
Actually it began some five years earlier, when Stallman refused to allow patches for Macintosh support into gcc.
This is premature. Wait and see on Swift2.0. Seems knee-jerk reaction. I mean, "Apple is not our friend"?
No for-profit is our friend. Stating the obvious doesn't reinforce the point made in the editorial that the author fears programmers will be bamboozled by Apple possibly not following through on their promises.
> Apple explicitly stated though that such released software will not be copylefted. (Apple's pathological hatred of copyleft is reasonably well documented.)
Very few new compilers/runtimes are open-sourced; this seems like a bizarre objection, and one that would cover a hell of a lot of other languages.
"Fortuitously, Apple eventually discovered a technically brilliant (but sadly non-copylefted) research programming language and compiler system called LLVM."
What does he mean by that ?
Did LLVM already exist in various pieces and apple "discovered" it by putting them together ?
Or is he purposely using the word "discover" to suggest that you can't invent a programming language (since programming is all reducible to math) and that new languages are merely "discovered" ?
They discovered that the University of Illinois had been working on a compiler back-end called LLVM, and that being permissively licensed they could use it as a shortcut to making a proprietary compiler without putting in all the work.
By being permissively licensed, it was free from all the garbage and ideological baggage that GCC has, so they could use it in meaningful ways besides being just a compiler. Like using it to do analysis on code in the IDE.
That's because LLVM have those features, not because it has that license. A program designed to do analysis on code in the IDE will still do it even if the program is proprietary, which is the inevitable consequence of promoting permissive licenses.
This has been hashed out before in better ways, but I'm going to take a stab at simplifying the issue at hand for modern and future computing.
The developer wants freedom and so does the user. Most of us are both developers and users.
Closed code or non-foss code is geared to give developers freedom, but at the cost of user freedom. FOSS licenses such as GPLv123/LGPL favor user freedom, but at the cost of developer freedom.
For me, the bottom line is that I believe, given the trajectory of computing, FOSS is closer to protecting actual freedom of both developers and users than any alternative.
I think a good thought experiment is to imagine we are a bit further in the future, and now brain-computer interfaces are prevalent. I often joke with my boss that he would be an early adapter of "Apple-brain", but the point is that I would never plug in a brain-computer interface without having the four freedoms on it.
There is a glaring issue at hand here though, with FOSS, that I think fails to address this issue: namely "ou should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way."
I don't think that goes far enough. Due to our legal system, I don't only want the ability to modify my brain-computer, but I also want the ability to make sure no one but me has access to that particular source code. Generally FOSS licenses would protect me from someone copying my brain code if they failed to adhere to the FOSS license, but it does nothing to protect what I would consider proprietary brain-code.
Is your computer as it is not already an extension of your brain to some extent?
Do you have full control of it, or at least the ability to take control of it?
If no is the answer, I consider that a weakness.
Freedom comes with a price, and in this case the primary cost of freedom is a lack of features, and time and effort necessary to get a functional set of features. eg. in reality, I think I really ought to be compiling everything from source (Gentoo, etc) and checking hashes/checksums and reviewing code (maybe in an automatic way).
We all make tradeoffs, but as the future progresses, I believe very strongly that those who embrace pieces of proprietary software now will be at a large disadvantage later, and that includes companies.
Sure, Apple has the freedom to determine their licensing schemes, but do keep in mind that it affects a huge number of users (eg, actual people, instead of a company), and many users will embrace it, but I don't have any issues with FOSS proponents calling out the facts whenever a company with so large a userbase degrades user freedom, because no matter how you want to defend Apple, that's what they do.
> Apple's dogged pursuit for non-copyleft replacements for copylefted software is far from new. For example, Apple has worked to create replacements for Samba so they need not ship Samba in OSX.
That is not Apple pursuing non-copyleft software. That is Apple pursuing non-GPLv3 software. If Samba had stayed GPLv2, I doubt Apple would have replaced it.
> But, their anti-copyleft witch hunt goes back much further. It began when Richard Stallman himself famously led the world's first GPL enforcement effort against NeXT, and Objective-C was liberated.
He makes it sound like it was some kind of highly adversarial situation, but here is how Stallman describes it [1]:
The issue first arose when NeXT proposed to distribute
a modified GCC in two parts and let the user link them.
Jobs asked me whether this was lawful. It seemed to me
at the time that it was, following reasoning like what
you are using; but since the result was very undesirable
for free software, I said I would have to ask the lawyer.
What the lawyer said surprised me; he said that judges
would consider such schemes to be "subterfuges" and would
be very harsh toward them. He said a judge would ask whether
it is "really" one program, rather than how it is labeled.
So I went back to Jobs and said we believed his plan was not
allowed by the GPL.
The direct result of this is that we now have an Objective
C front end. They had wanted to distribute the Objective C
parser as a separate proprietary package to link with the
GCC back end, but since I didn't agree this was allowed,
they made it free.
> But, that whole time, Apple was carefully plotting its escape from the copyleft world.
This is just nonsense. If NeXT/Apple had been so determined to get away from copyleft, they would have changed their Objective-C compiler from being part of GCC to being a completely separate program that took in Objective-C and translated it to plain C.
> Fortuitously, Apple eventually discovered a technically brilliant (but sadly non-copylefted) research programming language and compiler system called LLVM. Since then, Apple has sunk millions of dollars into making LLVM better. On the surface, that seems like a win for software freedom, until you look at the bigger picture: their goal is to end copyleft compilers.
Two problems here. First, as mentioned above if Apple was so determined against copyleft compilers, they would have made Objective-C a front end that output C (similar to Stroustrup's cfront for C++).
Second, he is overlooking the fact that GCC was not technically able to meet Apple's needs. For example, Core Image needs an optimizing JIT compiler that can take a chain of image filters and turn it into a single efficient filter for execution on the GPU or CPU (whichever will be faster on the particular system for the particular effects). XCode needs to parse C/C++/Objective-C code in the editor and in the debugger. In short Apple needed a modular compiler system, designed to work as a compiler toolkit from which you can pick and choose the parts needed for a particular application, and designed to be easy to interface with outside tools.
GCC was explicitly designed to not be that, and Stallman would reject changes that would make it easier to use it that way. GCC has opened up a bit to modularization and interfacing with outside tools since then, but that was directly due to competition from LLVM/Clang.
> Their goal is to pick and choose when and how programming language software is liberated.
The author's mistake here is in thinking that Apple has a goal in this area. It is far more likely that whether or not programming language software is liberated is completely orthogonal to anything Apple cares about. They are open sourcing Swift because Chris Lattner wanted to, and their lawyers did not see any problem with that.
To be fair, you don't have to use LLVM or Swift, if you don't want to - there are other compilers and languages out there, some already cross platform (hello C++).
I understand the unhappiness though that so called techies and developers these days do not question anything anymore. They just take what they are spoon-fed and ask for more of the same.
Not convinced by the editorialised submission title here. Would be preferable to use the blogpost's title, "Why Greet Apple's Swift 2.0 With Open Arms?".
I have to agree. It used to be Apple who was claiming Unix's traditions. Now they use promises of a future release as PR pieces to combat existing software. (This was a Microsoft strategy several decades ago.)
That's such a defensive position to take. Who/what is Apple combatting by announcing that Swift will go open source? It's just one more language in a huge sea of options.
It's expected that any language, if it is to be taken seriously outside its host ecosystem, should be available in an Open Source or Free Software form. Why should Swift be any different?
> I'm often pointing out in my recent talks how complex and treacherous the Open Source and Free Software political climate became in the last decade.
The climate would be a lot more relaxed if the open source community picked spokespersons who are less fanatical and a bit more level headed than the current crop of leaders (among which rms, esr and the author of this strongly biased article).
I'd recommend watching Bradley's LCA 2015 talk, especially the slide 11 where he's talking about the aggressive anti-copyleft stance of today's Apache Software Foundation (in contrast to the ASF of a decade ago, as discussed near the beginning of the talk).
"That's already happening with LLVM, anyway; Apple already ships a no-source-available fork of LLVM."
In the old days we used to call this "bait and switch". That being said, I dont necessarily thing it's a bad thing. Corporations don't exist for philanthropy, they are motivated to bring better and viable products to the market.
Yeah, Apple definitely doesn't like copyleft. That's okay; lots of people don't (especially larger companies – how many large companies actively release GPLd software?). It's a legitimate business decision, and there are some good arguments that support it (which you may or may not agree with).
The idea that organisations 'owe' the community copyleft software is therefore a bit foreign to me.
Furthermore:
We'll likely see pieces of Swift 2.0 thrown over the wall. But the best stuff will be kept proprietary.
That's a bit of a weird assumption. Apple's statement was the the Swift code and standard library would be open-sourced. What is the 'best stuff' that we're not going to get?
Apple's not-yet-executed move to liberate some of the Swift 2.0 code seems a tactical stunt to win over developers who currently prefer the relatively more open nature of the Android/Linux platform … the copyleft license of Linux itself provides the opportunity to keep the core operating system of Android liberated.
That's a bit flaccid. Google and the Android platform has equally went out of the way to isolate the platform from the effects of the GPL. In fact, I'm pretty sure one of the reasons Bionic (the Android libc) exists is specifically to limit the impact of GPL code on the platform. Android's use of Linux is basically a historical accident, and painting it as some kind of concerted effort towards software freedom isn't a compelling point.
TL;DR - you need to relax. Apple releasing open-source code is a good thing. We can now all benefit from using this code. Maybe you'd prefer if it were copylefted, but it's not – it's still good, and painting it as an evil move against software freedom seems like a bit of a mental stretch.