Swift.org


« Black Friday Sale

Next »

A week ago a blog post from Tom Doron appeared on the swift.org site announcing that the Swift.org Website is Now Open Source.

He presented goals for the site and announced a website working group with an acronym - 'cause you need an acronym - SWWG: Swift website work group.

This is a longish post so let me call out the three big points:

The swift.org site and this project matter to me for several reasons.

First, I've been a fan of Swift since it was introduced and have spent much of the past nearly eight years since it was released writing books about it, presenting at conferences on Swift related topics, offering trainings in various aspects of Swift, writing apps in the language, and interacting with members of this fantastic community.

Second, I helped launch and manage a similar site for the Java Programming Language that was amazingly successful and then it disappeared. I think I learned some lessons from the rise and from the fall.

Third, I talked to people at Apple about what I thought this site could be and what I hoped it would be and I talked to them about the commitment it would take. That was four years ago. It was a little over a year after Kim died and I honestly don't remember whether they flew me out or I flew out because they were willing to meet with me. I mention this because I don't want to overstate their commitment to the project. Even then they had expressed dissatisfaction with the state of the site and Ted had blogged about having plans to make swift.org into more than it was.

I won't say who I met with that day or what we talked about, but I will say that they seemed to listen and I left them with what I thought were clear messages. I'll get to those but first I want to talk a bit more about a vision of swift.org. This is just my personal vision. I expect that Apple has their own ideas and the working group will add their ideas as well.

I also want to make it clear that I'm not auditioning for a job or interested in serving on SSWG. Even at our meeting when I laid out what I thought needed to be done, I suggested more than half a dozen names of people who I thought would be great editors of the site. At the time I was interested, but I cared more about the site doing well. I bet you could come up with a list of ten people who would be great in that role as well.

Anyway, let's start with the site we built for Java. I was brought into the java.net project about five months before we launched at the JavaOne conference on June 10, 2003. I remember the date because it's my mom's birthday.

Java was big. Of course enterprise companies like IBM and BEA were using Java, but at the time it was strategically important to Apple. It had been one of Steve Jobs' stated commitments when he returned to Apple. In 2000, "Steve Jobs appeared onstage at the annual JavaOne conference in San Francisco and vowed to make the Mac the 'best Java delivery vehicle on the planet'.

The year that java.net launched, Apple was a Gold sponsor at JavaOne and there was a lot of Java on the Mac news. At the time, Java on the Mac had been my beat. I'm not sure if that's why Sun reached out to ask me to be the editor for the java.net site.

Anyway, java.net had been the idea of Dick Gabriel. Dick was a distinguished engineer at Sun who had the interesting combination of a PhD in Computer Science and an MFA in Poetry. He was interested in both technology and in building communities.

His vision was that creativity flourished when people encountered ideas outside of their community.

In addition, Gabriel was a strong believer in open source and the promise that Innovation Happens Elsewhere which was also the title of the book he cowrote with Ron Goldman. In the blurb for the book, they write that the purpose of this book on Open Source as a business strategy is to, "help you decide on whether open source is right for your project, and, if so, what steps you should take to proceed and some mistakes you should avoid."

There are very positive things about open source but there's a lot of work that has to be done to ensure its success.

"But Daniel," one of my friends said last week when I worried out loud about just making swift.org open source, "Swift is open source and it's working well."

I would agree. But look at what it takes for Swift to be open source.

Apple invests many million dollars a year in Swift for it to be successful. There is a core team and many other engineers working on the language and on the implementation.

The evolution process opens the growth of the language to the community, but there are restrictions.

You can't just suggest something. You need to accompany a proposal with an implementation. After a proposal comes through the community process, the core team still makes decisions on whether to accept the proposal, reject it, or return it for more revisions.

These are all good things. I want there to be suggestions from the community but I want a steady hand on the rudder. I want the language to develop a personality and to have opinions. I don't want it to be all things.

Most of all, I want people who think hard about difficult problems all day to be responsible for knowing when something isn't ready. I believe an example is count(where:) which was implemented and accepted before an edge case was found where the performance was problematic. I may have the details wrong, but I'm happy that those guard rails are in place.

