Introducing Phoenix, Swift set free
ind.ie
ind.ie
- Browsing the source code directory, this is very very "early stage" at best and perhaps too early to warrant a "Get It Now" link
- There is an alternative implementation of Swift for the interested, although not open source, being developed by RemObjects: http://www.remobjects.com/elements/silver/
- Apple should definitely open source Swift, but I doubt this kind of pressure is going to have any significant sway on their decision one way or another. When in the past did developer pressure influence any of their major strategic decisions?
- Referring to Richard Stallman as "Richard", Steve Jobs as "Steve" and Chris Lattern as "Chris" in the letter comes off as a bit sarcastic/snippy in tone
- I don't believe Apple is promoting Swift to encourage lock-in anymore than Apple promoted Objective-C to encourage lock-in; as others here have stated I think the author misunderstands Apple's business model/philosophy
Not necessary. First names are often used for familiarity, and it is fine e.g. for celebrities. Although, I have no idea who is Chris :)
Sorry to leave you all hanging, but there is just far too much to deal with right now.
-Chris"
http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073698....
It would be really cool if the Swift compiler would build code for both Windows and Android so we could have true portable software in a language that isn't C or C++. So I'm hopeful the Swift engineers also see value in that. Though right now it's a language that's so tightly tied to Objective-C and Foundation that I suspect it will be a very long time before we see that come true.
> I'm hopeful the Swift engineers also see value in that
I have a feeling it's not the engineers who would be to blame.
It's funny, when I first skimmed the letter I thought, cool, open source Swift. However when I moved past skimming and actually read the letter... wow, it's terrible.
As others have mentioned the first name thing makes the authors sound like some douchey Brogrammers. The rest of the letter is just condescending, snarky or just plain undecipherable and wrong. For example "Swift is a beautiful language but you want to keep it all to yourself. That’s just not on.". They're not keeping it for themselves, they made the language so it's easier for developers to create software and in fact they give away the language/ide/debugger/etc away for free.
"That's just not on." Is this open letter really intended for Tim Cook? Do you think the leader of Apple actually likes to wade through clumsy slang? Have you thought of sprinkling the word "hella" around for more emphasis?
I now view the whole thing as a cautionary tale about the dangers of skimming internet pages.
Another rising technology with a similar name. This phoenix is set to be the Rails for Elixir
If any of you want to help out, please do get in touch.
Ideally, of course, if Apple opens Swift up, we can contribute to that instead of duplicating effort :)
Also if you read a bit further, the effort on Phoenix is lead by Greg Casamento, who is also involved with GNUStep (and thus bringing the NS* objects to Linux).
"When it's completely finished" is essentially synonymous with "when it's dead."
(To clarify for people who like to misread things, I did not just say "They expressly intend to never open-source it." I said that, last we heard, they had not even talked about ever open-sourcing it.)
PS: Where did I ask for a timetable?
Seeing Swift released would make my and a whole lot of other people's days, but honestly? I wouldn't hold my breath.
I'd still be very surprised if Swift got the same treatment. It just doesn't seem like a very Apple-ey thing to do.
Well, clang...
Swift and Objective-C are based on LLVM, which Apple has supported since very early on, and which is open sourced itself.
It would be kinda out of character for Apple (the real Apple not the boogeyman Apple which is mostly a straw man) to not release a programming language as open source.
Hell, the core of OS X (and iOS) is open source... they've only kept the UI layer closed source (notice Google has not open sourced their platform- map reduce, page rank, everything related to source they kept closed source. They only open sourced Android to try and be the Netscape Navigator to Apples Internet Explorer (iOS). Note that like Android, Navigator was free. Only after netscape ended did it become firefox, which is open source. Google shares android source, but to be official "Android" you have to license it from google, and that comes with a lot of requirements. So, Android is more properly understood as free)
Where is the Core Data source?
I'm pretty sure it's sealed in a wooden box—right next to the Ark of the Covenant—in that warehouse you see at the end of Raiders of the Lost Ark.* Core Data uses exceptions for control flow: http://restkit.tumblr.com/post/40736602228/dealing-with-core...
* "iCloud with Core Data is a developer’s worst nightmare" http://www.theverge.com/2013/3/26/4148628/why-doesnt-icloud-...
* Apple's documentation is a joke: http://thermal-core.com/2013/09/07/in-defense-of-core-data-p...
* The object graph model is a problematic abstraction for a lot of what we want to do with a persistence framework: http://inessential.com/2010/02/26/on_switching_away_from_cor... (NSBatchUpdateRequest doesn't do me much good since I can't drop support for iOS 7.x, or 6.x for that matter, yet)
I could go on, but you get the idea...
When Objective-C was developed in 86 it was closed source. NeXT purchased it (in 88, still closed), and planed to keep it closed source. Orginal Obj-C would be parsed into byte code to be compiled by the GCC, not directly parsed. GNU didn't agree with this (adding a way to compile byte code).
Eventually The FSF/GNU sued them over this because the Objective-C compiler was simply a modification of the GCC, without code contributed back to the GCC.
Thus, it was open sourced.
As the Clang/LLVM toolchain removes "FSF lawsuits" from possible things that could happen. I think its unlikely we'll see Swift be open sourced.
That toolchain nonetheless appears to be open sourced, so I'm not convinced it stands as evidence that Apple won't open source Swift. (Not that it stands as evidence that they will, either.)
Wikipedia's telling of GNU and Objective-C's history sounds somewhat less combative than yours. According to Richard Stallman, "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, 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. So I went back to Jobs and said we believed his plan was not allowed by the GPL." There's no suggestion that the FSF ever sued NeXT; Stallman's own description boils down to "We told them they couldn't do that, and they said okay and made it free."
Thus, companies can use the code without giving themselves back. This is why Sony uses BSD based OS on the playstation [3]. Its cheap, they can modify it, and keep what changes they deem necessary.
And yes, I'm aware Apple has given back to the project. But it seems pretty obvious why they don't use the GCC when you consider how hard Apple has tried to purge the GPL from its OS [4]. And the legal battle NeXT had with the FSF/GNU [5].
I stand by, we won't see Apple open source it.
[1] http://en.wikipedia.org/wiki/LLVM
[2] http://en.wikipedia.org/wiki/University_of_Illinois/NCSA_Ope...
[3] http://www.phoronix.com/scan.php?page=news_item&px=MTU1MzA
[4] http://meta.ath0.com/2012/02/05/apples-great-gpl-purge/
[5] http://en.wikipedia.org/wiki/Objective-C#Popularization_thro...
Android doesn't just have the source available; it fulfills the criteria set both by the OSI and the FSF. That you can't make a derivative and pass it off as the original doesn't change that.
And in so doing you might discover the problem.
Give it time, I think it will be open. It's just not 100% finished yet, despite what Apple says.
The Xcode 5.1 sources include clang, lldb etc. We just need to wait for Xcode 6 sources to be up, pretty sure it'll include Swift.
Also worthy of note is that most of these packages are under BSD/APSL license, which doesn't mandate Apple to release the sources at all (e.g. the OS X kernel xnu is fully open source). Yet they do it. Google's version of "open" Android development isn't any different, they develop in private and dump the code to AOSP only once a particular version is 'finished'.
Actually, having spoken with Swift team in Apple (rather not mention their names in case they get in trouble) on this topic, they seemed to be happy opening it up in general and opening it up as a general purpose language. Swift could ultimately replace C++ as the language of choice for game development and more.
That said, IMHO, the language will progress a lot faster initially if it's driven by a single master than to be pulled into many directions.
I also disagree with the author's entire premise, because Apple open sources a lot more than its competitors do. Like, a whole lot more. [1] You can download the source for the entire OS X kernel.
I believe Swift will eventually be open sourced. It would fit entirely within Apple's strategy to do so: they like to open source foundational technologies, while keeping the libraries and proprietary features the build on top of them to themselves.
The argument that because OSX's kernel and WebKit are open source that Apple is somehow 'more open' is silly because they really aren't 'more open'. Maybe compared to MS...
Compared to Google, they are a lot less open source. I write iOS & Android apps. The difference is stark. They haven't even open sourced XCode, the iOS tools, or the CI server.
[1]: http://www.microsoft.com/en-us/openness/default.aspx#project...
Swift only has value with the Mac OS X and iOS ecosystems, specially as a mean to drag Objective-C developers into the FP world.
There are so many open source languages in the ML family, a few of them are even used in the industry for several years now. Just go and join one of those projects.
They will appreciate any help they can get.
Well, some people like the decisions behind Swift, and would prefer a language with an ecosystem, documentation and developer community of the size that results from Apple being involved in it compared to, say, Jane Street.
Heck, people also use Go mostly because of the Google involvement (and the momentum that gives), and it's a language 30 years behind Swift.
Interesting idea. Can you post a link that explains why that is?
Now, Swift is pragmatic too, and far from cutting edge, but still ways ahead of Go in that area, and its creator is a very strong player in the field of compilers (he also did LLVM).
Here's a link that shows how much hasn't changed:
Which is why they are making an open source version that will have value in all ecosystems.
Swift without Cocoa, UIkit, GCD, Playground, IDE support..., doesn't offer anything better than those MLs.
And .NET only had value in the MS world before Mono which very popular.
There is hardly any modern Mac application that you can compile with it.
I get the impression more time has been spent on the "Launch Site" than the actual "Product".
https://source.ind.ie/project/phoenix/commit/4fc86be27e05662...
Thrown GPL on it, which doesn't exactly come across as considered - aren't a lot of Apples contributions to and development of Clang - including of course the objective c frontent, under the BSD-alike licence that it shares with LLVM?
They might just be taking a bit of an early adopter grab and will open it up later, hopefully. Metal is awesome as well but just when OpenGL really became the platform after mobile disrupted gaming.
Even if they don't open up Swift, maybe at least let Phoenix be like a Mono to their .NET and support it.
Taking a step back it is crazy how much Apple has influenced and taken over gaming focus in 6+ years. Not only do they control the market and hardware but naturally now the graphic and native software/platforms.
Truth is, Apple is pretty good about open sourcing their stuff, especially when compared to their peers (Microsoft, Oracle). But that doesn't fit the "Google good, Apple bad" narrative that is popular in some circles.
It's important to remember that Android being "open" is googles attempt to commoditize a competitors product... you don't see google open sourcing core technologies related to source.
$ make make: * No rule to make target 'parser.y', needed by 'parser.c'. Stop.