A Swift Summit Retrospective: Better Together

In a panel discussion that closed Swift Summit, Thoughtbot’s Jack Nutting took the mike to say that “conferences like this are important. They give us a chance to discuss ideas and collaborate. And the Swift team at Apple has shown that they’re listening. They’ve responded to feedback and fixed many issues that we’ve raised as a community.” [1]

I couldn’t agree more.

Over the course of two days, Ayaka Nonaka spoke about writing command-line scripts in Swift, but remarked that while one could link frameworks to the script using xcrun swift -F, this couldn’t be done with projects generated with CocoaPods. That same night, Boris Bügling–a.k.a. @NeoNacho–open-sourced Rome, which is a tool that allows you to do just that. Jorge Izquierdo, a student from Madrid, used the new knowledge and tools to build a CLI to his Swift HTTP server, called Taylor.

The collaboration didn’t stop there, of course. I came away with techniques from Kyle Fuller on how I may be able to use NSInvocation from Swift, which means I could eliminate most of the Objective-C code in Quick.

I’m excited to remove Objective-C source code from my open-source libraries because I believe this lowers the barrier to entry to understanding the internals. Only a subset of iOS developers can read Objective-C.

Conference attendees were interested in whether companies like Twitter, Facebook, and Thoughtbot used Swift in production. But that wasn’t because they were evaluating whether to use Swift–they were merely curious. Many attendees began developing for Apple’s platforms using Swift, and were already convinced that it was the future of OS X and iOS development.

They’re not waiting for companies to adopt Swift. They’re shipping apps written in Swift, and assuming the rest of the world will catch up with them.

The conference also highlighted many issues with Swift, of course. I reiterated my frustration that I cannot test production code that uses assert, precondition, or NSException in Swift–allow me to use this space to apologize for ranting during the panel on Saturday, as it’s a topic I feel very strongly about. But Boris brought up a crucial issue:

Many attendees also couldn’t wait for Apple to open-source Swift. Jack Nutting was even so bold as to say it wasn’t a question of if Apple would open-source it, but when.

I think it’s an interesting idea, but I recall my manager at Facebook once told me that “given the same truths, and given intelligent thought, we should reach the same conclusions. That we don’t means that we don’t share the same information.” Not a single attendee I spoke to thought that Apple should keep Swift closed-source–and yet it is not, in fact, developed in the open.

Of course we would all like to see Swift open-source. We want to help improve the language. We want to learn more about how it works, and improve our mastery of it. Some attendees wanted to see Swift running on Linux, so that Swift could become a viable option for writing server-side applications. But even as the conference comes to a close, I’d like to keep discussing Apple’s motivations behind keeping it closed-source.

In any case, I consider Swift Summit to have been a collosal success. Many thanks to the organizers, Beren Rumble, Ida Kristiansson, and Morgan Evetts. It was a fantastic opportunity to share time together in this new era of OS X and iOS development.

Oh, and before I forget, below are my slides, on Swift API design. You can either see the PDF on Speaker Deck, or download the slides in Keynote–recommended, since I use a lot of animations.

The organizers will be uploading videos soon as well–stay in the loop by following @SwiftSummit.


[1] I’m paraphrasing. Contact Jack for the straight scoop.

 
34
Kudos
 
34
Kudos

Now read this

Thoughts on “Out of the Tar Pit”

Dave Lee recommended I read Out of the Tar Pit, a paper on software complexity. Here are some thoughts I jotted down while reading: Page 2: Dijkstra has got to be the most quotable computer scientist. On software complexity: “…we have to... Continue →