Swift Was Almost Named ‘Shiny,’ Ditched Objective-C for Memory Safety

Apple’s self-started programming language, Swift, was originally named ‘Shiny.’ No, really.

This isn’t a rumor, either. On the Swift Community Podcast, Shiny Swift’s founder Chris Lattner discussed the origins of the language, as well as how we came to find ourselves trying to put Objective-C (Swift’s predecessor) in our collective rearview mirror. One standout detail: Swift was originally named ‘Shiny,’ which has both obvious and niche connotations. From a transcript made available on oleb.net:

At the time it was codenamed “Shiny”, as though “you’re building a shiny new thing”. I was also a fan of the Firefly TV show.

Wikipedia says Firefly used terms like ‘shiny’ interchangeably with words like ‘cool.’ (I am going to make a ruling on this right now that “shiny” is not a cool name for a language. Let us never speak of this again.)

Dubbed ‘Objective-C without the C,’ Swift actually has a lot to do with C. It was after Lattner and his team added C++ support in the Clang compiler in 2010 that he thought there should be a better language than C available to developers. Lattner began talking with Bertrand Serlet, who was head of software at Apple in 2010, and the two began whiteboarding how to make Objective-C better. Lattner eventually built a pitch-deck for a new language.

But the turning point for creating Swift rather than upgrading Objective-C was memory management; specifically, the Objective-C garbage collector. From Lattner:

One of the things that came out of it really early on was that we started talking about memory management. At the time, we were both convinced that there had to be a good way to solve or improve memory management and we needed to get to memory safety. So you have to have automatic memory management.

One of the key things that came out of that was ARC and the idea that we could have the compiler own and drive this instead of having a runtime. Objective-C had this libauto garbage collector at the time, but it had a number of problems. That was kind of the genesis of Swift internal design discussions turning into Objective-C features. And many of the things that came out, including ARC and modules and even literals and things like that, really came from the behind the scenes development of Swift.

Something I’d heard long ago was that Swift was actually peeled back a touch at launch because Apple was concerned that Objective-C developers would revolt. The thinking behind that decision was straightforward: If you introduced something simple, developers would at least get interested and pay attention; then you iterate, and they begin to like the new language and involve themselves in its evolution. Eventually, it becomes the default.

Lattner drove that point home during the podcast, saying: “In terms of the Swift development, it was a way of de-risking in a sense, because if you say, ‘We’re gonna roll out everything all at once,’ and none of it is tested, then it’s hugely risky. But if you roll out ‘minor’ things, like a whole new memory management system, separately and then you iterate, debug, and develop that with the community, then it takes a certain amount of risk away.”

The whole podcast is worth a listen (or you can read the transcript, whichever you prefer), and is full of insight about Swift and how languages come to fruition. We also really enjoy Lattner’s take on Apple’s Craig Federighi. If you thought Hair Force One was just a nice coif, think again; Lattner suggests that beneath the impressive hairdo is a massive brain: “Now, Craig is a really, really interesting person. He is super charismatic, both on stage, but also in person and in one-on-ones. But the thing that I think a lot of people don’t understand is that Craig is just ridiculously smart. And he is super deep on so many topics. And I didn’t expect this, but he knows a lot about languages,”

“And he’s not just the high-level guy who cares about strategy,” Lattner continued. “He also cares about a ton of things, like closure syntax, keywords, all that kind of stuff.”

Swift was always named Swift and Craig Federighi is a very smart guy. These are the facts we accept fully.