It is surprising, and very pleasing, that these releases are on GitHub instead of being tarballs on http://opensource.apple.com/ The repos have real change history, too, going back apparently to the beginning.
Having the full history is interesting. The bugtracker links are often Apple-internal though.
Sure, but that’s quite similar to projects that are open sourced at some point - this migration won’t be done. Their bugtracker is open now (sadly, it’s JIRA and you have to log in).
That’s actually the biggest surprise and quite a bold statement. Looks like they either planned to really open source it from day one or spent a TON of time prunning the tree. Not many companies would do a move like that.
It seemed to be very much Chris Lattner’s baby for a while, and then you see other Apple contributors.
Also, I think this might be a converted from SVN/CVS repo, considering the terminology of the early revisions.
Apple uses SVN pretty heavily internally.
You can see references to it being in svn in some commits so its definitely been filtered a little in conversion.
I am really excited to see how Swift evolves as a future systems language, particularly for the non-Apple (i.e. Linux / BSD) space. Until now, Golang has been (IMO) the only other mainstream contender and I have been underwhelmed by the language design. (Please don’t down-vote me here simply for expressing my personal opinion - that’s why we’re here right?) Whilst Swift isn’t perfect by a long shot, a functional-imperative language with good type inference targeting a first-rate toolchain in LLVM could open some very interesting new doors. Agree? Disagree?
What’s your opinion on Rust? I have written a whole lot more Swift than Rust, but I must admit, I kinda feel that Swift is a poor mans Rust. That’s my initial view of Rust anyways. The languages are very similar in syntax and features, and though I like Swift, Rust is done completely in the open by Mozilla and the rest of the community, and their main target is “multiple platforms” like Linux, BSD, OS X, whereas Swift is foremost iOS and OS X, and it will probably be like that for a long time. Swift is also more high-level than Rust, but I don’t really see that much difference in writing Swift vs. Rust, so how much higher level when it comes to writing Swift over Rust, I don’t know, but it surely means that you can do lower level stuff with Rust while still using similar features that the higher level Swift has. It’s a lot easier when you have to choose between, say, Rust and Python, because the difference is greater.
What I’m going at is: why would anyone choose Swift over Rust for the server backend for a iOS+OS X app instead of Rust? And if OS X and iOS is not at all in the mix, why would anybody choose Swift over Rust? I don’t acknowledge the “it’s better to use the same language for all parts of a system” as a good reason. Anything else?
GitHub repo is here: https://github.com/apple/swift
Concomitant with the development of Swift are the development of a new package manager (Swift Package Manager), an open-source drop-in replacement for the Foundation library, and an open-source port of XCUnitTest, Apple’s unit-testing framework. So they’re also going all-out on the infrastructure around the language, which is hugely encouraging.
I was happily surprised to see that Max Howell (Homebrew creator) has been working on the Swift Package Manager, too.
Out of curiosity, will there be Windows support in the future?
Jonathan Ive may hate the logo on https://github.com/apple , i think.
So do we think this will be more relevant on non-Apple/NeXT platforms than Objective-C has been? There’s been a full open source, cross-platform Objective-C compiler & runtime since the early 90s with virtually no impact.
The only real reason to use Objective-C was for access to Apple’s libraries; without those, what’s really the point? I like Objective-C the language but without Foundation/et al it’s a much harder sell.
As a historical note, ObjC was also the basis of GEOS, which was originally an OS on the Commodore 64 before migrating to Nokia pre-smartphones. I agree, sadly, that this still constitutes essentially no impact. :(
I do think having Foundation available cross-platform will make some difference. Whether it will really catch on, I have no idea.
I would like to hear people’s summaries of Swift v $POPULAR_LANGUAGE. AFAICS Swift is ObjC “2.0” (and I think that’s a good thing.) But would you, e.g., be able write WebKit:TNG in Swift?