Hacker News new | past | comments | ask | show | jobs | submit login
Interview with Chris Lattner [audio] (atp.fm)
221 points by xenadu02 on Jan 19, 2017 | hide | past | favorite | 43 comments

Just for fun, check out these 2 carpentry projects he did for his family:

https://twitter.com/clattner_llvm/status/736237407016607744 https://twitter.com/clattner_llvm/status/818499400313909249

How he had time to work a director-level job at , develop a new programming language, oversee/participate in the OSS work for LLVM/Clang/Swift, and build things like these I'll never know.

I know there is a ton of hero worship for him, but it's actually not that uncommon. You don't have to work yourself to death to get stuff done, despite what folks may think or parade as "the way to be" for startups. If you find yourself working yourself to death over any serious length of time, you shouldn't be doing that job.

My VP is a world class ping-pong player, does just as much, etc.

You delegate things well enough and build good enough teams that you don't have to worry about this.

IE he did none of the things you mention alone, he built teams that were effective at doing those things.

When folks point out he isn't still the lead author of llvm or clang and hasn't been for a long time (at least on those projects, he hasn't written a patch in a while), people see it as slighting Chris. But it's not. The way you have time to do the stuff you are talking about is by building up communities, teams, and infrastructures so you don't have to be contributing to them all the time.

Nobody really scales by being infinitely faster/better, they scale by building up people.

Reminds me of a quote about Alan Kay:

"The computer industry has a lot of remarkable people in it, but they’re low-dimensional. Alan Kay is very high dimensional: a big space of instincts and interests and capabilities. I mean, the guy could design furniture. He planned a whole programming language while he was building a harpsichord. He was able to do the two things concurrently."

I would bet on relentless compartmentalisation, i.e., making sure he kept on going and took advantage of the different contexts to get a breather/clear his mind for the others.

But he does mention the house took months to build, and handcrafts are a great hobby...

To some extent Apple's secrecy makes it easier to compartmentalize. You're literally forbidden by work from talking to people outside the company including friends and family. Now assuming you don't take that to mean 'always be at work', it's not all bad. That was my experience there.

That kind of doesn't apply when you're the head of Swift - an open source project where the whole roadmap is discussed on a public mailing list.

> "You're literally forbidden by work from talking to people outside the company including friends and family."

Wait, what? This is the first I've heard of Apple forbidding you from talking to anyone else. Unless you mean specifically about the project, and not just ever and about anything?

He means about work.

>> "How he had time to work a director-level job at , develop a new programming language, oversee/participate in the OSS work for LLVM/Clang/Swift"

Weren't all these things part of his job at Apple? Things he could reasonably do during working hours? If so the question is how did he have a job + spare time which is easier to answer.

He was a director, so a lot of his job was coordinating the entire development tools team. He fit in some amount of development during the day, and did a lot of nights and weekends (or at least that's what I've been gathering from the interview so far; only part way through, looking forward to the commute home).

He just made a house DSL and let the compiler do the rest.

This was an awesome episode with great questions from everyone (John, Casey, Marco).

Massive respect for Lattner and his long, multi-year, persistence to making amazing world-changing software and actually caring about open source.

One of the best ATP episodes in years!

Agreed, I especially loved Chris putting John to the mat on GC vs ARC. Also, you can't argue Chris isn't technical.

Now I wish there was a podcast where language implementors could talk about all of this stuff.

I just don't get the yellow car bit at all.

> Also, you can't argue Chris isn't technical.

Is this a typo? As a programmer, I wish I was as technical as Chris Lattner's used kleenex.

Not a typo. You'd have to go back and listen to the prior podcast. But for reference, the discussion was basically (I'm paraphrasing):

    - Chris is leaving because Apple is doomed 
    - Chris couldn't get into the rumored Apple car division
    - Chris was being forced into a more VP/management role
    - etc...
When it sounds more to me that he just likes making new things that solve hard problems. And I imagine Apple is in a good spot and he just wanted a change of pace. 11 Years at one company is a pretty good run.

> I just don't get the yellow car bit at all.

Note that it was actually a "white car" bit. Casey, Marco and John originally did a podcast called Neutral which was about cars, and the very first line of the first episode was Marco quizzing Casey on why he only seemed to buy white cars. White cars have become synonymous with Casey ever since, and Marco took the opportunity to bring it up again with Chris.

Link: http://neutral.fm/episodes/1-big-fat-and-bloated

(Technically, the question was "what is it that makes somebody buy a white car?")

No, I mean I don't get why you'd want a Yellow car is all. :)

Oh, man, I really wanted a yellow Jeep when I was shopping for a used one, and managed to get lucky enough to find it.

Some color/vehicle combinations are classics.

We'll have to agree to disagree on that one in that case.

Pull me over red however, is more what I'd consider in the classic category.

> Also, you can't argue Chris isn't technical

Was ever there any question or doubt about Lattner's technical ability?

As someone who has been writing Swift for a year, I've definitely got some questions!

Apparently the place to get answers is the Swift evolution mailing list - they mentioned it several times.

He doesn't have actual questions. He's making an ad hominem attack against the author of a language that he's forced to use, but hates.

I don't remember any ad hominem attack, you appear to be inventing something. I was being flippant granted, but that's after the most frustrating year of my career, which is 90% Swift annoyances.

I would love to see Swift become a reasonable alternative for server-side development and, in general, non-Apple development.

I have my misgivings with the iOS/macOS development stack (chief among them being Xcode), but Swift is probably the language I enjoy writing in most. It's powerful and expressive and pleasant.

I'm happy to know that even with Chris leaving, the pieces are set in motion for the language's expansion to other contexts.

> I have my misgivings with the iOS/macOS development stack

Clang is pretty amazing. The world before and after Clang are very different places, so I'd say Apple has had a really positive impact here.

Oooh shots taken at Rust (~56:00). He claims rust doesn't have much adoption and swift caters better to application programmers. Wonder what the rust community thinks about it.

I didn't take it that way; he said Rust was a very interesting language.

It seems like he believes pervasive borrow checking is not the right approach for the average application developer, even if it is the right approach for systems programming. He also mentioned eventually having a mode that only uses borrow-checking without ARC, e.g. for writing firmware.

Rust originally had lofty goals to support compile-time lifetime proving and GC mode; GC was abandoned for sensible reasons. Swift uses ARC, so it is trying to support full-ARC, mixed mode, and compile-time lifetime. Whether that is achievable remains to be seen.

I'm sorry if it came across that way, I have a ton of respect for Rust and the Rust community.

I was just trying to say that its design forces discussion of the ownership model to be very early on in the description of the language. It is typically in the first page/chapter of the tutorials I've seen.

This approach doesn't align well with Swift's approach of progressive disclosure of complexity.

Also later he mentions that, Swift might add `borrow checking` but not at the core of type system and required to be used like in Rust, but as extra optional feature, that way Swift is still easy to get started with, but for more advanced programmers for example in kernel development is will be convenient addition.

I wish rust could have taken a similar approach. I want to do rust development for general purposes as opposed to writing kernels and browser engines in it. I think swift or go are better targeted for these purposes, I wish swift scene on linux becomes viable in the next version.

> I wish rust could have taken a similar approach.

Then use Swift. Other than the approach to memory, Swift is extremely similar to Rust.

> I wish swift scene on linux becomes viable in the next version.

Swift 3.0 is totally viable on Linux. And Swift package manager works great, although it's not quite as nice as Cargo (yet!). I've been very impressed with Swift on Linux, but I've yet to use it for production (although there are lots of folks who are). There are some very nice web frameworks for Linux in Swift. I'd say that for web, Swift on Linux is more advanced than Rust. Take a look at Perfect, Zewo, Kitura, etc. They've even got lots of authentication/authorization plugins, which last I checked no Rust framework had.

There are lots of things missing in the standard lib though: https://github.com/apple/swift-corelibs-foundation/blob/mast..., it is improving for sure. I am waiting for it to become more mature as well.

Swift's ties to Grand Central Dispatch for concurrency are wholly unfortunate though. I would have far preferred to see a native language take on that instead of porting GCD to every platform.

There will be a Swift-specific concurrency story, it's just a lower-priority since GCD is available to fill in the gap for now.

Here's an overview of how theoretical language features could enable library implementations of coroutines+channels, async/await, or actors:


The discussion about ARC vs GC would be very interesting. Is there a transcript anywhere for the hearing impaired?

I thought this might help, but it doesn't give actual transcripts, just the ability to search keywords.


Which bit are you interested in? If it's a <~10 minute section, I'll transcribe it for you over the weekend. Contact details are in my bio.

Edit: duh, Patient0 notes it below and it's one of the chapters of the podcast! Drop me an email so I have your address; I'll also post it online somewhere and drop a link here.

side note, _davidsmith has a blog post about why its a search rather than a transcript-- basically the text to speech library he is using produced abysmal results for transcription, but was good enough for search.

Thanks for the kind offer. Looks like ATP have posted a transcript as per bestows's comment.

ATP have just posted a transcript


Many thanks!

Yes I thought that was the most interest part - it was the last 20 minutes or so.

Start listen at 1:56:30

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