Hacker News new | ask | show | jobs
by jmgrosen 4400 days ago
He seems to generally like it -- similar to Rust in a lot of ways, but a little higher-level, which is appropriate for its intended uses (iOS and OS X apps). He nor I seem to think that it can replace Rust (especially if they don't open it up!), but it definitely seems like a compelling option.

EDIT: Does anyone know if it's possible to try it without a paid iOS / OS X dev license? I'd especially like to try the playground, but I'm not willing to dump $100 on it.

3 comments

You only have to be a paid developer to get the beta of XCode; once it comes out of beta, it'll be available on the Mac App Store for free.

That said, it'd be nice to see Swift get open sourced at some point.

I'm afraid that it's going to be tied too tightly to the Cocoa Runtime to make opening the language up feasible without also opening Cocoa up.
You're thinking of the Objective-C runtime, which in fact is opensource: http://www.opensource.apple.com/source/objc4/objc4-551.1
I don't think so. It seems to me that they did a good job on the interface between Objective-C and Swift, so one could perfectly live without the other. Objective-C constructs are exposed as native Swift constructs.
C# is "open source", but the CLR is not.
If they open sourced the compiler then maybe you could link against GNUstep on other platforms.
That's their hope - after 1.0, they want to open-source it.
They used to offer free student developer memberships, but I think they stopped that a while back. Now you have to be part of one of the paid programs (or be part of a university that's signed up with Apple).

It is pretty disappointing that Apple is walling in Swift like this. I was excited about it to begin with, because it looks like a great language, but apparently as Microsoft moves toward openness, Apple is doing the opposite. Now I'm not really sure what to do with it.

I wouldn't be surprised if Apple ends up open sourcing Swift after it cleans it up, perhaps even making it an LLVM project. I see it similarly to how they handled their own AArch64 backend -- proprietary at first, but mostly for secrecy before it was announced and then merging it with the preexisting backend after it was announced.
How much cleaning up do you expect at this point? It's already both announced and released to developers. Obviously it's not 100% finished, but if they intended to open-source it, I wouldn't expect that announcement to come after publicly releasing it.
They haven't publicly released it yet. Xcode 6 which includes Swift is currently part of the beta available as part of the Apple Developer Program.

That means it is still under NDA as well. Most likely after Xcode 6 is released publicly (i.e. available on the Mac App Store) they will do a code dump back to the LLVM project.

> That means it is still under NDA as well.

Partially. They made the language manual freely available on the iBookstore.

I'll grant you that. The compiler/llvm/clang parts of it though are still under NDA.
They did announce they would not guarantee source compatibility until after the release date. So the language will likely change a bit still.
Huh, I must have missed that. That's definitely contrary to the message most of their stuff is putting out, which is "Go ahead and and use it to write applications." Thanks for pointing that out.
There is a context you're missing. Use it sure, but be ready for them to change things prior to GA.

This happens pretty often in their betas. First few iterations of even new frameworks can end up doing vastly different things than later versions.

And promised converters for any source changes necessary. I expect it'll be similar to the Convert to ARC and Objective-C Literals Menu items in Xcode.
I agree open sourcing this would be the logical move and maybe even open up its usage outside the iOS/OS X ecosystem long term, which would be in the best interests of Apple, but it's not ready for production use yet - from their announcement page:

And when iOS 8 and OS X Yosemite are released this fall, you can submit apps that use Swift to the App Store and Mac App Store.

This is intended as a beta, and they won't even allow you to use it in production yet, even if you wanted to, so you can expect some small changes to the language spec as they refine it. Typically the xcode betas can't be used to submit, and Apple have released other projects closed source before open sourcing them (for example webkit).

It's interesting that they're moving development on both platforms to this new language. I wonder when we'll see a unified API?

I'm not sure what makes you think they won't release it; they typically release their LLVM work and the stuff they build on top of it at some point.
I don't mean that they won't release it, but that they haven't indicated any intention to release it except as a binary thrown over the wall into their developer program. They just held a very big developer conference and made no mention of it being free or open-source. Their "LLVM work" up till this point has all been C and Objective-C stuff that's part of the LLVM Project and they have made a big point of that, so I don't really see how it reflects on this, which is not part of the LLVM Project and is not based on existing cross-platform languages where they're competing with other open-source tools.

A proprietary Swift even sort of makes logical sense. I could easily see Apple thinking that since Swift is intimately tied to its proprietary system frameworks, Swift should be proprietary too.

The C stuff wasn't part of LLVM until Apple made clang, a separate C frontend which uses LLVM. It's part of the LLVM project only because they contributed it; there's no particular inherent reason it had to be.
Xcode 6 is currently in beta, the beta is part of the dev program. Just like the new Yosemite beta is part of the dev program.

Once Xcode/Yosemite are no longer beta they will be released for free, just like the existing Xcode that is freely available from the MAS.

I don't know that there is much question of replacing Rust when it isn't in use except as an unstable experiment with a lot of interest. You could replace Rust with outright vaporware.
Rust is not vaporware under any reasonable definition of that word; there is plenty of Rust there to run. It is not stable yet, to be sure; but there are plenty of people happily using it, some even in production.
The person you replied to did not say that Rust is vaporware.

At worst, it says that Rust's toehold is tenuous enough that even vaporware could replace it. I don't agree with that, but I can understand the sentiment. Think "knocked back with a feather".

Why is that comment getting voted down? Everything it states is true.

Rust isn't stable. It really hasn't seen any serious use.

Even the Rust home page itself currently states, "Rust is a work-in-progress and may do anything it likes up to and including eating your laundry."

It's still in development, but it's a far cry from vaporware, and it's already being used in production at at least one company.
pekk isn't saying Rust is vaporware. The meaning of pekk's post seems to me to be "Since Rust is almost never used in production, outright vaporware would allow people to do the same thing they mostly do with Rust: not use it." In other words, Rust has not yet found a niche, so you can't supplant it in a niche it doesn't yet exist in.