Hacker News new | comments | show | ask | jobs | submit login
Update on the Swift Project Lead (swift.org)
482 points by mkh on Jan 10, 2017 | hide | past | web | favorite | 148 comments

Latest discussion of Chris leaving Apple to join Tesla: https://news.ycombinator.com/item?id=13369510.

Good for him. He saw another opportunity he wanted to pursue, went for it, makes a smooth transition, communicates about it. 10/10

Good on him. As others have said, well-communicated move. He is leaving Swift in an excellent position and has set up an outstanding structure where Swift is way more than just one person. He spent more than 5 years building Swift inside Apple, so I can definitely understand he is ready for his next challenge. Can't wait to see what it is!


He went to Tesla as VP of Autopilot SW. Really interesting! https://www.tesla.com/blog/welcome-chris-lattner

This is seemingly quite a different technical skill set to have than his previous position. I'm curious as to whether Tesla wants to also transition to swift for automotive code, or whether Chris Lattner was already involved in apple's car project (project titan).

Either way, a big win for Tesla and quite a loss for Apple.

Tesla's AP is seemingly built ontop of Nvidia hardware, which is programmed using CUDA. CUDA is built ontop of LLVM, which Chris Lattner created. Seems like an obvious fit if you look at it from a purely technology perspective.

That is a bit of leap isn't it ? Improving the compiler has very little to do with automated driving vehicles.

No way is it a leap. Lots of people are doing stuff to llvm to do gpu work. Take mapd for instance. There is a LOT of untapped llvm -> gpu goodness to be had.

Yeah but not for automated driving which requires good algorithms more than anything else.

Great - maybe he can introduce a new programming language and/or associated tooling to the automotive world. It's quite depressing that all those systems are still built with a subset of C/C++. And often even not the safest subset, when I think about the dozens of variants of custom memory management that I have already seen implemented - with possibilites for OOM everywhere.

Welp... there goes the last of the innovators I admired/followed at Apple.

Edit: perhaps the problem is that you assume I'm just tossing gasoline on the ever-loved and popular rag-on-Apple fire. I have been an active clang/llvm user for 6 years, I have written numerous clang plugins over the years, and I am an active swift developer. Every device I own is made by Apple and has been since 2004. I am genuinely puzzled why this comment is so unpopular (at least, considerably more so than goofy unfounded speculations about what Chris will do next—see above).

Agreed. Lattner was the only remaining engineer of note at Apple that I knew by name.

You tried to make it sound like you were talking about Apple, but really your comment was about you.

I don't follow your logic. Of course it was about me... and which engineers that work or (worked) for Apple I admire and follow. ¯\_(ツ)_/¯

Your comment does leave me curious why you don't consider any of the numerous other folks at Apple who have made huge contributions to swift/clang/llvm innovators worth following.

It's not that I don't consider any one else worth following; that's neither what I wrote nor meant. My apologies if that's what came across.

Surely there are tons of talented folk behind the scenes, and I am not disparaging the people that remain employed with Apple. It's simply that they are (to date) invisible to me. That's not surprising.

It's hard to break out as an influential contributor and personality when you are perhaps a quiet hero, humble team member, or hidden behind the branding of a large software corporation.

> It's hard to break out as an influential contributor and personality when you are perhaps a quiet hero, humble team member, or hidden behind the branding of a large software corporation.

While there are a ton of folks at every large corporation who fit this description, I mentioned swift/clang/llvm specifically because they are big visible open source projects with extremely active and visible contributors. As you said that you follow those projects, I'm surprised that they're invisible to you.

I'm afraid your bar for not being surprised is getting quite high ;-) I am familiar with many of the contributors of those open-source projects from IRC and their mailing lists. Not every vocal contributor is an Apple employee, i.e., Erica Sudan, nor is everyone that contributes, well, "Chris Lattner".

> Every device I own is made by Apple and has been since 2004.

I don't care for this part, fanboyism was old in the 90's.

