Hacker News new | past | comments | ask | show | jobs | submit login
Introducing Phoenix, Swift set free (ind.ie)
217 points by ingve on Oct 21, 2014 | hide | past | favorite | 117 comments

A few thoughts:

- 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

> 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

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 :)

That's right for familiarity. Unless he personally knows each of them, he shouldn't assume such familiarity. At least where I'm from it's considered uncouth to do so. Of course it's a cultural thing, and perhaps where you're from it doesn't sound the same way to your ear.

I think it's more personal [opinion] thing rather than cultural. To me, "Mr. Stallman" would sound sarcastic. And don't forget that we're talking about celebrities. Another example - if you've grown up on Beatles music, you'd say Paul and Ringo rather than Mr. McCartney or Mr. Starkey, right? And I'm pretty sure Paul and Ringo prefer the former one ;)

"Guys, feel free to make up your own dragons if you want, but your speculation is just that: speculation. We literally have not even discussed this yet, because we have a ton of work to do to respond to the huge volume of feedback we're getting, and have to get a huge number of things (e.g. access control!) done before the 1.0 release this fall. You can imagine that many of us want it to be open source and part of llvm, but the discussion hasn't happened yet, and won't for some time.

Sorry to leave you all hanging, but there is just far too much to deal with right now.




I wonder if there is an intentional difference between "You can imagine that many of us want it to be open source" and "As you can imagine, many of us want it to be open source".

I see you're taking his first sentence to heart then.

Wow, this _open letter_ is so full of nerd rage that it fails to capture any of my sympathy. I expected to see a humble effort to create an open-source Swift compiler that would move the conversation forward. Instead, I'm left feeling this effort is out of spite alone. All of this before Apple has made any final decision on the matter one way or another.

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.

>Wow, this _open letter_ is so full of nerd rage that it fails to capture any of my sympathy. I expected to see a humble effort to create an open-source Swift compiler that would move the conversation forward.

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.

I agree but

> 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.

They should really come up with a better name. Phoenix is over used and even in open-source has a long history http://en.wikipedia.org/wiki/Firefox


Another rising technology with a similar name. This phoenix is set to be the Rails for Elixir

Agreed. Here's a starting point if they decide to change the name: http://www.thesaurus.com/browse/swift

Seriously. Unfortunately OpenSwift appears to be taken [0]. It would have been the obvious choice.

[0] http://sourceforge.net/projects/openswift/

How about "Veloces" (Latin for 'swift")?

As long as you and everyone else pronounces it correctly as "veh-lawk-ays". Personally I'd go for "Velocitas" (swiftness).


Hey folks, just wanted to say that it’s very early days at the moment (as WoodenChair commented) — and we’re changing the button to "Sneak Peek" to reflect this. Poor Greg has been working his fingers off to get it ready (he’s pulled three all-nighters and that can’t be healthy so he’s been told in no uncertain terms to get some sleep now) and we should have a running compiler within the week.

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 :)

Startups led by non-engineers just leave a bad taste in my mouth for some reason. This comment definitely evokes that feeling.

Erhm. Aral knows code. Trust me :)

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).

Thanks for the clarification. I've met Aral and consider him a very smart guy, I was just commenting about my gut feeling in situations similar to this. I'm happy to learn I'm wrong in this case. :)

Why the rush?

Aren't they probably just holding off on open sourcing it until...it's finished. I know they've just shipped '1.0' but I think they're still making pretty big changes.

Seems likely. It's not like objective-c is closed to other people, and the extensions to Objective-C that Apple has made are open.

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)

>It's not like objective-c is closed to other people, and the extensions to Objective-C that Apple has made are open.

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.

As the Clang/LLVM toolchain removes "FSF lawsuits" from possible things that could happen.

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."

The tool chain was developed in academia for 6 years before they adopted [1]. With an incredibly pervasive BSD-esque license [2].

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...

You contradict yourself, saying that Firefox is open source but Android is only "free" since it has trademark restrictions, when Firefox also has trademark restrictions (which is why Debian renamed it Iceweasel).

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.

Define the term "Android".

And in so doing you might discover the problem.

A lot more than just the UI layer is closed source. Where is the Core Data source?

    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...

Your analogy to IE and Netscape Navigator confuses me. Navigator cost money and was the dominant browser; IE came along later, was free, and became dominant. Eventually Netscape lowered the price to zero but by then was effectively out of business. From where I'm sitting, Android is more like the "IE" to Apple's "Navigator", only it doesn't look like Apple's going to go out of business any time soon.

Hard to say with Apple. Their record on openness and transparency isn't great. This would be akin to Microsoft open sourcing Visual Basic.

Seeing Swift released would make my and a whole lot of other people's days, but honestly? I wouldn't hold my breath.

I mean, didn't Microsoft open source Visual Basic[0]? Was that the joke?


Welp. When I did some cursory googling for "visual basic open source", that page wasn't anywhere on my results. Now I feel like a fool.

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.

