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

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.

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.

Salary Predictor

Estimated base salary using job title, location, and skills.

More About Dice Salary Predictions

Where does this estimate come from?

Dice predicts salary ranges based on the job title, location, and skills listed in
individual job descriptions. Our proprietary machine-learning algorithm uses more
than 600,000 data points to make its predictions. To get the most accurate
prediction of the salary you might earn, customize the prediction in your Dice
profile. Actual salary offered by employer may vary.

How was this salary estimate calculated?

Dice's predictive salary model is a proprietary machine-learning algorithm. Unlike
many other salary tools that require a critical mass of reported salaries for a
given combination of job title, location and experience, the Dice model can make
accurate predictions on even uncommon combinations of job factors. The model does
this by recognizing patterns in the more than 600,000 salary data points to infer
how much each factor - job title, location, experience, education, and skills - will
impact the salary.