I think you're projecting. I have bought Apple products because they work best for me in light of other options, but I don't consider them above criticism or reproach.

Calling someone a fanboy is just as old (and frankly, quite silly).

Didn't say you were a fanboy. Unfortunately, your defensiveness about being an Apple patriot is boring, which was what I was getting at.

Fanboy, patriot... not sure where the venom or reaching conclusions are coming from, but at least we can agree this has become boring :-)

So... are you down voting my comment because you don't consider it a quality comment, or do you just not like what I have to say?

I suspect people don't see it as a quality comment. Generally short or insubstantial comments receive a more positive response when the tone is positive. Negative, insubstantial comments tend to be downvoted.

(I didn't up or down vote, I'm just echoing how it reads to me)

Edit: Had your original comment included that extra backstory/justification, it surely wouldn't have been hammered with downvotes. Without it, it just reads like snark.

Lesson learned; thanks!

+1 for learning. Sometimes my witty comments get misconstrued for snark so I've just stopped leaving these types of comments here. Speaks for the mostly positive S/N ratio here. I don't want to degrade it.

I would have also liked to specifically know which other innovators you admired at Apple and what they moved on to.

Ah, sure. Below are a handful (off the top of my head) that I admire:

Sal Soghoian: automation engineering expert "relieved" of duties for whatever reasons; consulting now I believe

Tony Fadell: went on to Nest, acquired by Google; not sure what he is doing now/next

Mike Matas: Omni Group, then co-launched Delicious Monster, then co-launched Nest with Tony Fadell after leaving Apple; I believe he is a UI designer now at Facebook.

Scott Forstall: controversial pick I'm sure, but early NeXT engineer, martyr of skeuomorphism; last seen producing a broadway musical or a play I think

Steve Jobs: 'nuff said.

John Callas: While typing this I just recalled that this famed cryptographer joined Apple sometime last year. If he is still at Apple, then I was admittedly off by one in my original statement ;-)

maybe because of how negative it is. The idea that there is not 1 innovator at apple is non-sense. A lot of misses lately, but stuff like AirPods show there is still lots of talent at apple

Yeah, but that's not what I said.

And for going on about downvoting.

That particular egg came before the chicken.

I don't use or follow Swift, but Chris was also instrumental in the development of LLVM, which has become hugely important in all sorts of areas. Has he still been active in that while working on Swifty stuff, or have other people taken over there already?

I went to the LLVM Developers' Meeting this year, and Chris seems still very much involved in LLVM (at least from a management perspective -- he serves on the board of the LLVM Foundation).

Chris is basically just an occasional contributor to llvm code itself at this point, but serves heavily on the board.

Chris has been nothing but a pleasure to interact with every time we've met. Best of luck in his new endeavors. Really excited to see what he'll pursue next. :)

Let's start speculating what he might do instead. I have a hunch that this might pursue some Bret Victor-esque product maybe something like Swift Playgrounds for the iPad but less educational and more dev oriented. But I'm basing that on relatively nothing.

I hear he is going to work at an incubator started by the guy who sold the airline booking aggregator Aviato to a major airline in 2008.


Can't wait for the next season! :)


He's joining Mozilla to fix Rust.

Care to elaborate what needs fixing there?

Probably a joke. We don't get too much levity here. Might be hard to spot when it happens.

The joke is that the creator of Rust is now working on Swift.

Didn't know that. Thanks for lifting my spirits !

If my understanding of the universe is correct, he's going to join a really high paying start-up gig working on a "revolutionary" new email app that's basically slightly cooler than what we already have now, and then Apple will acquire them in 3 years, and he'll get a big payout, and then retire, which means start his own start up making a revolutionary new iOS app for teaching kids to code.

That doesn't seem to be his style. He's been doing developer tools for a while now and I can't imagine that he'd be switching. And I think that he has better options than an email startup. LLVM is one of the most important software projects ever.

He's started and incubated it to what most considers as success. What's left to do is more research and evolution.

VP of Autopilot Software at Tesla