Apple has historically been pretty open at this level. Open sourcing, say, UIKit would be a shocking move on their part, but I'd argue that not eventually open-sourcing the Swift compiler would be equally shocking. For example, they've kept their LLVM contributions open source even though they wouldn't have to, they developed clang in the open, they released their ARM64 LLVM backend, and they've open sourced various low-level OS libraries like the Objective-C runtime and (most of) CoreFoundation.

How many years have to go by without Apple even talking about open-sourcing Swift before you consider it unlikely?

If there's no news by this time next year I'll probably start to get fearful that they might keep it closed. But it's way too early right now. We're only a month or so after the first public release. As I recall, it took several months for ARM64 to show up, and that was a lot more finished than Swift currently is.

> It just doesn't seem like a very Apple-ey thing to do.

Well, clang...

Apple open sources their OS X kernel (Darwin) along with many others things, that's a pretty good record and way more than Microsoft has ever done.


What's the last programming language you can think of that was really "finished" in any sense besides "shipped an X.0 version"?

"When it's completely finished" is essentially synonymous with "when it's dead."

I understand that but it's only been available to the public for a few months. Apple were likely focussed completely on getting it ready for dev to use in iOS 8. That's where all their man power was. Give them some time.

It's been 33 days since iOS 8 came out. It takes 30 seconds to tweet "Hey, we have some cleaning up to do before we open up Swift, but it's coming some time in the next two years!" They have not even expressed an interest in open-sourcing it. Any thought of Apple open-sourcing Swift at this point is pure fantasy, so the suggestion that we "give them some time" doesn't make any sense to me.

They have expressed interest in open-sourcing Swift pretty much immediately after announcing it. Both on Twitter and later (?) on the LLVM mailing list. No official Apple announcement and far from a guarantee that it will happen - but "they have not even expressed an interest" isn't true.

Not unless you've seen something I haven't. Chris Lattner said that although he was personally interested in open-sourcing it, Apple had no intention of ever doing so at that time. To my knowledge, that is the last we ever heard of it

Maybe I'm crazy/misremembering. But other than the "we're focussed on polishing it first" I thought I also read something reaffirming an interest (not from Apple officially but from one of the devs) to open source. And the LLVM mailing list post also contains a pretty clear "a lot of us really want to open source this" statement. Maybe this is just a misunderstanding: I didn't mean to imply that Apple expressed "an interest" as in "officially announced an interest". That would be very un-Apple-like. They tend to either do or don't. What I meant is that voices out of the project said they'd like to open-source. Which at that level (compiler/low-level) seems to suggest that it's likely. Given Apple's track record in that area / on that level.

It might take only 30 sec to tweet about it, but with open-sourcing comes a lot of stuff to deal with: once it goes open, there will be forks and pull requests and what not. Apple probably isn't yet ready to do fully open development (like they do with LLVM) of Swift.

Did you not actually read the comment you replied to? The entire point was that they haven't even said "We intend to open-source Swift once we're ready." The last we heard, they hadn't even considered open-sourcing it, like, ever.

(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.)

Why should they waste 30 seconds on that? To satisfy you? Very few people really care about this. If they say anything and then it takes longer to deliver than they thought those people will jump down their throat. Better to say nothing and announce when ready.

I think it's a little late in history to say that very few people care about open-source software.

PS: Where did I ask for a timetable?

They are actually on 1.1 since yesterday jetpacksaway


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'.

Swift is a beautiful language but you want to keep it all to yourself. We don't know that's true or not. AFAIK, Apple has not officially commented on this topic.

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.

Indeed, I believe there is some internal conflict on this. Hopefully Phoenix will help sway the debate.

Ah, now that is an interesting belief. Is it based on anything you can share?

Um, I actually disagree with the author's assertion that Swift is designed to make it harder to co-develop iOS and Android apps. If anything, Swift's syntax and object model are more similar to Java than Objective-C was, which should make it easier to write portable code.

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.

[1] https://developer.apple.com/opensource/

And you can download the source for Google's browser, both OSes, both their programming languages, etc...

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 Microsoft they are more open source.

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.

Microsoft has dozens of open-source projects[1]. Notably, ASP.NET and the C# compiler are both open-source.

[1]: http://www.microsoft.com/en-us/openness/default.aspx#project...

Whoever wrote that needs to proofread the post a bit and be more familiar with Apple's strategy.

and history.

I really don't get why people stress over this.

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.

Also remember that Swift is already starting to be taught in schools. Imagine if a natural language that is taught in schools was tied to a single company. If, for example, you needed an Apple pen to write English. How much of literature would we have missed out on? Would Shakespeare have been able to afford an Apple pen? Thankfully, we never have to find out ;)

When I graduated, we had to buy our compilers...

>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.

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.

> it's a language 30 years behind Swift.

Interesting idea. Can you post a link that explains why that is?

I guess because the Go creators didn't study much (or cared about) the last decades of language research. Heck, the major language they were involved and associated with, C, wasn't that "current" even at the time when it appeared, just pragmatic in a "worse is better" way and readily available. They were every influencial systems guys, with C, Unix, Plan 9, etc, but not really big PL/Compiler guys.

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:


Robe Pike seems to like to lament the fact that systems research is irrelevant. Well, PL research sure seems to be irrelevant - either something he is largely unaware of, or doesn't feel he needs - to him.