Also, there are things that Apple needs to do to move the language forward for their own needs. Think of how many of the changes to Swift over the past four years were motivated by the needs of SwiftUI. There have been proposals that appeared on evolution at the same time that we saw APIs that included their usage.

I have no problem with any of this. I only bring it up to point out that open sourcing something doesn't just mean an independent work group and pull requests.

I want to see that the things that Apple does to make Swift evolution work be part of what they do to make swift.org work.

I want Apple to hire an editorial team for swift.org. At java.net we had an editor, an assistant editor, a news director, a community manager, a designer, and a producer. None of them were Sun employees.

In addition, we commissioned articles and featured content from around the net. The articles we paid for belonged to the author. We had the right to publish them and to keep them on our site but they had the right to post them on their own site (I think we asked for a month exclusivity - but I don't remember).

Remember Dick Gabriel? He believed that we live within communities inside of communities. It's true. For the most part I don't know what's going on in Server Side Swift. But there are things in that world that I should know more about because they are relevant to me.

There is a duplication of effort and an inconsistency in output when we don't know what each other is doing. Before the Result type was part of Swift, tons of projects implemented their own version. There was a version that the server folks had that isn't the same as the Result we now have in Swift. How many XML parsers did we build before we got Codable?

There's this thing that Apple does where you'll see something in one OS such as macOS and not know what it's there for and then a year later it shows up in iOS and you get it.

There are things being worked on that target something that servers need that is going to benefit folks working on watchOS apps. Swift.org can help us see into these different worlds.

Look at the Swift.org front page today and it's essentially the same "Welcome to Swift.org" message that's been there for years along with a sidebar with links.

When java.net launched that's how we looked too.

There was a message from the Sun employee tasked with supervising the site and you had to click through to the front page that I managed.

One of my first successes was to eliminate that front page. People don't click through. When we became the front page of the site, suddenly people saw the vibrant world of Java.

And that's what I want for swift.org.

I want the front page to change five days a week. I wrote a daily post pointing to something we wanted to highlight in the world of Java. Sun understood that we highlighted efforts by their competitors. Gabriel reminded them that "Innovation happens elsewhere."

Actually, the full explanation is that "innovation happens everywhere, we just forget there's more elsewhere than here."

For Swift to thrive and be more than Apple's language, we must highlight the contributions of the community. That doesn't mean we don't feature things that the core team are doing - it just means that we remember that Swift innovation and contributions are also happening elsewhere.

If I were editing the swift.org front page I would feature proposals currently in Swift evolution, conversations in the forums, projects in SPM registries, and projects not in SPM registries. I would feature articles, blog posts, podcasts, and videos produced by community members that explore, explain, and even complain.

It would be like the front page of a newspaper with links to navigate back to yesterday's front page and the day before that so that it becomes a living story of what's going on in the world of Swift.

I would work with the evangelists who put on WWDC to mine one to two minute pieces from the WW presentations and once a week we'd post one with a link back to the full video and perhaps a short article that points to related material from years past. WW is overwhelming. Sometimes you need a gentle way back in to get pushed in the direction of a talk you might find helpful.

This swift.org that I imagine is expensive. It will cost somewhere between half a million and a million dollars a year - maybe more. Apple will need to fund it and most of the people hired should not be Apple employees.

The swift.org that we have is very inexpensive. And honestly, the open source version will likely have a bump of activity and then run in many different directions.

After I left java.net, Chris Adamson took over the site. He put his own stamp on it and it changed with time. It was still a great and important site but a site will necessarily have the imprint of the people who do the work. After Chris left, it was taken over by someone I didn't know. I was no longer working in Java so I didn't check the site out much anymore.

After a year or two more (about ten years after we launched), Sun looked at how much money they were spending on the site and decided that it was not money well spent. They open sourced the site and eliminated the editorial positions. The site died in less than a year.

I think if you ask the Sun executives they would say that's ok.

I don't know what Apple's vision is for the swift.org site.

I hope that their commitment is enough to give us something special.