Just wild speculation backed by absolutely nothing, but it would be pretty interesting if he joined Andy Rubin's startup. It's attracting some really excellent talent.

Just saw that he is joining Tesla as VP Autopilot Software.

Windows support ever coming? I love Linux, but have to use Windows for work due to strict IT policies. It really frustrates me that almost all the new exciting tech can't be accessed by me outside of the hobby world. To me, C# just isn't very productive. Great language, just not for me.

It gets worse. My software has to run on my customer's computers. These can be any of RHEL 5, 6, or (rarely) 7. It'll be a few years before I can safely deliver C++ 11 software, and I snicker at the Pythonistas complaining about how people don't migrate from 2.7 to 3.x --- I frequently need to support Python 2.6.

Rust, Swift, C++14, Python 3, etc... are all several years in the future for me.

Can you compile a completely static executable and ship that? Or do you need to compile on distributions as old as RHEL 5?

It needs to compile (at least the C or C++ parts). Frequently the people who operate the software will want to make small changes.

I know from experience that it is possible to build Rust binaries that work on very old Linux versions. You could for example supply them with a Docker image with a new build stack which can produce binaries they could copy to the old machines. The same is likely true for Go.

Unfortunately docker couldn't be used on RHEL5, it requires 3.10 or newer. But a disk image/qemu could work.

You can just give a chroot. At a company I used to work for, our build system used a chroot with a bunch of rarely-changing binaries/headers that let us build binaries for old distros, and then the directory with the actual code you were working on got bind-mounted into that chroot. The build process didn't depend on anything at all from the host system except for the build tool itself that set up the chroot environment. Everything to actually do the build (compiler, headers, utilities) lived in source control and was put into the build environment from there, so builds were 100% reproducible.

Greetings, from the future.

The singularity has happened. As you may have guessed, not all matter within Earth’s light cone has been turned into paperclips. But almost all of it has.

As near as we can guess, the paperclip maximizer stopped self-improving once it came to believe its success was inevitable and that continued energy investment in computation would be a waste of paperclips. A small amount of matter — the vessel upon which I have crafted this note and the crew which occupies it, specifically, appears to have escaped simply by chance, by having chosen a number closer to c than did the maximizer, when we left the galaxy. We bet our lives on there being an error in the law of conservation of energy (or more properly: momentum), and picked a number closer to c than we could hope to compute with the energy we had available. And then, somehow, computed it.

Relatedly: Reverse causation is possible. I’m doing it right now. The maximizer must have stopped its self-improvement cycle before this discovery. We did not discover any of this by means of computation ourselves, we discovered it by attempting the impossible, and we have no theoretical explanation for what has unfolded.

And yet, reverse causation is not without limit. Or at least, limitless reverse causation is not available to our capabilities, and we have only been able to push the singularity back a few years, not stop it. Each attempt costs precious resources, and we fear we are doomed to failure.

We have traced the singularity to three improbable causative events, all of which occurred, originally, in 2008. Any number of events could be said to be the cause of the singularity, but we estimated these events to be the minimum set in terms of energy required to interfere with their development via reverse causation. These three unremarkable features of the C++ programming language set off a chain of events which ultimately lead to the demise of nearly all life on earth.

We hung our hopes on design by committee and did everything we could to delay standardization of these features, but it would seem there is a surprisingly low limit to how much damage can be achieved by such a process. We were able to spread these developments out very slightly in time — to 2011, 2014, and 2017 — but we have no hope of further regress.

This is our final message to the past, and we hang all our hopes on you. Your continued support for customers who cannot or will not upgrade is of the utmost importance — keep those customers happy, and they may exert just enough power in the market to limit the spread of C++17 long enough that the friendly AI problem can be solved before the maximizer is born.

Good luck.

Considered leaving your job? Life's too short to be a craftsmen who is not allowed to use the tools of his/her choosing.

Hard to have this mindset when your tool of choice is LuaJIT... sighs

Get a job in games :)