Except for its concurrency model (and it's an open question whether having a concurrency model built right into a language is even a good thing; it's certainly not a no-caveats win), Go is really, really conservative in design. Swift, by contrast, has adopted concepts left right and centre; there's nothing particularly novel, but it's certainly far more adventurous.

I wonder if their plan for the Indie Phone is to run recompiled iOS apps on GNUstep. Swift would have a lot of value in that case.

GNUStep is frozen in Panther, last time I checked.

There is hardly any modern Mac application that you can compile with it.

> Swift only has value with the Mac OS X and iOS ecosystems

And .NET only had value in the MS world before Mono which very popular.

Windows developers have fully embraced it since the early days, most of them don't care about Mono.

>Swift only has value with the Mac OS X and iOS ecosystems

Which is why they are making an open source version that will have value in all ecosystems.

For those looking for an ML language outside the Apple ecosystem there is OCaml, Haskell, F#, ATS, Rust, Idris, Pure Script, Elm, ...

Swift without Cocoa, UIkit, GCD, Playground, IDE support..., doesn't offer anything better than those MLs.

I would be curious to know if the authors of this feels that there is something that Swift can give them that some other ML-like or whatever language can't, if we disregard any ties to the Apple platform and ecosystem.

Mentioning the Apple/NeXT GCC/ObjC/GPL history is not a good way to get on Apple's good side.

I'm glad somebody is doing something about this. Swift deserves better than to serve as a pair of golden handcuffs. I remember back when Swift was first announced, people said they were sure Apple intended to make Swift free once it was ready for release. Sadly, Apple didn't live up to people's expectations on this one.

If people actually expected that, then it was just silly of them. Even if Apple were completely committed to making Swift open source (and I'm hopeful they are), I wouldn't expect anything to show up for a couple more months at the least. Apple often takes their time open sourcing new stuff.

You can see people in this very thread still expressing the same thought — "Oh, it's just not finished yet. It'll be open-sourced when it's finished."

I can't find a license?

This. Pretty Ironic (And I opened the source tree, which doesn't have the licence either). Besides, wouldn't the best way to start this sort of thing be to write an LLVM frontend, rather than a new main.c?

I get the impression more time has been spent on the "Launch Site" than the actual "Product".

I think the primary purpose at this point is to try and get Apple to not force the community to divide the development effort like this. They would rather not move forward with this codebase.

Right, added likely in response to this post.


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?

Being that this is essentially part of the GNUstep project (of which Greg Casamento is the maintainer), which uses the GPL for all its application-level code, it's not surprising.

Interesting it seems to be more about building an open version of the iPhone called 'stratosphere' (see this https://source.ind.ie/project/ind-ie/blob/master/source/inde...) Given that Apple went all patent troll on Google's Android licensees and patents, unlike copyrights, cannot be avoided by re-expression, I'm wondering about the strategy of making an open phone. Easily doable in 20 years (post patent expiration) but hard at the moment.

I think "stratosphere" is the Cloud platform. The phone from AFAIK is Indie Phone.

I wish Indie Phone all the best, but... haven't OpenMoko http://en.wikipedia.org/wiki/Openmoko and Ubuntu Edge http://en.wikipedia.org/wiki/Ubuntu_Edge shown that open source phones just don't fly? I surely wish they did.

The phone is several years away… we’re concentrating on building the platform at the moment — starting with a lovely way to share stuff you care about between your devices and with other people (without any Facebook-like creepy uncle in the middle — thus, peer-to-peer). Once we get the UX right on the core, we’ll go from there. If we fuck up the UX, none of the other stuff matters. That’s really where we differ with Openmoko, etc. :)

On the contrary the Neo900 phone shows that even very small batches of open-hardware phones can be made. The difference with open source projects is the passion that makes them work (even if just for a few people) :)

Just a shout to say, if you believe in what the ind.ie guys are doing, then please sign their manifesto: https://ind.ie/about/manifesto/ It's time we valued our privacy one again.

Just to confirm why I posted this. Due to receiving a down vote. Phoenix is a component of http://ind.ie and the movement they are trying to create. User experience driven design/technology, which empowers individuals to remain connected, while protecting their privacy and freedoms.

They should definitely do this as they have in the past with Webkit, canvas, Khronos support of OpenGL ES (finally getting a focused product out of OpenGL ES/WebGL), and more.

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.

I think these guys are either very naive (comparing apple and google this way) and making such a significant business decision based on such shaky arguments. or this is a PR stunt, in which case who are they targeting, HN?

Seeing more and more thoughts be published like this in the last few months. It seems developer discontent might be growing with Apple.

This is the kind of unfounded complaints we've seen from people about Apple going back at least to the 1980s. More recently, there was an "outcry" when Apple waited a few months to release the latest version of OS X as open source after releasing the retail version.

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.

Looks like it's based on "swift2js", which I hadn't previously heard of and seems pretty nifty:


Someone hit the commit button too soon. parser.y is missing:

$ make make: * No rule to make target 'parser.y', needed by 'parser.c'. Stop.

Well, we already know that Swift is not swift at all. Let's see if Phoenix will die and then resurrect.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact