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.
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.
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.
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.
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.
This is what's happening right now with LLVM.
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.
The exact same situation happened with Objective C and GCC. In that case, the Objective C frontend was released as free software.
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?
You mean the ones that haven't provided LLVM with changes for the compilers they are selling?
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.
> 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?
No, because the freedom of new languages in LLVM would be guarenteed.
Again, you can of course have the opinion that this is not important, or not as important as the success of LLVM, but that's your decision.
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.
This is why GCC is not modular.
Maybe a better link (RMS's response when he recently discovers that Apple did indeed offer LLVM copyright assignment to FSF in 2005):
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.
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).
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.
Where does this line of thinking originate?
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.
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.
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!
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.
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.
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
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!
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.
They own CUPS, but it existed prior to their ownership of it.
"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."
So I'm not sure what you're getting at.
Nothing in particular, they just seem a bit strange.
You are of course, welcome to your own opinion.
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!
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.
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.
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.
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.
But I'm drifting massively off topic now.
That's really debatable. Innovation is about bringing something new and uniquely useful to the market . 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 
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.
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).
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.
I beg to differ.
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?
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".
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.
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).
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.
Here's an interesting example:
And this confused comment is a good example why the FSF recommends against using the confusing term "intellectual property".
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?
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.
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.
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.
To whomever is taking issue with this, could you, uh, you know... say why?
> 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.
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.
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.
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.
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 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.
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.
I'd expect Foundation and other Cocoa stuff (Core Data and the like) will not be part of the package.
It also makes little sense (nor is in character) for Apple to agree to open source Swift and not take a leadership role in the effort.
One step at a time...
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).
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.
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?
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.
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).
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.
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.
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.
[Edit] Apparently I'm not imagining too much. Richard Stallman himself says it very clearly here: https://fsfe.org/freesoftware/transcripts/rms-fs-2006-03-09....
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.
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.
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.
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.
I am not sure how enforceable those restrictions were, but I imagine that factored into the decision to use the Apache JDK project
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.
: 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.
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 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.
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.
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.
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.
* 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.
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).
Edited: fixed my years
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.
Just one example.
Google won round one.....
Lost round two on appeal ....
And is now appealing the lose.
To make that claim, you will have to show another mobile JVM-based OS that's faster than Android.
Used in missile radar control stations and battleship weapons systems.
Is that fast enough for you?
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)
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.
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.
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.
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.
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.
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.
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.
Queue the "embrace, extend and estinguish" comment...
There is an unreasonable fringe that will never be happy.
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.
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.
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".
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.
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".
I don't mean the general case of permissively licensed software, but the way that the article expects Apple to act.
Which is it?
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.
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.
There are a lot more examples of this.
On the other hand look at how RMS/FSF talks about LLVM and BSD, 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.
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.
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 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.
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.
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 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.
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.)
You can disagree with this, but I think just dismissing it as ideological does not do it justice.
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.
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.
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.
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"
Yes, but the point is to promote forks of forks (and so on). If you close it, the branch dies there.
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).
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.
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").
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).
The LLVM project makes it's stance on patents quite clear .
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...
> Apple's announcement remained completely silent on patents, and we should expect the chosen non-copyleft license will not contain a patent grant.
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
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.
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.)
That's not hard to believe. But far more important whether those people are the ones ultimately calling the shots.
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".
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.
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).
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.
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.
We can't take that for granted. I for one found the article very useful and informing, raising my awareness about this next Apple stunt.
> 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.
"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.
1) Don't interact with said software if it doesn't fit into your concept of freedom.
2) Write the software yourself.
But forcing someone to release their software in way they don't want to isn't one of those alternatives. (Your freedom ends where my freedom begins).
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.
Don't like it? Don't get a license.
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.)
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.
I think most copyleft advocates realize that. So what?
"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.
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.
>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
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.
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.
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.
tl;dr is that v3 places a much broader burden on entities releasing GPL software, wrt patents and the general digital freedoms of users.
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.
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.
An open, collaborative development community in an Open Source or Free Software project, is a very good thing, but it is a separate thing.
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).
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.
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.
Also sure a compiler may drop but its useless without a pile of libs.
Apple has a long proven track record of saying one thing and doing the complete opposite. I'll save my congratulations for when they actually do it.
Easy. Not say they are going to do something unless they know they can do it. Better yet: announce it when you can do it.
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.
>Apple has a long proven track record of saying one thing and doing the complete opposite.
Care to share?
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.
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.