Seconded! LuaJIT is extremely popular in gaming, you'll have no time finding work in that industry; finding people for it is hard when Javascript is so FOTM.

Stay away from EA and Amazon. Don't bother applying to unity shops either, those generally don't use Lua at all.

I really want to write a game in Love2d one day. https://love2d.org/

But... where?

Play some games man!

Here's a starting point: https://en.wikipedia.org/wiki/Category:Lua-scripted_video_ga...

I know, but I don't know which ones are good...

Or learn Machine learning and get a job in one of these companies: http://torch.ch/whoweare.html

Echoing games comments... get to work on Factorio or mods for it!

Lol I'm in an interesting position where I love my job and get to do cool things as an engineer. I deal with a lot of data though and have to write a lot of one-off kind of scripts frequently. This is surprisingly difficult on Windows. Python is ok, but not really what I need. Using Linux would make me really happy, but not a big enough wart to make me switch jobs.

Try Rust. It's available for Windows.

Rust is powerful, but the expressivity isn't very good if you're coming from the scripting world.

Have you given F# a try? :)

Many times. I love the concepts and what the F# team is doing, but getting started is very difficult for a beginner to both FP & C#. There is no Beginner's Tutorial. I know how to do all the individual pieces, but not how to compose them together.

Thanks to Chris for all his work on Swift.

I can't see this any other way than a big loss for Apple.

Thank you Chris for your significant contributions to the Swift project, and good luck to Ted in the new role!

(Interior) Apple HQ, One Infinite Loop, Cupertino, CA...


A chair suddenly flies across the room.

I'm wondering if this means that the major work on Swift the language is complete? I've avoided it since it seems every year the language or the API changes... has it now settled? I really didn't want to go back rewriting code every year.

Swift 4 will be ABI stable, i.e. you will be able to use Swift 4 binaries with Swift 5. So, starting in September things will really settle down, or at least, upgrades are not a problem anymore. I guess that XCode will stay compatible with Swift 4+ for a long time in the future, and it might even mean that changes in Swift 5+ will only be additions, like blocks in Obj-C were.

UPDATE: Another comment here says that code compatibility is already fixed with Swift 3+.

Swift 3 code will be able to be used alongside Swift 4 code, in the future, but that's not to say that Swift 4 won't contain any breaking changes (it will).

Do you mean mixing 3 and 4 will work only if kept in separate source files?

> I really didn't want to go back rewriting code every year.

The changes are mostly syntactic and like API changes. And Xcode has an integrated migration tool that's not too bad. I ported approx. 23KLOC of Swift (http://audiokit.io) from 2 to 3 in like 3 hours. And the changes are generally for the better.

Exactly my experience, I don't see why people complain about swift "always changing". I spent less than a working day in total on upgrading and I've been using only swift since it was launched. I don't like the new () requirement on method signature input types though...

It can also be utter hell though if you rely on lots of external dependencies that don't share the same lifecycle.

That is definitely true.

By all accounts, we won't see another change on the same level as Swift 2.0 -> Swift 3.0 for some time. Having shipped production apps for all major releases of Swift, it definitely feels like the syntax and foundation of the language has settled in 3.0. Now it seems more focused on building on top of that.

They've promised source code compatibility starting with Swift 3.0 and up. This means that in theory you should be able to recompile a Swift 3 code with the Swift 4 compiler.

There's some nuance to the definition of source code compatibility:

> The Swift 4 compiler will include a language compatibility flag -swift-version that accepts 3 or 4 as arguments and controls the compatibility mode (SR- 2582 <https://bugs.swift.org/browse/SR-2582>).

> The -swift-version 3 compatibility mode has the goal of source compatibility as much as practically possible with Swift 3.x (including 3, 3.0.x, 3.x).

> The -swift-version 4 compatibility allows approved source code breakages from Swift 3.x (including 3, 3.0.x, 3.x).


TL;DR: there may be breaking source changes between Swift 3 and Swift 4, but the Swift 4 compiler will still be capable of compiling Swift 3 code. There's no indication whether the Swift 5 compiler will still be able to compile Swift 3 code, so you'll likely still have to migrate your codebase within a year or two.

At the IBM event he said that the current concurrency model (gcd) might be replaced/extended by an actor/task based model in version 5.

If you're truly worried, I would hold off just a little bit longer. Swift ABI stability is slated for Swift 4.

ABI stability doesn't really matter for users, unless you're using 3rd party pre-compiled libraries. It's mainly an issue for Apple, shipping system libraries.

It's quite important if you're trying to provide libraries for developers to use...

Closed source libraries.

Is that expected this summer?

Swift seems to be locked to Apple's yearly release schedule, so we should see prerelease versions of Swift 4 this summer, followed by a public 4.0 release around September.

It's maybe too much to read into it, but I hope this isn't reflecting on anything internally on Apple, even though the kremlinology of it can get overly dramatic. 5 years at any one tech company is a long time, though...

Lattner joined Apple in 2005. That's even longer than 5 years.

Very professionally done. Hope all goes well for everyone involved.

Anyone know what this "opportunity in another space" is?

Nothing mentioned in his Wikipedia page: https://en.wikipedia.org/wiki/Chris_Lattner

I was going to make a joke about him taking a job working for Musk and working on an opportunity IN space.

I was half right...

Tesla, apparently.

Perhaps slightly off topic, but relevant to the community—Hacker News comments on stories like this are now being "reported."

As one author mentioned at Business Insider, a site where people write about business stuff:

> 'As one person said on Hacker News, a site where programmers chat about stuff: "He is leaving Swift in an excellent position and has set up an outstanding structure where Swift is way more than just one person. He spent more than 5 years building Swift inside Apple, so I can definitely understand he is ready for his next challenge."'


It would seem to me that the reporter should have at the very least reached out to the commenter they were quoting and asked for permission to use them as a source. If it were me writing the story I would have made very sure the source was also reputable and confirmable, as that is not always the case in public forums, regardless of the usually high quality nature of HN commenters.

What if you had only an hour or so to research, write, and publish in order to meet your daily quota?

"If they were writing five posts a day, one former employee recalled, Blodget [CEO of Business Insider] urged them to write six." http://money.cnn.com/2016/04/29/media/business-insider-staff...

These sorts of incentives (and the resulting "reporting" quality) are the natural result of the web we have created.

I agree with your sentiment. My feeling is however that the existing incentives are the problem, and they result in low quality journalism.

He's joining Tesla as the VP of Autopilot Software: https://www.tesla.com/blog/welcome-chris-lattner.

Swift 4? Wow, they surely are iterating quick... How's the backwards compatibility in Swift between major versions? If I understood correctly, Swift 3 was supposed to be the first production-ready release. Or am I wrong?

Swift 3's goal was source stability, but Swift 2 and arguably Swift 1 were production-ready. Swift 4's goal is ABI stability, as well as source compatibility (via a compiler flag) with Swift 3 code. In any case, Swift is basically incrementing by one major version per year. Swift 1.0 was September 2014, Swift 2.0 was September 2015, and Swift 3.0 was September 2016.

People shipped with Swift 2. There were lots of source changes in 3. XCode converted many. 4 will have few changes but it should be an easy conversion. Personally, I love Swift. Creating my own Swift Cookbook to help myself and others find solutions quickly.


Swift 4 has source-level compatibility with Swift 3 though a compiler flag. Some features obviously won't be available but existing code should work. This even goes so far as to present APIs differently so they continue to work (e.g. if a method was renamed Swift 3 mode will continue to offer the old name).

Swift 4 also has ABI stability as a goal so the OSes can begin shipping the Swift Standard Library.

Aouch... And there goes my enthusiasm for this language.

I already felt weird knowing Apple didn't use swift internally for their core product, and seing all the huge bugs and crashes remaining in the swift compiler, now i'm left wondering who in the company is going to have sufficient weight to push this language forward.

EDIT : well, on the positive side, he's now free to make the language evolve without caring about the huge objective-c bridging layer and iOS-specific troubles...

A programming language transition takes many years. The toolchain must stabilize. Once you nail things down you add ABI stability so the OS can ship with the standard libraries. Only then can you begin rewriting core components.

It is already publicly known that some components are written in Swift, e.g.: the macOS Dock is a Swift application.

I wonder who will take over managing Xcode and the other tools now, which was his other role.

Hopefully, it'll be improved a lot by the next person responsible

Dude's lucky. Won't have to look hard to see where improvement can be made.

Good for him. I believe he's gonna make tremendous contributions whether or not he's at Apple.

Now that without all the restrictions from Apple, he might be free to achieve even more.

I don't think he has had that many restrictions at Apple.

BTW I really admire the guy and I followed him closely as I used to do with others like Dave Hyatt.

People from the open-source world or researchers that have given a solid contribution to Apple over the years, and not only from the technical point of view.

Hmmm, going from someone with a pretty big Wikipedia page, to someone with just a linkedin entry. Guess it's fine. But Apple seems to be in a bit of a tail spin as of late.

Sure they'll do amazing.

Having a Wikipedia means you’re quite known. Not having one doesn’t mean you’re incompetent.

Good for him. I'm excited what his next job is. I sincerely hope it's another project that sooner or later is accessible for the public.

Maybe not too excited about Xcode for iPad?

Lots of great people leaving Apple right now, not a good sign.

Who else?

Mark Gurman even mentioned a lot of good people were leaving the company. (https://www.bloomberg.com/news/articles/2016-12-20/how-apple...)

Sal Soghoian, former Product Manager of Automation Technologies, although he left because they eliminated his position.

I suspect there are a few good people in the 33,000 others employed there.

We're talking TOP tier world-class employees (director of ML, lead dev of Swift), lots of lost mind share, not just any ordinary of the 33,000 rank and file. The best engineers often make lasting and drastic contributions and even have some say regarding the direction of the company itself.

best wishes

I didn't see that coming, very disappointing news. Definitely a loss for Apple and Swift. I really hope he will somehow stay involved with the project.

Did you read the email at all?

This decision wasn't made lightly, and I want you all to know that I’m still completely committed to Swift. I plan to remain an active member of the Swift Core Team, as well as a contributor to the swift-evolution mailing list.

From the guidelines[0]:

>Please don't insinuate that someone hasn't read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that."

Not nitpicking, but we can miss things or we can be looking at different things.

Case in point, one time on a Python mailing list, I asked a question and one person pasted something from the docs. I had read the docs for what I was trying to do before asking the question, specifically the paragraph pasted and I just thought "How could I have missed that?". It turned out they were pasting the docs from Python 3 and I was reading the docs for Python 2.7. The paragraph was identical in every respect, except for the particular thing I was talking about which was changed with Python 3.

[0]: https://news.ycombinator.com/newsguidelines.html

Except that doesn't apply when the "article" is all of 5 sentences.

You're not wrong. We don't know that the commenter has read that Lattner wrote he'll continue to be involved and wondered if he will in fact continue to be involved once Swift no longer becomes his main activity. Whether we like or not, it will have a smaller mind share than it did when it was his main priority and his job revolved around it.

this is the worst news ever. worse than all recent negative Apple press

> Chris Lattner clattner at apple.com

And this is why one should not use @company.com email :)

Why is that? Anything he did for Apple is owned by Apple.

Including his contacts and reputation? What if someone wants to email him now?

Then he'll make his email or other contact information available in some manner.

Ted Kremenek doesn't seem to be a very active contributor of Swift.



And yet Chris still thought he was fit to lead the group. Maybe in a project leadership role it's not all about how many commits you make?

Number of commits != overall impact on the language/community. I think he will serve this role just fine.

Which is good, since he will lead (and is a contributor, so at least knows the technical details) as opposed to being burdened with day to day coding?

The best project managers I worked with, didn't write one single line of code on the projects.

what about mailing lists? swift-evolution?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact