catatp.fm Unofficial Accidental Tech Podcast transcripts (generated by computer, so expect errors).

205: People Don't Use the Weird Parts

A surprisingly deep dive into Swift, now that one of us is finally using it.

Episode Description:

Transcript of this episode

Sponsored by:

  • Audible: With Audible, you’ll find what you’re looking for. Get a free 30-day trial.
  • Eero: Finally, Wi-Fi, that works. Use code ATP for free expedited shipping.
  • Squarespace: Build it beautiful. Use code ATP for 10% off your first order.

MP3 Header

Chapters

  1. Intro
  2. LLVM and Bitcode
  3. Sponsor: Squarespace (code ATP)
  4. Management
  5. Origin of Swift
  6. Launch
  7. Swift use by Apple
  8. Transitional feelings
  9. Sponsor: Eero (code ATP)
  10. Open-sourcing
  11. Server-side Swift
  12. Low to high, easy to hard
  13. Sponsor: Audible
  14. Influences
  15. Why adopt now?
  16. Style and idioms
  17. Rust-style memory model?
  18. Swift in the browser
  19. ABI stability
  20. Leaving it in good hands
  21. The shoemaker’s language
  22. Dynamic features
  23. Community influence
  24. RxSwift
  25. GC vs. ARC
  26. Ending theme
  27. Post-show: Making splinters
  28. Post-show: Neutral

Intro

⏹️ ▶️ Casey so let’s start with some follow up why did chris lattner decide to leave apple

⏹️ ▶️ John last week we talked about this and we tried to list all the reasons we could think of why he might be leaving

⏹️ ▶️ John um and i think we covered most of the major threads of speculation and we didn’t really get a lot

⏹️ ▶️ John of listener feedback about it anybody did reply was mostly voting for one of the things we talked about um but here’s the

⏹️ ▶️ John thing of this topic unless there’s some kind of like secret doomsday a thing about apple

⏹️ ▶️ John that only chris knows it’s not actually that important that we figure out like why he left apple or like

⏹️ ▶️ John what was in his heart of hearts like aside from just us being busy bodies or just wanting to know like gossip type stuff

⏹️ ▶️ John um and second pragmatically speaking this is just not the type of thing that people

⏹️ ▶️ John who leave apple talk about or you know if they do talk about it it’s like years and years later after no one cares

⏹️ ▶️ John any more or you know like it’s it’s not a big deal so even if there was some deep dark reason it’s not

⏹️ ▶️ John like we would know about it until years from now and honestly the straightforward boring explanation is probably the

⏹️ ▶️ John right one anyway so you know i don’t know what do you think chris this sounds about right to me

⏹️ ▶️ Marco john

LLVM and Bitcode

⏹️ ▶️ Marco would you ever buy an electric car in white you

⏹️ ▶️ Marco are

⏹️ ▶️ Casey such a jerk why are you so mean to me marco

⏹️ ▶️ Chris Latner no no i’m a fan of red cars

⏹️ ▶️ Chris Latner, Casey there you go yellow if i could get

⏹️ ▶️ Chris Latner them

⏹️ ▶️ Casey yellow that’s bold

⏹️ ▶️ Casey, Chris Latner makes

⏹️ ▶️ Casey all right we we obviously need to talk about what’s happening right now so a t p is not

⏹️ ▶️ Casey in an interview show but in extraordinary circumstances weird

⏹️ ▶️ Casey things can happen and so in today’s episode we have an extraordinary circumstance

⏹️ ▶️ Casey a former apple employee chris ladner was let nice enough to join us on the show

⏹️ ▶️ Casey and so this is going to be three people interviewing one person which is to say the least a bit

⏹️ ▶️ Casey peculiar and it’s something that we’ve never really done before so this could be a little bit

⏹️ ▶️ Casey of a rough ride but we’re going to try to make our best of it and and i’ll just say right up front thank

⏹️ ▶️ Casey you so much chris for coming on the show and we definitely appreciate it to kind of kick all this

⏹️ ▶️ Casey off would you mind giving us like a nickel tour of who is chris lattner

⏹️ ▶️ Chris Latner okay well i can try i’m a programmer i love coding i have

⏹️ ▶️ Chris Latner for a long time i am most widely known for starting vm

⏹️ ▶️ Chris Latner and getting it off the ground and handing it off to other smarter people i started clang which is

⏹️ ▶️ Chris Latner the case plus plus object to see compiler and likewise got it to the point where it was

⏹️ ▶️ Chris Latner thriving and then let other smarter people run it and then started swift and got

⏹️ ▶️ Chris Latner swift going and it recently got past three toto and it has an amazing community

⏹️ ▶️ Chris Latner and it has a great team of people running it and now i’m ready to jump to the next thing and so

⏹️ ▶️ Chris Latner i guess the short version of what i’d like to do is tackle really hard problems

⏹️ ▶️ Chris Latner and do things that most people think are impossible

⏹️ ▶️ John so we’re going to go back in time a little bit and i hope that you could

⏹️ ▶️ John tell us how you ended up coming to apple like if you can remember back that far like

⏹️ ▶️ John you started before you were at apple right so how did you how did you end up at apple yeah

⏹️ ▶️ Chris Latner great question so i started working at lm at the university of illinois it was a

⏹️ ▶️ Chris Latner research project and the it really was

⏹️ ▶️ Chris Latner kind of hoped for and designed to be fully general and production quality and all those great

⏹️ ▶️ Chris Latner things that you’d want as a graduate student for people to use your code but it also

⏹️ ▶️ Chris Latner wasn’t it was had a lot of the great architectural ideas maybe but it

⏹️ ▶️ Chris Latner wasn’t fully baked it wasn’t it wouldn’t solve all the world’s problems

⏹️ ▶️ Chris Latner and by the time i got to graduate the question was what do i do next and of course my dream

⏹️ ▶️ Chris Latner was continue pushing it forward and build it out to be something real and to do that i would have

⏹️ ▶️ Chris Latner to go to a place that would allow me to work on it and i was really fortunate to have build some relationships

⏹️ ▶️ Chris Latner with folks at apple and they took a chance on me and i jumped to apple and started building out

⏹️ ▶️ Chris Latner vm’s my job it was it was totally a dream of mine so that’s how

⏹️ ▶️ Chris Latner, John i got to graduate

⏹️ ▶️ John did you get your degree and then go to apple

⏹️ ▶️ Chris Latner yeah yeah well

⏹️ ▶️ John that was nice

⏹️ ▶️ John, Chris Latner otherwise how do you

⏹️ ▶️ John, Marco ever

⏹️ ▶️ John get a job yeah you can’t get a job with that degree we all

⏹️ ▶️ John, Marco know

⏹️ ▶️ John, Casey that now

⏹️ ▶️ John so how would you explain lvm to somebody who doesn’t know stuff about compilers cause

⏹️ ▶️ John like we all just rattle off you know l vm compiler building toolkit or whatever like but how

⏹️ ▶️ John would you explain that to someone design all of our listeners of programmers who isn’t intimately familiar with how compile

⏹️ ▶️ John it works

⏹️ ▶️ Chris Latner sure so and at first we start with what is a compiler a compiler is the thing

⏹️ ▶️ Chris Latner that takes the code that a programmer writes and turns it into something the machine can understand

⏹️ ▶️ Chris Latner and so there’s lots of different kinds of computers with lots of different kinds of processors most

⏹️ ▶️ Chris Latner programmers don’t want to have to think about that or know about that and they want to program and think

⏹️ ▶️ Chris Latner at a much higher level than what the actual processor can do and so the compiler’s job

⏹️ ▶️ Chris Latner is to transform what what the human wrote and to something the machine could understand

⏹️ ▶️ Chris Latner then lvm is a modular system for building different kinds of

⏹️ ▶️ Chris Latner compilers because there’s lots of different reasons why people would want to use compiler technology and i think

⏹️ ▶️ Chris Latner lvm was most successful over the years because it was built as reusable components

⏹️ ▶️ Chris Latner a kind of like a framework and then the framework can be used to solve lots of

⏹️ ▶️ Chris Latner different problems and one of the fun things about lvm is that it was eventually over the years used to

⏹️ ▶️ Chris Latner solve problems that we had never even imagined which is really exciting

⏹️ ▶️ John so one example of that the type of problem is i remember from past w w d c

⏹️ ▶️ John s the idea that the xcode i d the gooey that you programmers use to make their

⏹️ ▶️ John applications that very often in that guy you need to do things that have an understanding

⏹️ ▶️ John of the code but when the compiler is a big maiti thing the best you can kind of do is compile everything in

⏹️ ▶️ John the background and spit out some stuff but when it’s a modular toolkit you can take those

⏹️ ▶️ John pieces and just use the part that understands like the syntax tree or whatever and integrate them was that

⏹️ ▶️ John the first use of lm is something other than like you

⏹️ ▶️ John know a compile like a straight up compiler that you just point to at your code and produces output like you know in other

⏹️ ▶️ John words integrating it into applications or was there some use before that

⏹️ ▶️ Chris Latner but i think that the first use in production was in the open jail stack which ended

⏹️ ▶️ Chris Latner up shipping in a late software update for tiger as well as in leopard which

⏹️ ▶️ Chris Latner was ten four and ten to five um there it was used in a completely

⏹️ ▶️ Chris Latner invisible way to translate to basically repack data and upload it to the gpu

⏹️ ▶️ Chris Latner and so when you need to when you’re making open jail calls to say g vertex tri

⏹️ ▶️ Chris Latner or whatever the low level jail call is those vertices

⏹️ ▶️ Chris Latner need to be transformed into a very specific data format the g p can understand and you have a whole bunch

⏹️ ▶️ Chris Latner of different kinds of calls that can be used to produce for text or other geometry data

⏹️ ▶️ Chris Latner but you also have a matrix of different kinds of chips you need to support and they all have different formats

⏹️ ▶️ Chris Latner and different capabilities and requirements and so lvm was used to generate very small chunks of code to do

⏹️ ▶️ Chris Latner that and it was part of the sixty four bit bring up in the leopard timeframe and so that was

⏹️ ▶️ Chris Latner probably the first completely invisible use of it that used and proved a lot of

⏹️ ▶️ Chris Latner the kind of cogeneration technologies

⏹️ ▶️ John so forget me one more unrelated things we’re going to go from what is a compiler all the way down to nitty gritty

⏹️ ▶️ John stuff here my vague recollection of what you just described the whole video driver thing was that

⏹️ ▶️ John there were files on disk in the shipping o s that were basically lvm bytecode like these

⏹️ ▶️ John little b c files and they would get slurped up and converted to

⏹️ ▶️ John machine code appropriate for the gp and the sp is that am i right about that yeah

⏹️ ▶️ Chris Latner yeah you’re absolutely right and so basically the way to look at is the the bit

⏹️ ▶️ Chris Latner code files the lm the shipped with the os were little snippets of code that then

⏹️ ▶️ Chris Latner at runtime were recombined and optimized across and so that was the library of primitives

⏹️ ▶️ Chris Latner that the open jail runtime used to assemble what it was trying to

⏹️ ▶️ John do all right so my question about this and maybe you kind of alluded to it with either a slip of the tongue or a revealing

⏹️ ▶️ John understanding is what is the difference between vm bytecode and what apple currently brands

⏹️ ▶️ John as bit code

⏹️ ▶️ Chris Latner oh well are you asking for historical q is this a historical question

⏹️ ▶️ John it’s a technical and historical cause i’m confused by the branding and i’m also confused by the tech

⏹️ ▶️ Chris Latner so vm prior to lvm todaro in these version numbers

⏹️ ▶️ Chris Latner of the open source version numbers not related to the apple version numbers and they’re confusingly different for

⏹️ ▶️ Chris Latner not very interesting reasons but before todaro i used a really horrible

⏹️ ▶️ Chris Latner encoding in binary that was branded bytecode because that’s what java

⏹️ ▶️ Chris Latner used it had a whole bunch of problems and that it wasn’t extensible it was fragile

⏹️ ▶️ Chris Latner lvm was changing it didn’t have compatibility and so in

⏹️ ▶️ Chris Latner the elan two date time frame which gosh is probably i don’t know

⏹️ ▶️ Chris Latner ten ten years ago or more it’s been a long time ago now um uh

⏹️ ▶️ Chris Latner i redesigned the whole thing and it now uses this one bit code format and used it bit

⏹️ ▶️ Chris Latner code as a term for two reasons one of which was it was different than byte code and so the two could live

⏹️ ▶️ Chris Latner side by side in the directory tree for a while and the second reason is that the encoding is a bit stream

⏹️ ▶️ Chris Latner format instead of a bit stream but that that’s the origin of the term bit code

⏹️ ▶️ Chris Latner you can find documentation on the file format is actually a very general encoding

⏹️ ▶️ Chris Latner format you can use for xml type purposes it’s a self describing file format

⏹️ ▶️ Chris Latner and multiple different things can be encoded in bit code

⏹️ ▶️ John yeah there was definitely some confusion about that because when apple presented it when they presented it as like the required was like

⏹️ ▶️ John the watch apps have to be in bit code marco you would know this

⏹️ ▶️ Marco watch is required i s is still optional

⏹️ ▶️ John yep and t v s required and they would have you send you put your stuff in bit code and there was

⏹️ ▶️ John a lot of speculation early on about what that meant like in terms of

⏹️ ▶️ John does that mean that what you’re uploading is not a finished binary and therefore it’s like this machine

⏹️ ▶️ John agnostic and could be targeted at any cpu and the more prosaic version

⏹️ ▶️ John like it doesn’t mean that cpu agnostic all it means is that apple has slightly more freedom

⏹️ ▶️ John to like change instructions on the cbs they do target how would you

⏹️ ▶️ John characterize the what what what advantages are there of a compiling

⏹️ ▶️ John something to bit code and then uploading it somewhere versus sending someone a binary sure there’s

⏹️ ▶️ Chris Latner there’s a couple of different advantages for that one of which is that the compiler keeps getting better

⏹️ ▶️ Chris Latner and so if the compiler learns a new optimization it can be applied to existing applications without app

⏹️ ▶️ Chris Latner app developers having to re upload their their ap that’s one small thing um other

⏹️ ▶️ Chris Latner things are that apple does periodically add new instructions to its cpus one example

⏹️ ▶️ Chris Latner of this historically was the uh the hilariously named

⏹️ ▶️ Chris Latner swift chip that it launched which was the first designed in house thirty two bit

⏹️ ▶️ Chris Latner arm chip this was the iphone five if i recall

⏹️ ▶️ Chris Latner, Marco it

⏹️ ▶️ Chris Latner so in this ship they added an integer divide instruction and all the chips before that didn’t have the ability

⏹️ ▶️ Chris Latner to do an integer divide in hardware you had to actually open code it and there’s a library function to do

⏹️ ▶️ Chris Latner that and so that and a few other instructions they added were a pretty

⏹️ ▶️ Chris Latner big deal and used pervasively and the only way to tackle that and handle that and use

⏹️ ▶️ Chris Latner it effectively was to introduce an entire new slice and so if you are an apt velop back then you had

⏹️ ▶️ Chris Latner the v seven slice which was all the older ships and then you had a visa s slice

⏹️ ▶️ Chris Latner as for swift which was the slice that included

⏹️ ▶️ Chris Latner the integer divide now this is a pain for app developers it’s a pain for apple everybody has

⏹️ ▶️ Chris Latner it has to convinced all the developers to take it seriously and if it doesn’t if app developers don’t support it then the new hardware

⏹️ ▶️ Chris Latner doesn’t benefit from it and so bit code allows that kind of thing to go completely away so

⏹️ ▶️ Chris Latner if bit code apple can just recompile the applications in the store and say ha ha this

⏹️ ▶️ Chris Latner this device has an integer divide instruction and it works perfectly with the thinning kind of

⏹️ ▶️ Chris Latner architecture they have for deploying resources to specific device types and it all

⏹️ ▶️ Chris Latner kind of plugs together um bit code is not a magic solution

⏹️ ▶️ Chris Latner though it doesn’t you can’t take a thirty two bit app for example and run on a sixty four bit device

⏹️ ▶️ Chris Latner that that kind of portability isn’t something that i could can give you notably because that is something

⏹️ ▶️ Chris Latner that’s visible on c and so as you’re writing sea code you can write if death you

⏹️ ▶️ Chris Latner know pointer size equals thirty two and that’s something that bit code can’t abstract over and

⏹️ ▶️ Chris Latner um so it’s useful for very specific low level kinds of enhancements

⏹️ ▶️ Chris Latner but it isn’t a panic that makes everything magically portable

⏹️ ▶️ John at the same thing i would assume for like architecture changes especially if there was an indian difference because indian this is visible

⏹️ ▶️ John from the sea world so if you can’t you can’t target different indian ness

⏹️ ▶️ Chris Latner yep

⏹️ ▶️ Chris Latner, John yeah

⏹️ ▶️ Chris Latner so it’s it’s not something that magically solves all portability problems but it is very useful for specific problems

⏹️ ▶️ Chris Latner that apples faced in the past

⏹️ ▶️ John and that going back to the the slice thing that’s like terminology like the maco format where you get to put

⏹️ ▶️ John different architectures worth of executables or is that a different

⏹️ ▶️ Chris Latner yeah i think the technology that goes all the way back to next when next supported really heterogeneous

⏹️ ▶️ Chris Latner different architectures like p a risk and and spark and paris and intel

⏹️ ▶️ Chris Latner all back in the next days and it allows you to compile your application with

⏹️ ▶️ Chris Latner multiple slices they call them and then there’s a tool called lipo which sticks them together and

⏹️ ▶️ Chris Latner um at runtime the os picks the slice that best matches your cpu

⏹️ ▶️ Chris Latner in practice and so an app developer can support many different kinds of architectures and then

⏹️ ▶️ Chris Latner the os just does the right thing and so in today’s world is very common to build

⏹️ ▶️ Chris Latner an ios app for example for both arm sixty four and arm thirty two in the way that works

⏹️ ▶️ Chris Latner in the native in the simplest cases it’s just two different binaries that are stuck

⏹️ ▶️ Chris Latner together and then the os picks the right one to run all

⏹️ ▶️ John right i could go over this river but i don’t want to get on this right hole it’s just there’s there’s some

⏹️ ▶️ John penton requesting about bit code and bite cob but now i feel satisfied if we can move on to broader topics

⏹️ ▶️ Marco were sponsored to night by square space

⏹️ ▶️ Marco squarespace dot com and use code at to get ten percent off your first purchase it’s the

⏹️ ▶️ Marco new year you might have a new project you might have a new goal you want to reach and that might involve making

⏹️ ▶️ Marco a website make your next move with a beautiful website from squarespace squarespace

⏹️ ▶️ Marco sites are so incredibly easy to make and they are incredibly beautiful and the tools

⏹️ ▶️ Marco are very powerful this is a great combination that i personally have never seen before in the web building

⏹️ ▶️ Marco space until square space the amount of power you get with these tools is just incredible you can

⏹️ ▶️ Marco make so many different kinds of sights with so little effort nothing else comes close

⏹️ ▶️ Marco your sights look professionally designed regardless of your skill level with no coding required although if

⏹️ ▶️ Marco you want to jump in and alter some of the code you actually can but you don’t have to and it probably isn’t a good use

⏹️ ▶️ Marco of your time because square space is such a great platform right out of the box whether

⏹️ ▶️ Marco you’re making website for you or for somebody else if you make up for somebody else square space is

⏹️ ▶️ Marco the place you want to do that because you shall them how to use square space and then you’re done they’re

⏹️ ▶️ Marco not coming to you any more squarespace will support it if they need help and they’re able to figure things out on their own because it’s

⏹️ ▶️ Marco just so much easier to use than what ever seem as you were going to install on their server so check it out today go to square

⏹️ ▶️ Marco space dot com use code at to get ten percent off your first purchase when you decide to

⏹️ ▶️ Marco sign up

Management

⏹️ ▶️ Marco whether you’re making a sight for you or somebody else make your next move with square space

⏹️ ▶️ Casey so chris how was your transition from coding to being a manager because from an outsider’s

⏹️ ▶️ Casey point of view it looked like you know you had arrived at apple you you were working heavily on l v m like you had said

⏹️ ▶️ Casey earlier but over time i mean even just looking at the resume on your website it seems pretty clear that you are doing

⏹️ ▶️ Casey a lot more managing lately than perhaps coding or maybe maybe just worked

⏹️ ▶️ Casey around the clock that wouldn’t surprise me either but how how would you how did you feel about your transition from

⏹️ ▶️ Casey from being just a code monkey to being a manager and i ask in part because at my

⏹️ ▶️ Casey phase of my career i am still a code monkey but i think it’s not too far away that i might become a manager

⏹️ ▶️ Casey and so i’m curious to hear you know from from one code monkey to another how did that transition

⏹️ ▶️ Casey go and what did you learn from it

⏹️ ▶️ Chris Latner yeah that’s kind of interesting so i don’t think it is a hard transition i’m still

⏹️ ▶️ Chris Latner writing code i still love writing code that’s something that i think is a key part of

⏹️ ▶️ Chris Latner my identity but on the other hand it is very strange so

⏹️ ▶️ Chris Latner i started managing people at apple really pretty early on maybe a

⏹️ ▶️ Chris Latner year or so after i joined i started managing two or three people because

⏹️ ▶️ Chris Latner i was kind of the best person to to manage the natan lvm effort at the time

⏹️ ▶️ Chris Latner and initially it was mostly just being a tech lead and so if

⏹️ ▶️ Chris Latner you’re if you’ve ever driven a project where you have co workers that don’t report to

⏹️ ▶️ Chris Latner you but you’re kind of guiding them and helping make technical decisions that that’s where it

⏹️ ▶️ Chris Latner started over time i my team grew and eventually i

⏹️ ▶️ Chris Latner ended up picking up and running kind of a second level manager role where you’re managing other

⏹️ ▶️ Chris Latner managers and each step along the way it introduces new challenges and along the

⏹️ ▶️ Chris Latner way i told myself that um managing is something that i had

⏹️ ▶️ Chris Latner to do because i was the best qualified to do it and i didn’t want anybody else to

⏹️ ▶️ Chris Latner and that coding was my real joy and passion and i think the coating really is my joint passion

⏹️ ▶️ Chris Latner but along the way looking back i’ve realized that i am actually pretty good at managing

⏹️ ▶️ Chris Latner and i really do like building teams i like working with people and i’ve never considered

⏹️ ▶️ Chris Latner myself to be a people person which is you know it’s just very very odd for me to

⏹️ ▶️ Chris Latner even think about that but i actually do understand how people work and

⏹️ ▶️ Chris Latner can you know really care about getting the most out of people and working with them to make them successful

⏹️ ▶️ Chris Latner and so it’s been kind of a transition over time but i’ve always

⏹️ ▶️ Chris Latner hung on to coding and even though i have a full time management job id code like crazy in nights

⏹️ ▶️ Chris Latner and weekends and i’m not the kind of guy that likes to sit around idle and

⏹️ ▶️ Chris Latner and so i’ve always just been busy

Origin of Swift

⏹️ ▶️ John so i mean you can get into as much of this history as you want to crisp but ah how did you

⏹️ ▶️ John get swift to happen inside apple because from the outside it’s mysterious

⏹️ ▶️ John to us how big important projects come to be like

⏹️ ▶️ John you know what you name the headlining things that have come on of apple we hear that apple does a lot of things

⏹️ ▶️ John that don’t see the light of day how did you get probably one of the biggest things ever to come

⏹️ ▶️ John out of apple an entirely new language created in house how did you get that to happen and not just be

⏹️ ▶️ John some little thing that was off to the side that fizzled off and disappeared

⏹️ ▶️ Chris Latner sure well so i can tell you about swift but i don’t think you should project this onto every other

⏹️ ▶️ Chris Latner project at apple because i’m sure they’re all different so i can just talk about my experiences so

⏹️ ▶️ Chris Latner swift started in two thousand ten um you know it’s kind

⏹️ ▶️ Chris Latner of the timing is suspicious because it’s right after a blogger wrote something about

⏹️ ▶️ Chris Latner how apple needed a new programming language i’m not a blogger okay

⏹️ ▶️ Chris Latner or i wasn’t a thing

⏹️ ▶️ John i was not a blog that was the prestigious website still i

⏹️ ▶️ Chris Latner i

⏹️ ▶️ Chris Latner, John don’t remember

⏹️ ▶️ Chris Latner if i read it exactly then that that was a causal link to starting working on swift

⏹️ ▶️ Chris Latner or if it was just because i had just finished up clancy plus plus support and we’d

⏹️ ▶️ Chris Latner launch clancy plus plus and of course if you write see plus plus good you know how ugly

⏹️ ▶️ Chris Latner and horrible it is but if you implement c plus plus it’s a whole nother level of

⏹️ ▶️ Chris Latner, Casey challenge and

⏹️ ▶️ Chris Latner so getting that first release out was it was a major accomplishment for the entire team and it

⏹️ ▶️ Chris Latner was a major major effort for a ton of people involved and as

⏹️ ▶️ Chris Latner is typical you get something over the finish line and of course it wasn’t fully finished it let alone was to go but

⏹️ ▶️ Chris Latner a lot of the intellectually interesting to me at least pieces were were done

⏹️ ▶️ Chris Latner that’s when i started thinking about okay well what comes next and then implementing other

⏹️ ▶️ Chris Latner people’s stuff like for example to see the c plus plus the object to see

⏹️ ▶️ Chris Latner standards and languages but there were there were you know things that we weren’t

⏹️ ▶️ Chris Latner happy with and things i wasn’t happy with and so swift started out as just a let’s

⏹️ ▶️ Chris Latner let’s see what could be done right let’s see what a much simpler language that doesn’t need a preprocessor

⏹️ ▶️ Chris Latner doesn’t need tri graphs doesn’t need all all the weird things that have accumulated into sea

⏹️ ▶️ Chris Latner and see plus plus over the years let’s see what we can do and am just try to build

⏹️ ▶️ Chris Latner something nicer um initially it was really just a me me messing around

⏹️ ▶️ Chris Latner and nobody knew about it because it wasn’t anything to know about u but

⏹️ ▶️ Chris Latner eventually it got a little bit more serious and said hey well after playing around a little bit i

⏹️ ▶️ Chris Latner think that this actually could make sense and so i started talking to my management

⏹️ ▶️ Chris Latner i started talking to some of the engineers that were working on clang and they seemed excited about it we

⏹️ ▶️ Chris Latner got a couple of people working on it part time and i commenced my manager that it was interesting

⏹️ ▶️ Chris Latner enough that we could have a couple of people work on it now this wasn’t

⏹️ ▶️ Chris Latner a major commitment this was a okay well let’s see see what there is here

⏹️ ▶️ Chris Latner and that started a conventional demo schedule and other things where we set milestones

⏹️ ▶️ Chris Latner in place and tried to to justify the investment that was being put into it

⏹️ ▶️ Chris Latner eventually got to the point where there was it was part of the long that

⏹️ ▶️ Chris Latner it was posing strategic questions so the strategic questions were of the form okay

⏹️ ▶️ Chris Latner we have objective c objectives is a great language it is probably

⏹️ ▶️ Chris Latner directly responsible for the iphone being successful because

⏹️ ▶️ Chris Latner it’s really high performance it allows you to get your job done in and supports high level

⏹️ ▶️ Chris Latner frameworks in beautiful way there’s a ton of stuff to love about objective sea and while there are few

⏹️ ▶️ Chris Latner things that are ugly about it some at signs and semi corns and other stuff like that you know we can make objects

⏹️ ▶️ Chris Latner better and so the question was always why not just make objects better right

⏹️ ▶️ Chris Latner why don’t we just keep evolving objectives and why do we want to face potential disruption

⏹️ ▶️ Chris Latner in terms of moving the entire development community to something new and we kicked

⏹️ ▶️ Chris Latner that around for a long time we talked about both sides and we came to realize that yes we can and

⏹️ ▶️ Chris Latner should make objectives better and we continued to invest in objectives we did things

⏹️ ▶️ Chris Latner like arc for example which is a major effort but we got dot

⏹️ ▶️ Chris Latner well so dot syntax predated this yeah dot dot syntax

⏹️ ▶️ Chris Latner so the objectives two features and the block syntax were all kind of prior to this i worked

⏹️ ▶️ Chris Latner on blocks but um but it wasn’t in this time for him and so

⏹️ ▶️ Chris Latner we were talking about okay well can we just make objects better and can we feature creep it to the language that we want

⏹️ ▶️ Chris Latner for the fullness of time because if we can that be much less disruptive to the community and we decided

⏹️ ▶️ Chris Latner that yeah we can we can move objectives a lot closer to what we want so we can get automatic memory management

⏹️ ▶️ Chris Latner with art for example but we can’t ever take away the problems that lead

⏹️ ▶️ Chris Latner to to objectives being unsafe and the fundamental problem was objective see was built on top of

⏹️ ▶️ Chris Latner sea an c inherently has pointers it has unitized

⏹️ ▶️ Chris Latner variables it has array overflows it has all these problems that even if you have full

⏹️ ▶️ Chris Latner control over your compiler and tool stack you just can’t fix right to fix to fix dangling

⏹️ ▶️ Chris Latner pointers you’d have to fix lifetime issues and s c doesn’t have any framework to reason about that

⏹️ ▶️ Chris Latner and retrofitting that into a compatible way into the system just wouldn’t really work if you took away

⏹️ ▶️ Chris Latner c from objective set you couldn’t use a c rays on the stack for example and if you

⏹️ ▶️ Chris Latner couldn’t do that there’s entire classes of applications where the performance just wouldn’t be acceptable

⏹️ ▶️ Chris Latner and so we went round round round we said okay the only way that

⏹️ ▶️ Chris Latner this can make sense in terms of the cost of the disruption to the community as if

⏹️ ▶️ Chris Latner we make it a safe programming language which means not safe as in you can have no bugs

⏹️ ▶️ Chris Latner but safe in terms of memory safety while also providing high performance and

⏹️ ▶️ Chris Latner and moving the programming model forward and so that was really kind of the ideas that

⏹️ ▶️ Chris Latner they came together to make swift being worth the investment and being worth being disruptive

⏹️ ▶️ Chris Latner to the community so a lot of these kinds of pitches and ideas were

⏹️ ▶️ Chris Latner being held in very small small small meetings

⏹️ ▶️ Chris Latner and coming out of w c twenty thirteen is when we and the executive

⏹️ ▶️ Chris Latner team decided okay let’s really commit to this and that’s coming out of w c twenty thirteen

⏹️ ▶️ Chris Latner is when the developer tools team i came to know about it and really started working hard

⏹️ ▶️ Chris Latner on it and swift as swift as a huge huge effort by hundreds of people

⏹️ ▶️ Chris Latner and that’s when all the work on bring up the debugger and the id support and

⏹️ ▶️ Chris Latner playgrounds and all the other things that they charged him to swift one otto really started coming together

⏹️ ▶️ Chris Latner and and make happen so it’s kind of how swift came to be is again

⏹️ ▶️ Chris Latner one step after another building small things explaining to people why it makes sense

⏹️ ▶️ Chris Latner why it was worth it and then also i think that a major important aspect of

⏹️ ▶️ Chris Latner swift being i guess worth taking a risk on was that we

⏹️ ▶️ Chris Latner i told people that we would not guarantee source compatibility in one data

⏹️ ▶️ Chris Latner and that that was really interesting because that actually was a big relief for people

⏹️ ▶️ Chris Latner because internally that meant that it didn’t have to be perfect when it launched it

⏹️ ▶️ Chris Latner meant that we could learn we could adapt and that as long as we were clear with the community about that that

⏹️ ▶️ Chris Latner that would allow us to get to ultimate greatness and learn from actual

⏹️ ▶️ Chris Latner usage in practice and i think that was a really key piece to a swift coming and actually

⏹️ ▶️ Chris Latner making it to the market

⏹️ ▶️ John so strategically speaking when you were doing like the work on to improve objective

⏹️ ▶️ John c see did you have in mind the ability to potentially leverage

⏹️ ▶️ John some of that work for swift like like i’m trying to think like the strategy of how you get it done like part of it is personal

⏹️ ▶️ John relationships and like knowing the right people part of it is persuasion you have to persuade them with your technical arguments

⏹️ ▶️ John and your business arguments and stuff like that but then part of it was part of it also a

⏹️ ▶️ John laying the groundwork with with efforts and technologies that have multiple uses

⏹️ ▶️ John yeah

⏹️ ▶️ Chris Latner absolutely so so one great example of that is ok um it was really clear to me that if

⏹️ ▶️ Chris Latner we were to get to memory safety we had to have automatic memory management and i don’t know if you want to

⏹️ ▶️ Chris Latner go down the gc versus ark rabbit hole or not but arc seemed like obviously the right

⏹️ ▶️ Chris Latner model to me and and to some other people and so we

⏹️ ▶️ Chris Latner we said okay we need to get to an automatic memory management model objectives isn’t

⏹️ ▶️ Chris Latner because objectives at the time had the garbage collector which had numerous

⏹️ ▶️ Chris Latner problems and so we had to get objectives to be memory managed and so that’s

⏹️ ▶️ Chris Latner why arc was became a thing it became a really high priority and

⏹️ ▶️ Chris Latner i think that it’s a great example of something that by itself had a huge amount of value to the object to see community

⏹️ ▶️ Chris Latner and then after that we had similar other efforts like modules for example that was a huge

⏹️ ▶️ Chris Latner thing that both improved build time but was also absolutely essential to enabling

⏹️ ▶️ Chris Latner in swift code to eventually just say import you like it and get everything and so there was a number

⏹️ ▶️ Chris Latner of things that rolled out over the years and it was really funny at the time because the object

⏹️ ▶️ Chris Latner developers externally and even internally to apple always accused the compilers and languages team of taking

⏹️ ▶️ Chris Latner objective on this random walk and they didn’t know how it all fit together and where where is this

⏹️ ▶️ Chris Latner strategy and why are you guys working on this and why aren’t you working on some other syntactic sugar for the thing i want

⏹️ ▶️ Chris Latner and of course we could never tell them but there was there was a good reason and so in

⏹️ ▶️ Chris Latner another example that is the object to see literals feature i think we introduced that in twenty

⏹️ ▶️ Chris Latner thirteen fico were for ray literals and other things like

⏹️ ▶️ Chris Latner that that that that was a interesting feature in that it was a relatively small

⏹️ ▶️ Chris Latner amount of engineering work that brought objects the objects language much

⏹️ ▶️ Chris Latner closer to swift in terms of having a raise and dictionary literals as part

⏹️ ▶️ Chris Latner of the language but the real reason for doing it is that it was a small amount of work that moved

⏹️ ▶️ Chris Latner to exy forward which allowed the compiler language team to focus on swift

⏹️ ▶️ Chris Latner, Casey because

⏹️ ▶️ Chris Latner swift was a very large amount of work and that was you know appeasing

⏹️ ▶️ Chris Latner the community and you know solving real problems but you know buying time to

⏹️ ▶️ Chris Latner actually pour into the multi year project of making swift language happen

⏹️ ▶️ John that’s when you pull out the syntactic sugar the

⏹️ ▶️ John, Chris Latner programmers love

⏹️ ▶️ John, Casey it take

⏹️ ▶️ John simplement

⏹️ ▶️ John, Casey here you go exactly

⏹️ ▶️ John everyone applauds when they see the slide i mean in all

⏹️ ▶️ Marco fairness that was a really big deal

Launch

⏹️ ▶️ Marco anyway so so kind of building on on the apple internal reaction thing um

⏹️ ▶️ Marco you know this this language in its development and in its public release

⏹️ ▶️ Marco is probably a fairly unique language in like the context in which it was released and you have this this

⏹️ ▶️ Marco massive company i mean nobody probably had more observe the objective c programmers than apple does and

⏹️ ▶️ Marco see if this massive company with tons of internal programmers and a massive internal code base that

⏹️ ▶️ Marco is using this this other language you have this entire community of i s and

⏹️ ▶️ Marco mac developers and then you have the entire world watching every move apple

⏹️ ▶️ Marco makes and putting under very very heavy scrutiny so the release of this language in this

⏹️ ▶️ Marco context is probably not only very high pressure but also like unique in that

⏹️ ▶️ Marco you you knew that you were going to face a lot of people up front like most languages probably

⏹️ ▶️ Marco start out with a few people using them you know some in some random corner of the internet and eventually maybe some maybe

⏹️ ▶️ Marco it slowly takes off this was not that way and so what considerations i guess went

⏹️ ▶️ Marco into that and also how were you able to convince people

⏹️ ▶️ Marco even inside of apple to to use swift and and how was

⏹️ ▶️ Marco how was that going

⏹️ ▶️ Chris Latner um so i guess there’s different answer to that for different phases um

⏹️ ▶️ Chris Latner we had no idea that the reaction would be as strong and

⏹️ ▶️ Chris Latner as positive as it was and so i think we were blown away and caught unaware

⏹️ ▶️ Chris Latner in some ways but in other ways i think we did the right thing so for example

⏹️ ▶️ Chris Latner if you look at swift over time swift one and swift two are as similar to objective

⏹️ ▶️ Chris Latner seas we can make them so if you look at the way that selectors are named for example

⏹️ ▶️ Chris Latner it was very there’s a very direct correlation if you look at the way objective

⏹️ ▶️ Chris Latner or swift one was explained to people it was explained to people as

⏹️ ▶️ Chris Latner it’s just like objective c you can use all your same patterns you can use all the same frameworks you can continue

⏹️ ▶️ Chris Latner doing object in programming you can do all these things but it also has some cool new

⏹️ ▶️ Chris Latner things like enums and pattern matching and these other things and so it’s great because

⏹️ ▶️ Chris Latner it’s it’s just cleaned up syntax for what you already know plus it has some new cool stuff that you can play with

⏹️ ▶️ Chris Latner right and then you fast forward a year or two and the swift community was really taking

⏹️ ▶️ Chris Latner off it was people were understanding what swift was about swift open sources also

⏹️ ▶️ Chris Latner enabled this and swift three is really about swift becoming its own language that was really

⏹️ ▶️ Chris Latner true to itself and standing you know stands by itself and that’s where you see

⏹️ ▶️ Chris Latner the method calls in tax for example being radically changed and a lot of things just

⏹️ ▶️ Chris Latner kind of coming together and really focusing and polishing the language

⏹️ ▶️ Chris Latner in terms of the the rise of the commun the external community and people using

⏹️ ▶️ Chris Latner it that was really really hard for us because um so my experience

⏹️ ▶️ Chris Latner had been with lvm and with clang clang as a s in c plus plus compiler an objective

⏹️ ▶️ Chris Latner c was completely different than swift because when we open

⏹️ ▶️ Chris Latner sourced and launched clang which was at apple um everybody

⏹️ ▶️ Chris Latner yawned

⏹️ ▶️ Chris Latner, Casey we open

⏹️ ▶️ Chris Latner source it very early on and people said okay you’re nuts nobody can build a sequels plus compiler that’s

⏹️ ▶️ Chris Latner that’s not a thing why are you even messing around with this and you know we got one contributor

⏹️ ▶️ Chris Latner to the project we and we had no users and then we got you know a month later we might get another

⏹️ ▶️ Chris Latner contributor another person part time setting in patches and it was a very slow growth

⏹️ ▶️ Chris Latner that um that was ultimately really great because it was relatively

⏹️ ▶️ Chris Latner low pressure was swift and with the the way it was launched it was completely different because

⏹️ ▶️ Chris Latner it went from um nobody knowing about you everybody knowing about it overnight literally

⏹️ ▶️ Chris Latner and um there being so much excitement so many people that were nervous and

⏹️ ▶️ Chris Latner had bad reactions to other people that were super excited but a lot of people that were suddenly hitting bugs

⏹️ ▶️ Chris Latner and having challenges and problems and why did you do this and why didn’t you do that and you know

⏹️ ▶️ Chris Latner some of that was misguided just because they didn’t know swift yet but other other other aspects

⏹️ ▶️ Chris Latner were really spot on and that was when i really started learning about how people were using and

⏹️ ▶️ Chris Latner started iterating and moving swift and swift between the w c launch and swift

⏹️ ▶️ Chris Latner one auto release changed dramatically and that was a really

⏹️ ▶️ Chris Latner really hard time for the entire team because we really wanted to get it as close

⏹️ ▶️ Chris Latner as we could to what we wanted but we had a very short amount of time to do so and um

⏹️ ▶️ Chris Latner i think that’s been true for swift two and swift three as well where we have really high goals

⏹️ ▶️ Chris Latner for the team and really high goals for what we want to get done and that makes it a lot

⏹️ ▶️ Chris Latner a lot of pressure and a lot of stress but it’s i think worth it to

⏹️ ▶️ Chris Latner serve and see the community around swift grow and see people use it

⏹️ ▶️ Chris Latner and see people learn it and it’s been a lot of fun

Swift use by Apple

⏹️ ▶️ Marco so i’m curious um i know when swift first came out it was hard to get a lot of adoption

⏹️ ▶️ Marco inside of apple for various you know tooling reasons among maybe whatever else was

⏹️ ▶️ Marco going on um how is internal adoption going today like are we seeing meaningful adoption

⏹️ ▶️ Marco now or is that most as programmers were using it and not anybody inside the

⏹️ ▶️ Chris Latner swift team itself has specific goals they need to achieve before there can be truly

⏹️ ▶️ Chris Latner across the board adoption at apples a b stability is the number one thing

⏹️ ▶️ Chris Latner that prevents framework developers for example from adopting swift so that’s a really

⏹️ ▶️ Chris Latner important thing and that’s one of the reasons it’s always a really high priority but swift has been adopted

⏹️ ▶️ Chris Latner by application developers and other things the dock is public with playground app

⏹️ ▶️ Chris Latner is public the music app in i o s is publicly known so there there are definitely some big

⏹️ ▶️ Chris Latner big adopters more broadly though the big problem is that i think

⏹️ ▶️ Chris Latner i won’t speak for everybody but many many people doing object sea development

⏹️ ▶️ Chris Latner at apple are chomping at the bit they want to be using swift and so it’s it’s really a matter of just getting the technology

⏹️ ▶️ Chris Latner problem solved and get you know checking out the things that are holding people back it’s not about

⏹️ ▶️ Chris Latner um you know people dragging their feet and not wanting to use it makes sense yeah

⏹️ ▶️ Casey that’s really awesome from the outside it’s so hard to figure out you know is apple

⏹️ ▶️ Casey internally like oh really or or is apple internally like you said like really excited and i’m

⏹️ ▶️ Casey sure that there’s some of both but but that’s really good to hear

⏹️ ▶️ Chris Latner and i think it’s also changed over time when swift first came out of course it was a huge surprise for

⏹️ ▶️ Chris Latner most of the software team and so you know many people went went through

⏹️ ▶️ Chris Latner the usual phases of and rat no objectives why why would i learn this new thing objective

⏹️ ▶️ Chris Latner is great and objectives is great so that that’s that’s an objective statement right um

⏹️ ▶️ Chris Latner but i think things have shifted over time and as swift as mature it’s definitely become a

⏹️ ▶️ Chris Latner lot more appealing one one other technology problem that is hilarious but also

⏹️ ▶️ Chris Latner really important is um the apple framework stack has to support thirty two bit mac

⏹️ ▶️ Chris Latner aps and thirty two bit mac apps have this interesting challenge of they have what’s called the

⏹️ ▶️ Chris Latner classic objective sea run time which doesn’t support things like non fragile instance

⏹️ ▶️ Chris Latner variables and things like that and so at some point in time the swift team will need to make the swift

⏹️ ▶️ Chris Latner runtime work in that mode or figure out some other solution to adapt it because

⏹️ ▶️ Chris Latner until that happens it won’t be possible you swift and acat for example

⏹️ ▶️ Casey that’s fascinating so kind of taking a more broad view

Transitional feelings

⏹️ ▶️ Casey do you could you name either your most proud accomplishment during your time at apple that

⏹️ ▶️ Casey you can discuss publicly anyway or if not your most proud just one the first one that jumps to mind

⏹️ ▶️ Casey well

⏹️ ▶️ Chris Latner um i don’t know i’ve been really fortune to work on so many really important projects

⏹️ ▶️ Chris Latner and um i mean i think that uh between lvm and swift for

⏹️ ▶️ Chris Latner example it’s really a hard call um swift i think ah

⏹️ ▶️ Chris Latner impacts more people in terms of the number of people that actually know they’re using it

⏹️ ▶️ Chris Latner and want to learn it and things like that but i think that l b m has been picked up and used so

⏹️ ▶️ Chris Latner far across industry and it’s kind of standardizing the world’s compilers i think that that’s probably

⏹️ ▶️ Chris Latner more profound at this point so it’s really it’s a it’s a hard call

⏹️ ▶️ Chris Latner i mean there are there are a ton of really really great

⏹️ ▶️ Chris Latner opportunities that i’ve had and it’s been a lot of fun over many years now also outside the open source

⏹️ ▶️ Chris Latner pieces working with the exco team and working with the other teams and developer tools has been really

⏹️ ▶️ Chris Latner phenomenal i mean there’s so many great people at apple and in developer tools it’s it’s just been a joy

⏹️ ▶️ John so what do you expect to miss most about being an apple and i’m going to take i’m going to let you expound

⏹️ ▶️ John on this but i’m going to take it off the table and so you have to pick like your second choice you’re going to say like you miss the people because of

⏹️ ▶️ John course you do right

⏹️ ▶️ John, Chris Latner that that is actually what i would say

⏹️ ▶️ John right but but you know so go ahead and tell us about all the great people you work with apple but besides that what do you

⏹️ ▶️ John expect to miss most about apple the company work

⏹️ ▶️ Chris Latner well so the great thing about apple and the thing that i don’t think that many people

⏹️ ▶️ Chris Latner really get about apple is that it is really one of the few best

⏹️ ▶️ Chris Latner places in the world where you can work hard but also work on products that ship

⏹️ ▶️ Chris Latner and that ship to millions of people so that your hard work ends up mattering

⏹️ ▶️ Chris Latner right there there are a lot of places you can work hard there’s a lot of places that you can

⏹️ ▶️ Chris Latner work on interesting things but there’s also a lot of places that end up not shipping a lot

⏹️ ▶️ Chris Latner or or if they ship it very few people actually use it and so apple’s really really

⏹️ ▶️ Chris Latner magical in that it combines being you know being able to work hard and do great

⏹️ ▶️ Chris Latner things with it actually mattering and to me that that’s the thing that that is just so

⏹️ ▶️ Chris Latner so phenomenal about apple

⏹️ ▶️ Marco so so moving on to your new role at tesla do you think that swift

⏹️ ▶️ Marco will still be a major part of your work life in some way like you know or will it basically

⏹️ ▶️ Marco be like something you do in the evenings and weekends because we all know that that silicon valley tech startups don’t usually

⏹️ ▶️ Marco work people too hard so you’re going to have tons of free time

⏹️ ▶️ Chris Latner yes this jump i’m making is definitely to cush

⏹️ ▶️ Chris Latner so so i don’t know we’ll have to see um i haven’t started

⏹️ ▶️ Chris Latner yet and i think it’s going to be a very challenging job and one of the reasons i’m excited about it is because i really want to throw

⏹️ ▶️ Chris Latner myself into another hard technology problem and so i’m really excited about that i

⏹️ ▶️ Chris Latner do expect to be involved with the design of swift and helping helping with the curtin and

⏹️ ▶️ Chris Latner helping swift evolution process and helping in a lot of that kind of respect but one of the things to keep in mind

⏹️ ▶️ Chris Latner is that swift is actually a really tiny slice of my job at apple

⏹️ ▶️ Chris Latner and so um you know i had a very full schedule dealing with

⏹️ ▶️ Chris Latner lots of other stuff and it was already kind of nights and weekends project that

⏹️ ▶️ Chris Latner i was coating on it and i’m contributing at the level that i was so i’m hoping that there won’t

⏹️ ▶️ Chris Latner be a big change but honestly i’ll have to see um obviously i care a lot about swift

⏹️ ▶️ Chris Latner and i really want to get to its goal of world domination so

⏹️ ▶️ Marco we’re sponsored tonight by ero

⏹️ ▶️ Marco to ero dot com that’s e e r o dot com and use code at p when you order for free

⏹️ ▶️ Marco excited shipping wifi is broken you probably have one wifi router

⏹️ ▶️ Marco with if you’re lucky a bunch of antennas on it that look hideous and you’re trying to cover your whole

⏹️ ▶️ Marco house with wi fi but it just doesn’t reach every room it just doesn’t reach everywhere because wi fi is hard

⏹️ ▶️ Marco when years covering it from one point ero solves this problem by having a router

⏹️ ▶️ Marco system where they will they have this little era unit it’s nice it’s attractive it’s tastefully designed there’s not a bunch of

⏹️ ▶️ Marco antenna sticking out of it and you can buy one of them or you can buy ten of them or any number in between

⏹️ ▶️ Marco and that you can put them around your house and each one covers the area in wi fi and they

⏹️ ▶️ Marco all talk to each other wirelessly so you don’t have to run wisely over your house you can have your entire

⏹️ ▶️ Marco house blanketed in wi fi with ero and they talk to each other over this mesh network so it’s even faster

⏹️ ▶️ Marco than previous if you ever used like an extender or anything else extenders are very slow it’s even faster than that by

⏹️ ▶️ Marco a lot an ero is true enterprise grade quality and performance they have everything you need

⏹️ ▶️ Marco from encryption features to things like parental controls and they’re actually updating it over time they’ve

⏹️ ▶️ Marco done over twelve updates since long with more to come to add features they have an app for very easy

⏹️ ▶️ Marco set up and they have incredible customer support if you need it they recommend one euro per thousand square

⏹️ ▶️ Marco feet so the typical home will have two or three of them they got a three pack as a as a pretty reasonable starting point for almost

⏹️ ▶️ Marco everybody there’s a thirty day money back guarantee if you don’t like it or if you just buy too many you want to return

⏹️ ▶️ Marco a couple of them if you end up not needing as many as you bought check it out the reviews are stellar they

⏹️ ▶️ Marco back this up go to ero dot com that’s e e r o dot com and use

⏹️ ▶️ Marco code at p when you order for free date shipping

Open-sourcing

⏹️ ▶️ Marco thank you very much to ero for sponsoring our show

⏹️ ▶️ Casey is open source yeah right how do you feel like it’s

⏹️ ▶️ Casey been going so far and and i’m assuming similar to john you know i’m going to take away the obvious answer

⏹️ ▶️ Casey if it’s going well but it may be it’s kind of a cute conversation what

⏹️ ▶️ Casey what’s been really surprising about going open source and and you can get as specific or as

⏹️ ▶️ Casey broad as you’d like to be but i got to imagine that that you guys had a bunch of expectations about

⏹️ ▶️ Casey what going open source would be like and i would imagine some of them were accurate and some of them weren’t so how do you feel like the swift

⏹️ ▶️ Casey open source project has been going

⏹️ ▶️ Chris Latner yes so i think that to to summarize it’s not just going well it’s going

⏹️ ▶️ Chris Latner far better than we ever anticipated and that caused problems

⏹️ ▶️ Chris Latner so for context i and many of the other people in the team had quite a bit of open source

⏹️ ▶️ Chris Latner experience so alva and clang for example were open source um they

⏹️ ▶️ Chris Latner they were they are vibrant and amazing communities with

⏹️ ▶️ Chris Latner hundreds of contributors and dozens of companies all collaborating in public and doing really amazing stuff

⏹️ ▶️ Chris Latner even some of the you know most staunch competitors you know m m d and

⏹️ ▶️ Chris Latner intel and amd and an video or you know these kinds of companies that really um you

⏹️ ▶️ Chris Latner know don’t get along on the business side of things but the engineers were great at working engineered

⏹️ ▶️ Chris Latner engineer and solving problems and staying focused on making things better so

⏹️ ▶️ Chris Latner with swift we we assumed that it would be very similar to that but what we

⏹️ ▶️ Chris Latner found is that there was a major difference between launching swift and launching something like clang for example

⏹️ ▶️ Chris Latner which is that when swift launches open source which was december third just over a year ago

⏹️ ▶️ Chris Latner um it already had i don’t know a million users

⏹️ ▶️ Chris Latner and where a clang started and everybody yawned and i didn’t

⏹️ ▶️ Chris Latner really care and grew slowly a swift open source started and was amazingly

⏹️ ▶️ Chris Latner fast moving changing tons of people hundreds of patches on the first day it was totally

⏹️ ▶️ Chris Latner crazy and we didn’t really know what to do and so um i mean it i am

⏹️ ▶️ Chris Latner like super impressed with the the swift open source community and all the people involved in the energy and

⏹️ ▶️ Chris Latner just i mean it’s just it’s hard it’s hard to believe how how great everything is but

⏹️ ▶️ Chris Latner it really did great problems because we had to figure out things like how we’re going to stay up on in terms of the patch

⏹️ ▶️ Chris Latner volume okay we’re getting hundreds and hundreds of emails a day to the swift evolution mailing list what are we

⏹️ ▶️ Chris Latner going to do about that how how do we balance a apple’s goals for

⏹️ ▶️ Chris Latner pushing swift forward with the goals of the community which are somewhat more chaotic and less directed

⏹️ ▶️ Chris Latner and i think that over the last year we’ve learned a lot and you can see that reflected in terms of

⏹️ ▶️ Chris Latner how the projects being managed and how how things are being done but it’s always been super

⏹️ ▶️ Chris Latner important to be not just open source but um

⏹️ ▶️ Chris Latner i guess if you look at an open source project there’s there’s three kinds of easy levels to look at it

⏹️ ▶️ Chris Latner the first basic requirement that you have to satisfy to the open source is to make your code available

⏹️ ▶️ Chris Latner right and so you can produce tarballs periodically and that’s technically open source

⏹️ ▶️ Chris Latner, Casey you can

⏹️ ▶️ Chris Latner allow contributions and if you do that through pull requests or patches or whatever then

⏹️ ▶️ Chris Latner people can engage with it and make the code better there’s open community so not

⏹️ ▶️ Chris Latner only can do you accept a patch but you actually discuss things and um talk about

⏹️ ▶️ Chris Latner things in public and then there’s open design and with swift we went all the way and i think it

⏹️ ▶️ Chris Latner was totally the right thing to do because we really wanted to benefit from all the smart people in the world

⏹️ ▶️ Chris Latner and it was and still is amazing but it’s also very challenging

⏹️ ▶️ Casey yeah i can imagine so building upon the open sourcing of swift

⏹️ ▶️ Casey it was very surprising to me and i think a lot of the community that apple chose to upload

⏹️ ▶️ Casey the entire commit history it wasn’t just a here’s day one initial commit in its you know eleven gazillion

⏹️ ▶️ Casey files and eighty gazillion lines of code was that planned from the start that you guys would

⏹️ ▶️ Casey upload the entire history

⏹️ ▶️ Chris Latner i wouldn’t say it was planned from the start that we’d upload the entire history but it was kind of assumed from

⏹️ ▶️ Chris Latner the start that it would be open source at some point um interesting and if you look at

⏹️ ▶️ Chris Latner apple’s history i think that’s that’s in the tool space i think that’s

⏹️ ▶️ Chris Latner fairly straightforward lvm wasn’t started at apple

⏹️ ▶️ Chris Latner but almost almost everything apple does ends up going public in the elvin

⏹️ ▶️ Chris Latner space klang was started at apple and klang was contributed by apple to the

⏹️ ▶️ Chris Latner elvin project and that included its full revision history other projects

⏹️ ▶️ Chris Latner like l d b and lips plus plus and compiler and all these other smaller

⏹️ ▶️ Chris Latner projects were started at apple and contributed to the open source project so swift it was kind of assumed

⏹️ ▶️ Chris Latner that that would happen at some point the real question was when when is the right time

⏹️ ▶️ Chris Latner for that to happen and if you remember the days of swift one dado um

⏹️ ▶️ Chris Latner swift one datto to two dado in particular was a super chaotic super learning

⏹️ ▶️ Chris Latner as we went and trying to keep up with the community and trying to keep up with the pace and the challenges the people

⏹️ ▶️ Chris Latner were facing and trying to get key pieces like the air handling model and protocol extensions and all that kind of stuff

⏹️ ▶️ Chris Latner that had always been planned but didn’t make it into swift one oto and so

⏹️ ▶️ Chris Latner really focusing on that was the priority and so we decided that open sourcing swift at one

⏹️ ▶️ Chris Latner auto for example would be really actually bad for the swift community because there are major

⏹️ ▶️ Chris Latner pieces of language that weren’t there we would have to spend a lot of time community

⏹️ ▶️ Chris Latner building and try and explain to people the difference between what was not there but should be there

⏹️ ▶️ Chris Latner and what is you know there and known broken and we had to do a lot of that when

⏹️ ▶️ Chris Latner swift was eventually open source ten and last year right after swift todate but

⏹️ ▶️ Chris Latner it was a much better place than the team could actually handle the load of doing the community

⏹️ ▶️ Chris Latner and we didn’t expect the kind of response we got but we knew that building a vibrant open source community

⏹️ ▶️ Chris Latner is a lot of work and it’s not something to be under underestimated and we want to make sure that swift two

⏹️ ▶️ Chris Latner was out the door and it wasn’t kind of a resource contention between do we

⏹️ ▶️ Chris Latner finish swift two or do we start open source and that and that’s why it was announced

⏹️ ▶️ Chris Latner to be open source by the end of the year because that meant that we could start working on the open source infrastructure

⏹️ ▶️ Chris Latner project bring up all the other stuff that it takes to make something open source after swift two is complete

⏹️ ▶️ John so my recollection of the swift three in the planning stages was that abi

⏹️ ▶️ John compatibility was somewhere in the list of i don’t know if you

⏹️ ▶️ John want to call them goals but somewhere in the list of items that were in contention for a swift three and at some

⏹️ ▶️ John point along the development process of swift three abi comparability got postponed

⏹️ ▶️ John and given what you just said about the importance of a b i compatibility for the framework people inside apple or whatever

⏹️ ▶️ John um what can you say about that did you learn lessons

⏹️ ▶️ John from a the abi compatibility being planned for swift three or do you think like it was

⏹️ ▶️ John never really a hard and fast goal and you totally made the right call to delay it or you disappointed that it didn’t make

⏹️ ▶️ John it

⏹️ ▶️ Chris Latner um well i think many of those things i mean were disappointed that it got delayed but it was totally the right thing

⏹️ ▶️ Chris Latner um i think that there’s a couple of things to learn from that one of which is software schedule

⏹️ ▶️ Chris Latner planning is hard breaking yeah so

⏹️ ▶️ Chris Latner that’s definitely still a thing um there’s also that we didn’t anticipate

⏹️ ▶️ Chris Latner the so the original plan they’re referring to was announced before swift was open source

⏹️ ▶️ Chris Latner sorry was announced the same time swift is open source and so we had no idea that the community

⏹️ ▶️ Chris Latner would descend on swift and suddenly have all these new demands and consume so much time

⏹️ ▶️ Chris Latner and energy for that kind of took away from programming to do the community building

⏹️ ▶️ Chris Latner piece so that was part of it another part of it is that um abi stability is

⏹️ ▶️ Chris Latner super important but it’s not as important as people think it is for application developers

⏹️ ▶️ Chris Latner it’s really important to apple but um what we realized in the swifter time

⏹️ ▶️ Chris Latner frame is that the thing app developers would benefit from the most was actually source

⏹️ ▶️ Chris Latner stability so who who actually wants their application be broken when they get a new version

⏹️ ▶️ Chris Latner of xcode well really nobody right and

⏹️ ▶️ Chris Latner, John so

⏹️ ▶️ Chris Latner and so kind of half way through the release we pivoted and source source stability became the goal

⏹️ ▶️ Chris Latner and so i’m really excited that when swift three dot one or swift four comes out

⏹️ ▶️ Chris Latner that it’s still going to be able to build swift three code and even if there are minor changes

⏹️ ▶️ Chris Latner that need to be made for one reason or another that you can upgrade and you have great

⏹️ ▶️ Chris Latner compatibility with your old code and you don’t have to start the migrator before you can do anything so this

⏹️ ▶️ Chris Latner can be a great improvement for people’s lives

Server-side Swift

⏹️ ▶️ Marco all right so moving on a little bit to kind of this branch topic here of

⏹️ ▶️ Marco server side swift swift on linux things like this um is is

⏹️ ▶️ Marco swift on the server something that you know i know it’s possible and there’s

⏹️ ▶️ Marco like some seemingly some early efforts now to get that going do you see this as like a major

⏹️ ▶️ Marco goal for swift as the language and you know not not in any kind of official capacity but just like you as a person

⏹️ ▶️ Marco who who likes and uses swift and has has a you know a strong role in the community like

⏹️ ▶️ Marco is server side swift a thing that you want to be like a major thing

⏹️ ▶️ Marco to compete with with you know things like pipe on rails and stuff on the server or is it

⏹️ ▶️ Marco intended more be to be kind of like a specialized thing that is probably not going to be in widespread use by

⏹️ ▶️ Marco like web and back end programmers

⏹️ ▶️ Chris Latner so i think that everybody involves with the project wants it to be the way

⏹️ ▶️ Chris Latner to do server development

⏹️ ▶️ Chris Latner, Casey and

⏹️ ▶️ Chris Latner i think that to understand that you have to understand we’re just kind of entering

⏹️ ▶️ Chris Latner phase two of swift’s world domination plan so

⏹️ ▶️ Chris Latner this will probably sound insane but maybe in a few years it will sound lessons insane

⏹️ ▶️ Chris Latner but the way to look at the way i look at it and the way that many other people would have to look at it

⏹️ ▶️ Chris Latner is that we want swift to be the next big thing right we want it to be more popular than

⏹️ ▶️ Chris Latner java was or is we want to be more popular than python we want to be maybe even more popular than

⏹️ ▶️ Chris Latner sea someday right that’s that would be a stretch but but that would be great and so

⏹️ ▶️ Chris Latner if if that’s the problem to solve how do you solve that problem well open source is a huge piece of that right

⏹️ ▶️ Chris Latner without open source it’s not going to be available on other people’s platforms it’s not going to be used in education and teaching

⏹️ ▶️ Chris Latner that that’s just not going to happen and so opens source is a major piece of that um if you go back

⏹️ ▶️ Chris Latner further before that swift world domination doesn’t happen unless swift

⏹️ ▶️ Chris Latner gains relevance right and i think swift has nailed the relevance side of

⏹️ ▶️ Chris Latner things with the ios and apple platform development side of the story where

⏹️ ▶️ Chris Latner um you know maybe not marco but

⏹️ ▶️ Chris Latner, Casey most

⏹️ ▶️ Chris Latner, Marco other people are switching

⏹️ ▶️ Chris Latner to swift very quickly and seemed very happy using it

⏹️ ▶️ Marco actually i started using it today okay good call i switched

⏹️ ▶️ Marco, Chris Latner today in

⏹️ ▶️ Marco honor of this interview i wrote my first swift today an entire extension

⏹️ ▶️ Marco and overcast through porno is written in

⏹️ ▶️ Casey swift wow see fantastic let you go i’m proud of you

⏹️ ▶️ Chris Latner it is a good day yeah

⏹️ ▶️ Chris Latner, Marco and

⏹️ ▶️ Marco, Chris Latner more

⏹️ ▶️ Marco more will be coming although there’s a lot of justice there so probably a long way away

⏹️ ▶️ Marco from it being all swift well that’s

⏹️ ▶️ Chris Latner that’s okay swift loves objectives exactly so the way i look at it is that the

⏹️ ▶️ Chris Latner first step of world domination is getting to relevance and for language get

⏹️ ▶️ Chris Latner relevance it needs a killer a killer app it needs a reason why people would want to use it and for

⏹️ ▶️ Chris Latner swift that’s clearly i west and mac and other apple platform development

⏹️ ▶️ Chris Latner second needs the open source third it needs to go beyond

⏹️ ▶️ Chris Latner right and the next the next step the frontier of where it makes sense to expand out to or your

⏹️ ▶️ Chris Latner you know real time strategy game player the natural expansion is a place

⏹️ ▶️ Chris Latner where the language is where the language

⏹️ ▶️ Chris Latner actually only needs a few things added to it to be good and so i think server development

⏹️ ▶️ Chris Latner is really that next step because server development is very similar to apt development in terms of the kinds of code that

⏹️ ▶️ Chris Latner you need to write is very similar in terms of many of the frameworks the major missing piece

⏹️ ▶️ Chris Latner is that it needs to run on linux and other pertinent server development platforms

⏹️ ▶️ Chris Latner and there’s then the whole library ecosystem that needs to be built out and so i think

⏹️ ▶️ Chris Latner that what we’re in right now is we’re in a really exciting phase where those platforms are being

⏹️ ▶️ Chris Latner built those frameworks and different pieces of infrastructure coming together and that’s

⏹️ ▶️ Chris Latner that’s really the idea behind the swift server working group that’s an official part of swift dot org is getting

⏹️ ▶️ Chris Latner all the people working in the space to talk to each other and i’m very excited about that

⏹️ ▶️ Chris Latner um going beyond that though you know it with the goal of being more relevant than

⏹️ ▶️ Chris Latner java for example if we’re going to pick on java the

⏹️ ▶️ Chris Latner dream of swift is to scale all the way from scripting language all the way down to low

⏹️ ▶️ Chris Latner level systems programming like you could write a kernel in it or you write some firmware in it and i

⏹️ ▶️ Chris Latner think the the scripting side of it is maybe more straightforward when when

⏹️ ▶️ Chris Latner the the swift community and the court team have time to deal with it because they’re you’re talking about

⏹️ ▶️ Chris Latner integrating regular expressions integrating multiline string literals and integrating other other features

⏹️ ▶️ Chris Latner like that that people love from scripting languages and those are big projects

⏹️ ▶️ Chris Latner but those are kind of well known i

⏹️ ▶️ Chris Latner, Marco guess

⏹️ ▶️ Chris Latner and they will fit and drop right into the existing existing a

⏹️ ▶️ Chris Latner system that swift provides systems programming is i think the big

⏹️ ▶️ Chris Latner the big next frontier and i think that’s where swift can really distinguish itself from java or

⏹️ ▶️ Chris Latner other other competitive languages because among other

⏹️ ▶️ Chris Latner widely used languages out there there’s really nothing that can use c or c plus plus

⏹️ ▶️ Chris Latner there’s a rust for example is an interesting language but it hasn’t gotten a lot of adoption yet

⏹️ ▶️ Chris Latner and i think that swift is more interesting than rust in some of the higher level application

⏹️ ▶️ Chris Latner demands but we’ll see rust is a great language as well and so i’m

⏹️ ▶️ Chris Latner really interested to see the swift for systems programming work

⏹️ ▶️ Chris Latner get going and i think that’ll be a couple of years out before it really comes together but once it does

⏹️ ▶️ Chris Latner um i think that swift can be really be the next big thing and i’m excited about that

⏹️ ▶️ Marco so so just stepping back a second to the server role of it you know possibly taking over there because like

⏹️ ▶️ Marco you know i would love like you know here i am using php and objective c these these two languages

⏹️ ▶️ Marco that are fairly old and i mean php is way more hated than objective c but you

⏹️ ▶️ Marco know this these are the two languages i use for various historical and practical reasons

⏹️ ▶️ Marco um on the server a lot of what what makes a language succeed or

⏹️ ▶️ Marco fail on servers and in web development is not necessarily how good of a language

⏹️ ▶️ Marco it is but how how healthy and universal and develop

⏹️ ▶️ Marco the framework around it are for for things like web development how practical and easy it is

⏹️ ▶️ Marco to deploy and run on servers so you know swift being

⏹️ ▶️ Marco being its own good language that alone i don’t think is enough to get it

⏹️ ▶️ Marco to get traction on the server do like do you think is it necessary for

⏹️ ▶️ Marco the swift team like the the the core group whose running swift whether that’s

⏹️ ▶️ Marco apple or the community of contributors with apple or whatever else is it important for them

⏹️ ▶️ Marco to develop and and kind of make official an official set of server

⏹️ ▶️ Marco and web frameworks and libraries and tools or do you think it’s sufficient

⏹️ ▶️ Marco to kind of take the risk to let the community do that but at the risk of fragmentation and maybe nothing

⏹️ ▶️ Marco ever taking off

⏹️ ▶️ Chris Latner also that’s an interesting question and keep in mind that i don’t have a lot of practical experience

⏹️ ▶️ Chris Latner building server apps so this is you know not missing much my my my my opinion

⏹️ ▶️ Chris Latner based on talking to other smart people so the approach the swift project

⏹️ ▶️ Chris Latner taking as its looking to standardize what’s colloquially but not correctly

⏹️ ▶️ Chris Latner known as a server foundation kind of technologies so it will not be named server foundation

⏹️ ▶️ Chris Latner but that that kind of an idea and so take the encryption the network transport the

⏹️ ▶️ Chris Latner h t p kinds of things that that everybody needs for server technologies and

⏹️ ▶️ Chris Latner standardize that as part of the swift project but at least in the short term not look to standardize a

⏹️ ▶️ Chris Latner specific web framework because there are half a dozen different completely different approaches that

⏹️ ▶️ Chris Latner are interesting in different different kind of domains and i don’t think there’s a clear winner yet

⏹️ ▶️ Chris Latner it’s possible that after the first few rounds shake out then there will be an equivalent you know

⏹️ ▶️ Chris Latner ruby on rails kind of dominant pattern and framework that emerges

⏹️ ▶️ Chris Latner and if so then maybe that would make sense but i don’t think i don’t think swift needs for there to be a

⏹️ ▶️ Chris Latner winner at the high level um as far as what can the swift core

⏹️ ▶️ Chris Latner language and language and compiler folks do about this i think there’s really two

⏹️ ▶️ Chris Latner things one of which is the swift package manager i think the package manager is really key to

⏹️ ▶️ Chris Latner scaling out the ecosystem and getting people to work together

⏹️ ▶️ Chris Latner with the common ecosystem it’s also the best and i think only way to build swift code on linux

⏹️ ▶️ Chris Latner and and other platforms i don’t mean to single out linux is just the biggest

⏹️ ▶️ Chris Latner server development one um so i think that’s a big piece i think the other piece that they will

⏹️ ▶️ Chris Latner be really amazing is when the concurrency model comes up because i think that’s one of the reasons that makes

⏹️ ▶️ Chris Latner um go particularly compelling for server development as it has really a well developed story

⏹️ ▶️ Chris Latner there along with all the libraries that go together for server and cloud development and so when

⏹️ ▶️ Chris Latner the pieces the concurrency model start coming up which will probably the first pieces will ship in swift five

⏹️ ▶️ Chris Latner is my guess that will make swift and even more compelling kind of answer for

⏹️ ▶️ Chris Latner that kind of space but i don’t think i don’t think we need a server

⏹️ ▶️ Chris Latner language feature that’s what you’re asking

Low to high, easy to hard

⏹️ ▶️ John so going to the other extreme from the server side in scripting to going back to

⏹️ ▶️ John systems programming one thing i’ve seen related to this and and i think this all

⏹️ ▶️ John stems from like this quote from the original apple swift book that swift was designed

⏹️ ▶️ John to scale from hello world to an entire operating system like that that it’s that the world domination plan was there from the

⏹️ ▶️ John beginning right

⏹️ ▶️ John, Chris Latner now absolutely

⏹️ ▶️ John in the first paragraph of the thing um when i talk to people now about

⏹️ ▶️ John swift as a systems language often what i hear is

⏹️ ▶️ John people relating the ways that it is not ready to be a systems language yet which is you

⏹️ ▶️ John know what you just talked about but then deciding based on that that because it’s not ready to

⏹️ ▶️ John be a systems language now it never will and then they dismiss it like in other words like

⏹️ ▶️ John that may have been the plan but clearly for reasons x y and z you

⏹️ ▶️ John still have to use c for this therefore swift is just a way to write apps for ios and macos

⏹️ ▶️ John and ah how i mean i’m not quite sure what you can do by that but do you think

⏹️ ▶️ John about um how how to change perception as the language gets older

⏹️ ▶️ John in its old age now it’s up to three point not like the i arse you know that that nobody puts swift in

⏹️ ▶️ John a corner like that that people think they know people think they know what swift is and they say oh it’s this language

⏹️ ▶️ John does this thing and that your plans for world domination may be thwarted by the idea that people are pigeon holing

⏹️ ▶️ John language because it’s been around for a few years and i think they know it

⏹️ ▶️ Chris Latner i think that you’re on to something i think that’s a real problem i don’t think systems programming is the place where that’s a problem yet

⏹️ ▶️ Chris Latner though because if i don’t think it’s it’s reasonable for me as a crazy

⏹️ ▶️ Chris Latner man going around saying swift swift will someday do systems programming really well you should you should

⏹️ ▶️ Chris Latner remember that i don’t i don’t think that that’s a good way to spend time at the moment when

⏹️ ▶️ Chris Latner it does that then the question becomes how do you make that make

⏹️ ▶️ Chris Latner people aware of that and how do you get get people to change their prior misconception but at that

⏹️ ▶️ Chris Latner point in time you can have very practical look you can do this and this is so great and now you get all the

⏹️ ▶️ Chris Latner advantages of see but it’s safe and you can point to specific reasons why it’s better

⏹️ ▶️ Chris Latner so i’m not too worried about it in the space of systems programming but i think there is a practical

⏹️ ▶️ Chris Latner problem today which is swift is open source ah

⏹️ ▶️ Chris Latner the apple development community knows swift very well but pretty much everybody else doesn’t

⏹️ ▶️ Chris Latner right and if you go to a random ah say linux

⏹️ ▶️ Chris Latner developer just continue talking about linux they all perceive swift as

⏹️ ▶️ Chris Latner being an apple thing and only relevant to apple platforms and they don’t even learn about it

⏹️ ▶️ Chris Latner right and so i think that there is an interesting challenge there and probably

⏹️ ▶️ Chris Latner the best way to do that is for the existing communities

⏹️ ▶️ Chris Latner who keep just growing and as the swift on server community grows

⏹️ ▶️ Chris Latner and more and more people are successful building and deploying server after and swift i hope that

⏹️ ▶️ Chris Latner naturally more and more people will become aware of that effort will will then find

⏹️ ▶️ Chris Latner out about swift maybe try it out find out that it’s actually really great and if it’s not

⏹️ ▶️ Chris Latner really great let us know so that people can fix whatever the problems are and then just

⏹️ ▶️ Chris Latner kind of grow out but i’m i’m actually perfectly okay with it growing a little bit slower than it has been

⏹️ ▶️ Marco so so john asked about you know this span between basically low level systems programming and high level applications

⏹️ ▶️ Marco programming i’m also curious that it seems like the swift team slash apple have

⏹️ ▶️ Marco have presented swift as not only spanning that wide range which seems impossible

⏹️ ▶️ Marco but also spanning a wide range of skill levels of programmers so you know there’s there’s the swift

⏹️ ▶️ Marco playgrounds app an ipad where you have total novices writing swift as their first language all

⏹️ ▶️ Marco the way up to people writing like you know systems level things and complicated apps

⏹️ ▶️ Marco who are very experienced programmers do you think is it even is it possible

⏹️ ▶️ Marco for language to do all of these things well and if so do you think swift has

⏹️ ▶️ Marco achieved that

⏹️ ▶️ Chris Latner so i do think it’s possible i think it has achieved it for the things that it’s

⏹️ ▶️ Chris Latner doing so far and i think the challenge is that as new capabilities get added that it doesn’t jeopardize

⏹️ ▶️ Chris Latner that but knowing knowing the the folks involved and the source compatibility

⏹️ ▶️ Chris Latner guarantees and everything else like that i’m pretty sure that won’t be a problem going for here’s the way i look

⏹️ ▶️ Chris Latner at swift um you will never you’re unlikely to run to anybody that says that swift

⏹️ ▶️ Chris Latner is a simple language right swift is a complicated language it’s not simple

⏹️ ▶️ Chris Latner in the sense that scheme is simple for example is also not simple in terms of

⏹️ ▶️ Chris Latner when you talk to an object c a developer they they’ll often claim that objective is simple ignoring all

⏹️ ▶️ Chris Latner the sea parts i would never claim that for the record all right so um c itself is

⏹️ ▶️ Chris Latner a is a very complicated weird language it’s just that people don’t typically use the weird

⏹️ ▶️ Chris Latner parts right and so they perceive as being very simple ah the

⏹️ ▶️ Chris Latner ah so the way the way the way i project the on swift is that the secret is swift

⏹️ ▶️ Chris Latner and being easy to learn easy to use as a teaching

⏹️ ▶️ Chris Latner vehicle but also powerful enough to solve the problems that need to be solved is that

⏹️ ▶️ Chris Latner the complexity inherent in the language needs to be progressively disclosed so imagine if

⏹️ ▶️ Chris Latner some day swift had inline assembly support for example only really low level systems people

⏹️ ▶️ Chris Latner are really bit twiddling assembly programmers would use this feature everybody else would ignore it

⏹️ ▶️ Chris Latner and it would not increase the apparent complexity to the language of the language to people who didn’t know what it

⏹️ ▶️ Chris Latner was for a feature like that the most important thing is to make the syntax clear so that when you run

⏹️ ▶️ Chris Latner up into it you discover somebody else’s code you know that you don’t know what it does

⏹️ ▶️ Chris Latner right and so you say oh that’s interesting i don’t know what that is and then you can do

⏹️ ▶️ Chris Latner a search and find out find a stack over force whatever it is to say explain what this is to me and

⏹️ ▶️ Chris Latner then you can say okay i get it and i either care or i don’t but at that point in time you can then dive in

⏹️ ▶️ Chris Latner and learn learn more information assembly is never something that a swift playgrounds

⏹️ ▶️ Chris Latner person working through learn a to code three would ever want to know about it and and i

⏹️ ▶️ Chris Latner think that is really the one of the secrets to swift a success in terms of getting people

⏹️ ▶️ Chris Latner on board and and being really approachable for people at all levels is that um

⏹️ ▶️ Chris Latner just like in python you can start with just print hello world you can do the exact same thing and swift and

⏹️ ▶️ Chris Latner with swift you don’t need the slash end on your string it’s really just print hello world

⏹️ ▶️ Chris Latner and from there you can then introduce new concepts you can grow it out over time and this really allows

⏹️ ▶️ Chris Latner people to ah understand either the syntax language or the conceptual

⏹️ ▶️ Chris Latner programming things that they’re learning as they go and um the design of swift is

⏹️ ▶️ Chris Latner really geared around that and so what that means if you project on assistance programming features comparing

⏹️ ▶️ Chris Latner swift to rust for example i think it’s very likely that swift will get features

⏹️ ▶️ Chris Latner for memory ownership control which will allow really really high performance and

⏹️ ▶️ Chris Latner allow solving performance problems with arc for example but unlike rust we can’t make

⏹️ ▶️ Chris Latner that be a core part of the type system that everybody has to use it has to be something that

⏹️ ▶️ Chris Latner sufficiently smart programmers when they’re solving a specific performance problem and abusing

⏹️ ▶️ Chris Latner or an embedded kernel programmer might want to use but an application developer can

⏹️ ▶️ Chris Latner completely ignore and so that’s really the challenges it’s a deploying similar

⏹️ ▶️ Chris Latner type system mechanics and other low level language geekery to the problem but do so in a

⏹️ ▶️ Chris Latner way that is tasteful and allows most normal people to just completely ignore it

⏹️ ▶️ John everything you just said kind of reminds me of a saying i once heard that your freda would opt for swift

⏹️ ▶️ John if you would like which is make easy things easy and make hard things possible

⏹️ ▶️ Marco we are sponsored to night by audible

⏹️ ▶️ Marco with an unmatched selection of audiobooks original audio shows news comedy and more

⏹️ ▶️ Marco get a free thirty day trial at audible dot com slash at p if you want to listen

⏹️ ▶️ Marco to it audible has it you can listen to audio books from virtually every genre any time anywhere you can play

⏹️ ▶️ Marco audible audiobooks on phones tablets computers even kindles and ipods if you still

⏹️ ▶️ Marco have them audiobooks are great for flights long road trips or even your daily commute you

⏹️ ▶️ Marco might think you don’t have time to read books but you’d be surprised how many audio books you can hear each year even only

⏹️ ▶️ Marco listening to and from work every day because that time really adds up audiobooks bring books to

⏹️ ▶️ Marco life many of them are read by authors themselves which adds an extra dimension to the text and with audible

⏹️ ▶️ Marco you can take risks and try new authors without regret because audible offers their great listen

⏹️ ▶️ Marco guarantee if you start an audio book and don’t like it you can exchange it for another one for free

⏹️ ▶️ Marco so check it out for yourself you can see and listen when you begin your free thirty day trial you get

⏹️ ▶️ Marco your first audiobook for free and there’s no stress and no obligation because you can cancel your audible membership

⏹️ ▶️ Marco at any time so with audiobooks and spoken word audio products you will find what you’re looking for

⏹️ ▶️ Marco get a free thirty day trial by signing up at audible dot com slash atp

⏹️ ▶️ Marco that’s audible dot com slash at p

Influences

⏹️ ▶️ Marco thanks to audible for sponsoring our show

⏹️ ▶️ Casey so chris you brought up just a second ago how simple python’s hello world is

⏹️ ▶️ Casey and one of the things i’ve wondered about swift is it seems to some

⏹️ ▶️ Casey degree like it’s kind of what do you call it the roca test of languages in that i came

⏹️ ▶️ Casey to swift a sort of kind of objectives but but my day job was

⏹️ ▶️ Casey as a sharp guy and i see to my eyes anyway and i hope you don’t find this insulting but i see

⏹️ ▶️ Casey a lot of sharp i see a lot of sharp and swift and i’ve heard javascript people again i hope that’s not insulting

⏹️ ▶️ Casey say oh i see some javascript in here and i presume that john could say that that he sees pearl in it i presume

⏹️ ▶️ Casey marco could say that he sees php in it

⏹️ ▶️ Casey, Marco but hopefully

⏹️ ▶️ Casey that’s not

⏹️ ▶️ Casey, Marco insulted i see in it i don’t see any

⏹️ ▶️ Marco php

⏹️ ▶️ Casey you get what i’m driving at though and so so i guess what i’m asking chris is obviously

⏹️ ▶️ Casey there was a huge object to see influence and swift but was there any one or maybe just a couple

⏹️ ▶️ Casey of other languages that you feel really really inspired swift or or do you really think it’s it’s the melting

⏹️ ▶️ Casey pot language that that one would always hope to create

⏹️ ▶️ Chris Latner my final is a melting pot because we weren’t so the gold swift isn’t to ape

⏹️ ▶️ Chris Latner some other language is to

⏹️ ▶️ Chris Latner, Casey just be great

⏹️ ▶️ Chris Latner right right and so you can take a think that swift looks

⏹️ ▶️ Chris Latner or i and the other people in the court team and the other people working working on swift have looked

⏹️ ▶️ Chris Latner at many many other languages if your haskell nerd there’s tons of haskell concepts

⏹️ ▶️ Chris Latner built in protocols really are just like a very similar haskel construct

⏹️ ▶️ Chris Latner for example and so it’s really about taking the best ideas from where

⏹️ ▶️ Chris Latner we can get and assembling them together and one of the major goals of swift is for to be familiar

⏹️ ▶️ Chris Latner feeling right because of its

⏹️ ▶️ Chris Latner, John familiar

⏹️ ▶️ Chris Latner feeling that makes it easier for people to pick up and they’re not fighting

⏹️ ▶️ Chris Latner unnecessary barriers to they just get in the way of adoption and so it being

⏹️ ▶️ Chris Latner familiar is actually success in that way and it’s not it’s not a result

⏹️ ▶️ Chris Latner of a swift trying to be go or see sharp or whatever is about

⏹️ ▶️ Chris Latner taking the best ideas from them and assembling them together and i think that you could probably

⏹️ ▶️ Chris Latner pick a language and there’s some some good idea that came from them including you know d

⏹️ ▶️ Chris Latner or dart or go or whatever i mean swift does really draw

⏹️ ▶️ Chris Latner from many many different sources and it’s really hard to um to really

⏹️ ▶️ Chris Latner tease them all out

Why adopt now?

⏹️ ▶️ Marco so the question that casey wrote for me to ask you right now

⏹️ ▶️ Marco, Casey is

⏹️ ▶️ Casey how

⏹️ ▶️ Marco do you know that was me that’s definitely you why should i give a shit about swift

⏹️ ▶️ Marco right now and i think i’m going to modify this a little bit

⏹️ ▶️ Casey that was written that was written for you my friend

⏹️ ▶️ Casey, Marco yes that is how you right i figure that’s not quite john style oh

⏹️ ▶️ Marco no but but i i i you know as as somebody who is just dipping a toe

⏹️ ▶️ Marco and swift you know as of twelve hours ago um you know and has waited this long you

⏹️ ▶️ Marco know object to see faithful slash hold out slash lazy people who don’t like learning new things very quickly

⏹️ ▶️ Marco what’s kind of like the sales pitch for adopting swift now

⏹️ ▶️ Chris Latner um i guess two different answers one of which is you don’t have to adopt swift i don’t

⏹️ ▶️ Chris Latner think objective s is going to go away any time soon apple still sports c and c plus plus and

⏹️ ▶️ Chris Latner it doesn’t have any specific ben there’s no obvious benefit of dropping objectives c

⏹️ ▶️ Chris Latner as well as obviously they have a ton of object to sea code themselves so i don’t think that there’s any

⏹️ ▶️ Chris Latner reason you have to adopt swift swift just tries to be a better answer so

⏹️ ▶️ Chris Latner that you will want to adopt it and in terms of why a swift

⏹️ ▶️ Chris Latner in its name kind of it connotes a whole bunch of different things including performance but

⏹️ ▶️ Chris Latner really to me the most important aspect of it is programmer productivity the idea that swift

⏹️ ▶️ Chris Latner is really optimizing for is not letting you pound out the code as fast as possible it really

⏹️ ▶️ Chris Latner is designed and optimized for as a programmer you can spend the least amount of time to get

⏹️ ▶️ Chris Latner to a working program as fast as possible and so getting to a working program

⏹️ ▶️ Chris Latner includes the time it takes to debug something includes the time it takes to iterate and develop and

⏹️ ▶️ Chris Latner fight the type system and all the other things that you have to do but that

⏹️ ▶️ Chris Latner time you spend having to fight the type system or figure out optionals or things like that pays

⏹️ ▶️ Chris Latner itself back because your program works more often and so you’re actually not spending time chasing

⏹️ ▶️ Chris Latner down dangling pointer bugs or um you know in the case of objectives

⏹️ ▶️ Chris Latner you get an unrecognized selector you know whatever whatever those kinds of bugs are

⏹️ ▶️ Chris Latner an swift tries to help you by the language guiding you and helping design things swift

⏹️ ▶️ Chris Latner also has a lot of things that just make common things easier so you can switch on a string for example and

⏹️ ▶️ Chris Latner then match the different cases you can use enums which are a super enums

⏹️ ▶️ Chris Latner or just from the language geekery world just algebraic data types they are in tons of different

⏹️ ▶️ Chris Latner functional languages um they’re not novel by any means but they’re so useful and

⏹️ ▶️ Chris Latner they solve so many problems just out of the box and just having your fingertips is great so

⏹️ ▶️ Chris Latner there’s there’s a lot of things about swift and it probably depends on who you are what your experiences are

⏹️ ▶️ Chris Latner one of the problems i’ve seen with people moving from objective sea to swift initially is that they tend to write swift

⏹️ ▶️ Chris Latner code just like they wrote objective s and while that’s a really good way to maybe migraine

⏹️ ▶️ Chris Latner application over or to get familiar swift it really means that you’re missing a lot of the value

⏹️ ▶️ Chris Latner in swift and and i think that that’s ok it’s just it means that you know an

⏹️ ▶️ Chris Latner objective c program we’re going to swift first starts out by saying i don’t see what the big deal is

⏹️ ▶️ Chris Latner and only after they spend some time in it till they start to realize they they are more productive

⏹️ ▶️ Chris Latner they do feel better they reach for things that they otherwise wouldn’t have and i

⏹️ ▶️ Chris Latner think it’s really interesting to talk to people that have done for example a year of swift programming but then have to go

⏹️ ▶️ Chris Latner back to objective sea and to me that’s i’ve been there that’s the really interesting thing so so it was your experience

⏹️ ▶️ Casey it felt absolutely archaic and granted i’m an i like to think of myself as a nice

⏹️ ▶️ Casey guy and so i’d probably say something like that even if it wasn’t true but the reality situation is it felt

⏹️ ▶️ Casey just so oh old it just felt old and i don’t know i wish i

⏹️ ▶️ Casey could quantify that better but it just felt like i was back in time in a

⏹️ ▶️ Casey way that didn’t feel good and in some things like in some ways it was kind of nice so

⏹️ ▶️ Casey i do like optionals i understand why they are a thing i

⏹️ ▶️ Casey am all in on it but at the same time there are times when i have to do a guard letter whatever the case may be that that

⏹️ ▶️ Casey i really would just like to move on with my life and so not having to worry

⏹️ ▶️ Casey being being able to be a little more cavalier was kind of nice but the reality the situation

⏹️ ▶️ Casey is as you as you’ve said earlier is that that’s a potential hazard down the road and and that’s why

⏹️ ▶️ Casey i like the way that you and the team have set up the type system and swift but gosh going

⏹️ ▶️ Casey back to objective c is so frustrating for me because it just feels like i’m going back in time

⏹️ ▶️ Casey like i’m going backwards and

⏹️ ▶️ Chris Latner i think that the challenge that swift faces is because its focus is on building you know

⏹️ ▶️ Chris Latner programs at work and that can be maintained and all the other things that we care about for

⏹️ ▶️ Chris Latner large scale software it’s maybe not the best solution for

⏹️ ▶️ Chris Latner i want to pound out a quick script use it once and then throw it away right because

⏹️ ▶️ Chris Latner in that case you don’t care about maintenance you can fit all the code in your head you don’t care about

⏹️ ▶️ Chris Latner um good documentation on of the other things that swift encourages and um that’s that’s a case

⏹️ ▶️ Chris Latner where having a dynamic type system can be really really liberating and

⏹️ ▶️ Chris Latner so you know maybe that’ll be a challenge for some people but i think that as swift gains

⏹️ ▶️ Chris Latner ecosystem against libraries its other advantages will be so great that hopefully

⏹️ ▶️ Chris Latner it will be a good solution for those kinds of tools as well those kinds of scripts as well

Style and idioms

⏹️ ▶️ Marco so a minute ago you mentioned how objective sea programmers people like me who are new to swift um

⏹️ ▶️ Marco tend to write swift like objective s and and that’s that’s a concern i’ve had and it’s

⏹️ ▶️ Marco one of the reasons that i have procrastinated adopting swift up till now because

⏹️ ▶️ Marco i have i have a pretty good grasp on object c s now and i i write

⏹️ ▶️ Marco objective sea code that i know is basically idiomatic and and

⏹️ ▶️ Marco soundly designed like i write code in the style of what i think apple’s code would

⏹️ ▶️ Marco look like based on the little bit of you know headers and stuff that we see i feel like i write good objective sea code that

⏹️ ▶️ Marco is kind of correct and an idiomatic lly sound with swift you know i assumed

⏹️ ▶️ Marco that the the idioms would not yet be developed for a while and and established for a

⏹️ ▶️ Marco while and so i didn’t want to write a bunch of bad swift code um or or

⏹️ ▶️ Marco like incorrect or or weird swift code you know investing heavily in it so early

⏹️ ▶️ Marco on do you think that it’s at a point now where the idioms are starting to get

⏹️ ▶️ Marco worked out enough that’s less of a concern now

⏹️ ▶️ Chris Latner yeah i do so i think it’s definitely fair to say that in the swift one the swift two

⏹️ ▶️ Chris Latner timeframes swift as the language was changing really rapidly and i could

⏹️ ▶️ Chris Latner see why you’d feel like you’re on uneven footing and not really sure what the language is much less what the idioms

⏹️ ▶️ Chris Latner are swift three really is quite well baked out and so i expect that going forward

⏹️ ▶️ Chris Latner that the new things are going to be additive they’re not going to be um changing the existing patterns and

⏹️ ▶️ Chris Latner so i think the swift community in general has gone through the same same kind of thing that you’re feeling there where

⏹️ ▶️ Chris Latner it’s not really clear the one right way to solve the problem and maybe there are different

⏹️ ▶️ Chris Latner good ways to do it with different trade offs that weren’t clear to people but i think that’s i think people are starting

⏹️ ▶️ Chris Latner to understand that now there are a few style books that are being written by people that i’ve heard about and

⏹️ ▶️ Chris Latner so when those come out those will hopefully be good and those will be a good resource

⏹️ ▶️ Chris Latner but another thing to keep in mind is that swift is opinionated i

⏹️ ▶️ Chris Latner guess and it is the

⏹️ ▶️ Chris Latner, Casey way to say

⏹️ ▶️ Chris Latner it so it really does encourage you to do the right thing here where it can and so

⏹️ ▶️ Chris Latner for example if you use var for everything um the the swift compiler will

⏹️ ▶️ Chris Latner say hey you marked this as a var but it could be a let and that’s just its subtle way

⏹️ ▶️ Chris Latner of and and let me fix it for you right and that’s just its subtle way of encouraging you to

⏹️ ▶️ Chris Latner use immutable values which is a very small thing but it’s just kind of

⏹️ ▶️ Chris Latner pushing you in the way that it thinks leads to better code and immutability

⏹️ ▶️ Chris Latner for local variable doesn’t matter that much except that it communicates something more to the person you have to read

⏹️ ▶️ Chris Latner and maintain your code and um and so i think that swift really does kind of encourage you

⏹️ ▶️ Chris Latner down the right lines in some ways but on the other hand in other places where you’re saying hey should

⏹️ ▶️ Chris Latner something be a class or should it be struck the trade offs are more new one and it’s it’s a harder thing and the swift compiler

⏹️ ▶️ Chris Latner can’t just know what what prom it is that you want to solve and so can’t help you with the it

⏹️ ▶️ John you imagine swift style guides before um as as a creator of a

⏹️ ▶️ John language um how how much influence do you do you feel

⏹️ ▶️ John like you want to have over things like style things that really are

⏹️ ▶️ John you know it’s not it’s not features it’s not technical it’s just like you know what we all know the different

⏹️ ▶️ John style things like oh you know you should only have one exit at the bottom or you should exit early or

⏹️ ▶️ John i mean like there are things you can do even things like spacing and brace staff are

⏹️ ▶️ John crying out loud or you know or just the sort of idioms of like this little three line sequence is how you do this transformation

⏹️ ▶️ John on this data structure um you mentioned you know language features can influence that obviously as language

⏹️ ▶️ John designer in participating in that process you can effectively guide the community’s

⏹️ ▶️ John style wise in one direction or another but eventually you come to the stuff that’s just plain

⏹️ ▶️ John opinion and style and several other languages have had fairly concrete

⏹️ ▶️ John styles set forth early on by the creators we want to go like k and r c a style

⏹️ ▶️ John type things how much do you care about being able to influence the i

⏹️ ▶️ John guess the personal preference or the aesthetic a portions of style that are outside

⏹️ ▶️ John the things that you can influence as part of language design

⏹️ ▶️ Chris Latner um so as with any programmer that has a pulse i have

⏹️ ▶️ Chris Latner my preferred style and so clearly that’s the right way um naturally

⏹️ ▶️ Chris Latner naturally um well so i guess more seriously the language itself does influence some of the

⏹️ ▶️ Chris Latner things you mentioned so for example it’s my personal opinion that the style

⏹️ ▶️ Chris Latner where you have a single entry and a single exit from every function i think that leads to really difficult to maintain and read

⏹️ ▶️ Chris Latner code and that’s one of the things that led to the guard statement existing the guard really

⏹️ ▶️ Chris Latner does encourage you to use early exits so you handle the exceptional cases and then you don’t have to worry about them

⏹️ ▶️ Chris Latner so that’s that’s an example of where the language design is kind of encouraging you to um

⏹️ ▶️ Chris Latner you know have multiple returns from a function other more subjective things like the number of spaces

⏹️ ▶️ Chris Latner i personally am a fan of two space indents i know some people are staunchly for other people are staunchly

⏹️ ▶️ Chris Latner eight some people think eighty columns is right answer right i mean all these things are there are actually

⏹️ ▶️ Chris Latner really good arguments on all sides some people argue that you should use three space indent because

⏹️ ▶️ Chris Latner then you certainly can’t have tabs in your file well so this is

⏹️ ▶️ Chris Latner where this it comes down to you have to pick your battles and

⏹️ ▶️ Chris Latner people will disagree for a long time and you can make

⏹️ ▶️ Chris Latner, Casey arguments

⏹️ ▶️ Chris Latner on both sides but the in where we’ve come down is that it’s just more

⏹️ ▶️ Chris Latner practical to let people write code they like to look at and that comes at a cost of if you switch between

⏹️ ▶️ Chris Latner teams or you pick up somebody else’s package then maybe it’s intended the wrong way but i don’t

⏹️ ▶️ Chris Latner think that really actually actively hurts the comprehensive comprehensibility

⏹️ ▶️ Chris Latner of the code that’s merely annoying and having something like

⏹️ ▶️ Chris Latner go format which rigorously enforces the one true way i think would have been nice it just wasn’t

⏹️ ▶️ Chris Latner a priority early on and it also just wasn’t a battle that we were willing to tackle and

⏹️ ▶️ Chris Latner i don’t know we’ll see i think this is still also an open question in terms of what other tooling

⏹️ ▶️ Chris Latner gets built and what other things come into the fray because it would be great

⏹️ ▶️ Chris Latner to have better tooling around this it just hasn’t been built out yet and it’s a great opportunity for open source as well

⏹️ ▶️ John i was thinking about it the sort of doomsday scenario where like one of these these swift style guide books comes out

⏹️ ▶️ John and like it makes some like blanket recommendation that like you should you know i

⏹️ ▶️ John always use protocols for this and you should never use classes for that or whatever and it becomes wildly popular

⏹️ ▶️ John and accepted as like the bible of how you write swift programming and you’re just somewhere shaking

⏹️ ▶️ John your head and going no you got it all wrong but i guess you know we’ll cross that bridge when we come to

⏹️ ▶️ John it and i think at this point that the language design itself and the community’s had enough influence that that’s not likely

⏹️ ▶️ John to happen but i mean i guess what i was getting at is do you feel like you want to write a swiss style god like if you

⏹️ ▶️ John had unlimited time

⏹️ ▶️ Chris Latner no i don’t think that would be a good use my of my time but

⏹️ ▶️ Chris Latner, John if i had unlimited time maybe

⏹️ ▶️ Chris Latner, Casey i don’t know

⏹️ ▶️ Chris Latner it’s hard to it’s hard to answer that theoretical question but but also to your concern

⏹️ ▶️ Chris Latner about somebody came out with a style book that was so wrong that would cause me to like you know be

⏹️ ▶️ Chris Latner really unhappy i actually have a ton of faith in the swift community because if something came out that was so weird

⏹️ ▶️ Chris Latner i don’t think that the community overall would would accept it um the

⏹️ ▶️ Chris Latner community has again just kind of blown me away with how cruel they are and how

⏹️ ▶️ Chris Latner how many great people have got involved with swift and swift evolution side of things and it’s been

⏹️ ▶️ Chris Latner really amazing to see these people you know they they go through their own personal trajectory

⏹️ ▶️ Chris Latner on the swift mailing list where you know initially they are saying hi i had this idea what

⏹️ ▶️ Chris Latner do you think and the response is no that’s a terrible idea for this is his reason

⏹️ ▶️ Chris Latner but then they come back and they’re like hey how about how about this did you ever think about this and i was like oh well that’s interesting

⏹️ ▶️ Chris Latner that almost worked but it didn’t work because of that and then they come back and they say hey well what about this he said well we

⏹️ ▶️ Chris Latner actually tried that and we had that for a while and then had to back out and change it this other way because we didn’t even think about this

⏹️ ▶️ Chris Latner other thing and then the next day they’re the ones saying this is the way it needs to go and everybody

⏹️ ▶️ Chris Latner says you’re right we should do that and it’s it’s it’s really hard for people

⏹️ ▶️ Chris Latner that have been involved in the overall design of anything as complicated a swift

⏹️ ▶️ Chris Latner to be able to discern the difference between something that is the way it is out

⏹️ ▶️ Chris Latner of an intentional decision process or the way it is as an act an accident of

⏹️ ▶️ Chris Latner history and so as now that the design process is public i think that it becomes

⏹️ ▶️ Chris Latner a lot easier for people to to tell that and it’s very easy for people to

⏹️ ▶️ Chris Latner kind of understand that difference the one big debate that i haven’t

⏹️ ▶️ Chris Latner actually seen is why is the funk keyword the funk keyword and that’s one that luckily we’re

⏹️ ▶️ Chris Latner now beyond the swift three source compatibility threshold so we just can’t

⏹️ ▶️ Chris Latner have that discussion anymore i think that’ll be dan

⏹️ ▶️ John one of the best things of the swift open source thing the whole evolution process has is that

⏹️ ▶️ John like the list of questions like the asked and answers questions like this is a commonly asked question and we’ve

⏹️ ▶️ John dealt with it before and you’re probably going to want to ask it to here here’s but how it was asked before and here’s what the

⏹️ ▶️ John answer is not that everybody’s going to go and see that but i love it that exists

⏹️ ▶️ Chris Latner well and it’s also hilarious that that started out as the commonly proposed list and then at some point it became

⏹️ ▶️ Chris Latner the commonly rejected list right

⏹️ ▶️ John cause if because if it’s commonly proposed obviously it’s not getting through and so you have to go to the rejected list

⏹️ ▶️ John if you’re thinking about asking to change funk to f n you know

Rust-style memory model?

⏹️ ▶️ John um i know you talked about this before but it is worth touching out again because many

⏹️ ▶️ John people have have asked me to ask you this um a swift and

⏹️ ▶️ John rustle memory model you you phrased it before as an add on feature

⏹️ ▶️ John for people who know that they need that type of thing but that it would not like the swift

⏹️ ▶️ John wouldn’t become a language in which all memories manage that way instead this would be a special purpose feature

⏹️ ▶️ John for particular roles what what roles do you think it’s suited

⏹️ ▶️ John for and why why is it not the right memory model for all swift

⏹️ ▶️ Chris Latner well so here’s here’s the way i look at swift in terms of memory management today so swift is using

⏹️ ▶️ Chris Latner arc it’s not using gc um if you want to talk about the tree i am happy to do that um

⏹️ ▶️ Chris Latner that’s its own rat hole we can fall into um arc i think is overall an

⏹️ ▶️ Chris Latner amazing default for swift because it gives you deterministic destruction it gives you

⏹️ ▶️ Chris Latner relatively predictable performance and the arch optimizers able to eliminate

⏹️ ▶️ Chris Latner most of the reference counting operations that happen the problem that i see with with

⏹️ ▶️ Chris Latner art as of today or say swift three is that

⏹️ ▶️ Chris Latner it is not a very uncontrollable model and so if for example

⏹️ ▶️ Chris Latner you have an inner loop and it turns out the arch optimizers doing a bunch of retains and releases and

⏹️ ▶️ Chris Latner you know that they’re not necessary because you know the objects are alive there’s nothing that

⏹️ ▶️ Chris Latner you can really do to to solve that problem unless you’re willing to drop down to something like

⏹️ ▶️ Chris Latner the unsafe operations that swift gives you for manipulating references to objects the

⏹️ ▶️ Chris Latner um and so it’s really kind of dissatisfying to me to have a really safe great memory model

⏹️ ▶️ Chris Latner that for performance reasons you have to drop down to un safety right this is a huge cliff and

⏹️ ▶️ Chris Latner is that also a huge complexity cliff that you have to drop into to solve that problem and

⏹️ ▶️ Chris Latner that’s not really great so the promise the dream is to instead say hey

⏹️ ▶️ Chris Latner well if you are a sufficiently advanced programmer and you know how the stuff works well the

⏹️ ▶️ Chris Latner we can give you new options instead of dropping down to unsafe constructs you can actually just use

⏹️ ▶️ Chris Latner more static type information in annotations in your code and so

⏹️ ▶️ Chris Latner you add a few annotations say hey compiler this is ok the compiler can then validate those

⏹️ ▶️ Chris Latner type annotations and check to make sure they’re correct that still memory safe is still guaranteed to

⏹️ ▶️ Chris Latner be ok but you’re paying for it in terms of more of this annotation on the code and its more

⏹️ ▶️ Chris Latner more heavy weight in terms of coding but what you get at that is the guarantee that

⏹️ ▶️ Chris Latner no arc operations are happening once you get to that model then it becomes really interesting because you can

⏹️ ▶️ Chris Latner say hey well in this inner loop i’m going i’ve found in my profile that it really does matter for performance

⏹️ ▶️ Chris Latner and the arco mizer is doing the wrong thing while i can add a few local annotations and now the code

⏹️ ▶️ Chris Latner is fast it’s guaranteed to be fast and the clients of my code don’t have to know about it right this

⏹️ ▶️ Chris Latner is an implementation detail and i think this will really bring us to the best of both worlds where you can

⏹️ ▶️ Chris Latner have memory safety you can have a um progressively disclose complex

⏹️ ▶️ Chris Latner complexity system where most people don’t have to know about it or think about it but you can get to really low

⏹️ ▶️ Chris Latner level performance guarantees that otherwise are impossible and once we do this i have a feeling there’ll

⏹️ ▶️ Chris Latner be certain communities of people that will only want to work in this model and these are the communities

⏹️ ▶️ Chris Latner that like rust predominantly so if you’re writing a colonel for example maybe you don’t want to have a reference

⏹️ ▶️ Chris Latner count your object at all and maybe you just want to have um you know you

⏹️ ▶️ Chris Latner say i will always use these annotations of my code pervasively and if if that happens then there’s

⏹️ ▶️ Chris Latner a couple of options that we can investigate we could say hey will if you mark this class with some attribute then

⏹️ ▶️ Chris Latner that that that prevents the compiler from ever doing reference counting and if it would ever do that it

⏹️ ▶️ Chris Latner just raises an error or we could even theoretically have a language dialect mode that said hey produce

⏹️ ▶️ Chris Latner produce an error any time it did an arc operation i don’t like language dialects and so we’d

⏹️ ▶️ Chris Latner have to find a way to handle that maybe it would be a warning and then they would upgrade it to an error

⏹️ ▶️ Chris Latner or something like that but i can imagine doing something like that and once we do that then i think

⏹️ ▶️ Chris Latner you get to a really interesting load where um those systems programming

⏹️ ▶️ Chris Latner type people that otherwise would be using src plus plus cannot use swift and that means

⏹️ ▶️ Chris Latner they only have to learn one language that means that they could use the same tool set that you know

⏹️ ▶️ Chris Latner the id and everything else that works great with swift it means that they

⏹️ ▶️ Chris Latner can scale and use the same language for different layers of their stack because

⏹️ ▶️ Chris Latner many applications have very low level pieces and very high level pieces and having them written in

⏹️ ▶️ Chris Latner different languages is really kind of gross i mean i think we’ve seen this in the objective c

⏹️ ▶️ Chris Latner community where one of the best and most annoying things about objective s is that it has s in it

⏹️ ▶️ Chris Latner right and so this has been hugely important for objective s and practice because if you are into a performance

⏹️ ▶️ Chris Latner problem with obvious message and you can always rewrite that algorithm in c and that’s really

⏹️ ▶️ Chris Latner really really important for objective c being successful and you know both

⏹️ ▶️ Chris Latner in the days of next on sixteen megahertz processors but also today for the lot

⏹️ ▶️ Chris Latner of code that people are writing um but it also means that that’s one of the problems that makes

⏹️ ▶️ Chris Latner it so that objective c and c are so tightly intertwined and so that you can’t actually take the part out of

⏹️ ▶️ Chris Latner objective c without producing a different language

Swift in the browser

⏹️ ▶️ John i’m waiting for swift in the web browser because it’s your only escape to begin of applications that have to have one language

⏹️ ▶️ John at the

⏹️ ▶️ John, Chris Latner higher level different language of the lower one

⏹️ ▶️ Chris Latner well there there that i think is a frontier that is probably the biggest

⏹️ ▶️ Chris Latner payoff because replacing javascript would be such an amazing service to the world

⏹️ ▶️ Chris Latner, John you

⏹️ ▶️ Chris Latner and art before it’s been tried yeah but it’s been tried and that’s where um you know i’m

⏹️ ▶️ Chris Latner putting my hope on the asm js the web assembly those kinds of efforts were its

⏹️ ▶️ Chris Latner um enabling languages like swift and swift swift compiles to

⏹️ ▶️ Chris Latner web assembly and asm js both have lvm backends and principals somebody could wire up swift to one

⏹️ ▶️ Chris Latner of those and go to town with it um uh if those end up winning

⏹️ ▶️ Chris Latner and they become a big big things then maybe that’ll be good enough

⏹️ ▶️ Chris Latner but i don’t really know i don’t have my crystal ball doesn’t go out to the point where javascript is

⏹️ ▶️ Chris Latner not in web browsers yeah

⏹️ ▶️ John that’s the difficult part is not the not the language mechanics it’s the getting getting something they can

⏹️ ▶️ John understand that in front of as many people as possible

⏹️ ▶️ Chris Latner it’s also very interesting to me so again i’m not a web developer and i’m not a i’m definitely not

⏹️ ▶️ Chris Latner an expert in the space but to me it seems that the trajectory of javascript has

⏹️ ▶️ Chris Latner basically made it into an intermediate language it’s not something that developers are writing as much

⏹️ ▶️ Chris Latner directly as they used to and so i see typescript in a lot of other languages that now compile down to javascript

⏹️ ▶️ Chris Latner and um you know they’re really using javascript like like a bit code representation not not

⏹️ ▶️ Chris Latner a source language that people are thinking about as much anymore and so i wonder if in five years

⏹️ ▶️ Chris Latner you know the natural conclusion of that is the javascript is just an asm js type of thing or

⏹️ ▶️ Chris Latner maybe web assembly does take over but but again i’m not the expert i don’t know where

⏹️ ▶️ Chris Latner that direction will go i know that some people love javascript so we’ll

⏹️ ▶️ John see on the topic of using languages other than java script to write javascript

⏹️ ▶️ John i have to say having done that several times that the tooling boy the tooling is not quite

⏹️ ▶️ John where you’d want it to be in terms of being able to write and debug

⏹️ ▶️ John and profile in the preferred language and not in the compiled down to javascript

⏹️ ▶️ John type language but yeah maybe that’ll be like stage seventeen in the swift world domination plan

⏹️ ▶️ John people

⏹️ ▶️ John, Chris Latner and

⏹️ ▶️ Chris Latner i think that’s always been true for preprocessors so i mean even in c if you do crazy things

⏹️ ▶️ Chris Latner the macro preprocessor and c you get debugging those things are so horrible

⏹️ ▶️ Chris Latner and ah that’s one of the reasons that we’ve been careful about not adding a macro system swift early

⏹️ ▶️ Chris Latner it just brings lots of interesting trade offs in terms of the bugging and developing and designing

⏹️ ▶️ Chris Latner experience

ABI stability

⏹️ ▶️ John one last thing on abi compatibility according to the timelines

⏹️ ▶️ John that i heard sketched out that a bi stability could be

⏹️ ▶️ John a thing before a sink you know or concurrency stuff lands

⏹️ ▶️ John and swift is there any is there any dependencies or chicken egg things involving

⏹️ ▶️ John there like in order to in other words in order to do you have to nail down some aspects of

⏹️ ▶️ John your concurrency model before you can commit to a bi stability or are they totally orthogonal

⏹️ ▶️ Chris Latner i think they’re totally orthogonal i think the memory ownership model has more of an impact on

⏹️ ▶️ Chris Latner abi stability because there’s some very low level things like how the

⏹️ ▶️ Chris Latner um the getters and setters are co generated for a property for example

⏹️ ▶️ Chris Latner that end up getting impacted by the ownership model that’s one of the reasons that were

⏹️ ▶️ Chris Latner that the swift team is actually actively designing and writing work on a proposal

⏹️ ▶️ Chris Latner for the memory ownership stuff right now it’s not so that it can be a swift for feature it’s

⏹️ ▶️ Chris Latner so that the abi stability work can be done in light of the ultimate model for

⏹️ ▶️ Chris Latner the memory ownership support and um i think concurrency is

⏹️ ▶️ Chris Latner not going to be something that impacts abi stability at all but we’ll see and

⏹️ ▶️ Chris Latner if so then the sufficiently smart programmers that work on swift will figure it out and

⏹️ ▶️ Chris Latner i’m sure it will be great i think it’s also an interesting question of whether abi stability will

⏹️ ▶️ Chris Latner be done for swift four because it’s a huge amount

⏹️ ▶️ Chris Latner of work the work is well under way of course but it’s also not clear to me that’s

⏹️ ▶️ Chris Latner really the the right or the most important thing for the swift community

⏹️ ▶️ Chris Latner and one of the things that ted has been a huge champion for and i think he’s right about is

⏹️ ▶️ Chris Latner that the most important thing right now for the swift community is making the compiler more reliable

⏹️ ▶️ Chris Latner making the air messages better making compile times faster and making

⏹️ ▶️ Chris Latner it scale better to large projects and um you know we’ll see how the rest of the before

⏹️ ▶️ Chris Latner schedule goes but i wouldn’t be surprised if at some point they decide that focusing on that

⏹️ ▶️ Chris Latner is more important than nailing ibis stability and swift for

Leaving it in good hands

⏹️ ▶️ Marco so you just mentioned ted that’s that’s ted kreme who is who’s now the lead of the swift project

⏹️ ▶️ Marco is that right

⏹️ ▶️ Chris Latner yeah he’s the project lead so ted ted has been managing the swift and clang

⏹️ ▶️ Chris Latner projects before that for a number of years he’s been at apple for ten years now he’s a

⏹️ ▶️ Chris Latner stanford phd graduate he built single almost single handedly

⏹️ ▶️ Chris Latner the first clang sack analyzer yeasted

⏹️ ▶️ Marco so so as i love that i’m saying this now as a swift developer

⏹️ ▶️ Marco you know should i be like you know as we saw when you announced that you were leaving apple that we saw some of the people

⏹️ ▶️ Marco in the community asking like should we be worried about swift future is swift in good hands now i mean you know it

⏹️ ▶️ Marco seems like most of us didn’t know ted at least didn’t know his name or or weren’t familiar with his contributions

⏹️ ▶️ Marco it does seem like he’s been doing quite a bit there anyway um should we be worried i

⏹️ ▶️ Chris Latner don’t think he should be worried at all i think swift is in amazing hands as is i mean

⏹️ ▶️ Chris Latner all the things that i am leaving behind an apple and quotes are in really good hands and that’s

⏹️ ▶️ Chris Latner one of the only reason i was comfortable in moving on in the case of ted

⏹️ ▶️ Chris Latner ted is a rock star he has been running the swift team and managing them for

⏹️ ▶️ Chris Latner i mean four or five years now um the the rules that we had

⏹️ ▶️ Chris Latner was that ted owned and ran his team and then reported to me and so i would

⏹️ ▶️ Chris Latner mess around and you know cause trouble by you know trying to get people to do

⏹️ ▶️ Chris Latner the exciting important thing that i thought and maybe in line with the actually important thing

⏹️ ▶️ Chris Latner and therefore i’d introduce chaos into the world but ted was always

⏹️ ▶️ Chris Latner the the stable rudder and the one that was really focused on getting the important things done and

⏹️ ▶️ Chris Latner he has a number of really exceptional engineers in the team people on the court team like doug gregor john mccall

⏹️ ▶️ Chris Latner joe joe graff dave abrahams these are all just amazingly brilliant

⏹️ ▶️ Chris Latner people and and also the team includes a bunch of other engineers that are equally

⏹️ ▶️ Chris Latner dedicated and also just totally amazing people to work with so the swift team is

⏹️ ▶️ Chris Latner i think one of apple’s biggest assets it’s it’s crazy how brilliant and dedicated they

⏹️ ▶️ Chris Latner are to the project and how excited they are to get to world domination one step at

⏹️ ▶️ Chris Latner a time

The shoemaker’s language

⏹️ ▶️ Casey coming back to kind of a more broad thing let’s say that and this is not meant

⏹️ ▶️ Casey to be a tongue in cheek reference to your next job this is just in general you know you’re at home your

⏹️ ▶️ Casey kids are in bed you know your wife is out or something like that and you want to just write some code you

⏹️ ▶️ Casey can’t use swift and you can’t use objective c what are you writing code in and i know that’s often dependent

⏹️ ▶️ Casey on what project you’re accomplishing but like what’s interesting to you these days that isn’t swift and isn’t objectives

⏹️ ▶️ Chris Latner oh also i mean i have a ton of different interests i mean i really love building ray tracers for

⏹️ ▶️ Chris Latner example and i’ve done a bunch of stuff like that um and i guess if i couldn’t use

⏹️ ▶️ Chris Latner swift for that then i would probably have to use people i

⏹️ ▶️ Chris Latner, John i

⏹️ ▶️ John was going to

⏹️ ▶️ John, Marco call

⏹️ ▶️ John, Chris Latner that

⏹️ ▶️ John, Marco but i

⏹️ ▶️ John wanted to give you a chance to not say

⏹️ ▶️ John, Marco plus plus

⏹️ ▶️ John, Casey but

⏹️ ▶️ John i remind people when they when they

⏹️ ▶️ John, Casey mention

⏹️ ▶️ John you know what is written in right

⏹️ ▶️ John, Chris Latner not much sea

⏹️ ▶️ John plus plus and not have your your answers plus plus

⏹️ ▶️ Chris Latner and and you know how much an in personal suffering it causes to have to be writing plus all day and

⏹️ ▶️ Chris Latner building a beautiful world for other people

⏹️ ▶️ John that’s where you toil down in the

⏹️ ▶️ Chris Latner mines yeah yeah it’s it’s a pain and suffering that’s worth it for the bigger bigger victory well

⏹️ ▶️ John that’s where swift comes from years having to use see plus plus i can do the same stuff but not feel this much pain

⏹️ ▶️ John that’s

⏹️ ▶️ Chris Latner exactly right i mean there’s a lot of suffering that that led to the swift needing to happen

⏹️ ▶️ Chris Latner um so but but it also it really depends i mean maybe if i was doing you know if i was a crazy person i’d

⏹️ ▶️ Chris Latner use pearl for something i don’t know from that insane

⏹️ ▶️ Casey well well you’d never be able to read it though nobody could

⏹️ ▶️ Chris Latner hey if it’s throwaway code then you never need to read it right

⏹️ ▶️ John i’ll

⏹️ ▶️ John, Chris Latner just

⏹️ ▶️ John wait i’ll just wait for my pearl six grammars to land gently and swift

⏹️ ▶️ Chris Latner well so i mean that’s another that is a great example of a pearl really has nailed

⏹️ ▶️ Chris Latner the string processing thing even in pearl five and i think perl six is even better and swift has

⏹️ ▶️ Chris Latner a lot to learn from it and that’s that’s something where swift or is really

⏹️ ▶️ Chris Latner learning from pearl so ethically is great

⏹️ ▶️ Casey oh please don’t give him any ammunition this is terrible i was enjoying this interview so much until this very moment

⏹️ ▶️ Chris Latner look look at it this way once this happens john will have no excuse

⏹️ ▶️ Marco oh he will find one

⏹️ ▶️ Casey nothing is so perfect that it can’t be complained about oh my goodness

Dynamic features

⏹️ ▶️ John ah this is a perennial topic on the swift marring lists about

⏹️ ▶️ John dynamic features and swift that are are more

⏹️ ▶️ John dynamic and objectives and less so and swift um in the swift community there’s

⏹️ ▶️ John a lot of angst about when if ever will swift allow me to essentially

⏹️ ▶️ John you know like what you said before you can write fortran in any language you can write objectives in any in any language people

⏹️ ▶️ John will try to write their code in swift but using models from

⏹️ ▶️ John objectives that require things like you know you

⏹️ ▶️ John know sending messages to objects that you know will receive them but the compiler can’t guarantee or you know having

⏹️ ▶️ John big heterogenous collections where you just like know everything’s id and it’ll be fine um

⏹️ ▶️ John i don’t even know how to frame this but i think that the main question has been

⏹️ ▶️ John are dynamic features possible and swift and are they coming and swift or is there

⏹️ ▶️ John some kind of philosophical divide where the most dynamic stuff that people really want

⏹️ ▶️ John will never be forthcoming not for technical reasons but just for philosophical and safety reasons

⏹️ ▶️ Chris Latner so so i’ve been pretty outspoken about this on swift evolution list so hopefully this isn’t a huge surprise but

⏹️ ▶️ Chris Latner i don’t think there’s any tension between dynamic features and swift the

⏹️ ▶️ Chris Latner a lot of people want to make hay and argue about how it would be impossible to do

⏹️ ▶️ Chris Latner responders pick your future the in

⏹️ ▶️ Chris Latner swift and the the worst case scenario frantic blogpost i’ve seen

⏹️ ▶️ Chris Latner are are things that are along the lines of someday apple will rewrite all of its

⏹️ ▶️ Chris Latner frameworks in swift and then it will be impossible to write res responder chains and then bad

⏹️ ▶️ Chris Latner things will happen and then we’ll be back in the days of mass or some other bad things

⏹️ ▶️ Chris Latner on the discussion ends up being um i think this blew up most

⏹️ ▶️ Chris Latner recently right before wwdc this year and it was really interesting to watch

⏹️ ▶️ Chris Latner the blog posts that people were flying around because everybody had a different idea of

⏹️ ▶️ Chris Latner what dynamic meant

⏹️ ▶️ Chris Latner, Casey none of

⏹️ ▶️ Chris Latner them really so apple’s not going to counter blog

⏹️ ▶️ Chris Latner somebody and like denounce somebody’s blog on somebody’s post and

⏹️ ▶️ Chris Latner it’s kind of bad for him to do that but i thought it was very interesting and odd that none of those people actually came to the swift

⏹️ ▶️ Chris Latner evolution list which is the right place to do that and asked about it they all just wanted to make these

⏹️ ▶️ Chris Latner inflamed blogposts to various skins um so if you get to my opinion my opinion is that

⏹️ ▶️ Chris Latner none of those are intention with swift’s current design it’s just a matter of prioritization

⏹️ ▶️ Chris Latner and the major problem that swift has is again there’s so much work

⏹️ ▶️ Chris Latner to do there’s concurrency model there’s actors there’s systems programming there’s scripting

⏹️ ▶️ Chris Latner there’s lots of little things that go in there’s better better things for static

⏹️ ▶️ Chris Latner analysis introducing type state in language there’s there there’s pre post conditions

⏹️ ▶️ Chris Latner there are so many things that will be bricks in the house of swift

⏹️ ▶️ Chris Latner that we want to build that need to happen that it doesn’t really make sense

⏹️ ▶️ Chris Latner to spend a lot of time building dynamic features so that apple could theoretically

⏹️ ▶️ Chris Latner someday do something right where the swift team is much more focused on the practical necessities

⏹️ ▶️ Chris Latner of solving the real world problems here and now in front of people and um

⏹️ ▶️ Chris Latner dynamic features like many other things will just kind of flop in place when the team

⏹️ ▶️ Chris Latner has time to design and roll them out and so you will be able to someday or

⏹️ ▶️ Chris Latner i expect that you will be able to reflect over all mat the methods in that

⏹️ ▶️ Chris Latner class has for example today even the swift compilers generating all the metadata so you can

⏹️ ▶️ Chris Latner reflect over all the data members and you and your values we just don’t have an api wrapped

⏹️ ▶️ Chris Latner around that but that metadata is what the ex co memory heap viewer uses

⏹️ ▶️ Chris Latner for example and so there’s a lot of that kind of stuff being put in place but um just

⏹️ ▶️ Chris Latner hasn’t had time to fully bake out yet and when it when it does come in i think it’s going to be really exciting and will

⏹️ ▶️ Chris Latner open more doors for new kinds of patterns that people can do and a lot of those will be familiar to objective

⏹️ ▶️ Chris Latner c programmers but they’ll also be super useful for things that people really haven’t done an objectives

⏹️ ▶️ Chris Latner so i don’t i don’t see a lot of tension there though it’s just a priori ation of question

⏹️ ▶️ John i think where where people are coming from is that in terms of prioritization because if you’re used to doing

⏹️ ▶️ John things with certain sort of design patterns broadly speaking an objective sea and you want to come

⏹️ ▶️ John and implement those same patterns and swift and you find that you can’t because you’re lacking some feature

⏹️ ▶️ John it feels like there’s a barrier up and that’s that’s getting back to you of writing writing your swift and objective sea style

⏹️ ▶️ John and that’s more of a barrier that they retreat back to object to see as i can write it the way i want i to read it right and it works

⏹️ ▶️ John an objective see when i try to write it that way and swift it doesn’t work for me your choice is to change the way you write

⏹️ ▶️ John it to be a better fit for what swift has or to go back to objective see um so i don’t

⏹️ ▶️ Chris Latner i don’t agree with that though because um swift does support all the features for

⏹️ ▶️ Chris Latner dynamic dispatch and method lookup and everything else that objective c does it just requires

⏹️ ▶️ Chris Latner you to use the objective c subset of the language because it exposes it through the run time

⏹️ ▶️ John right that that’s that’s that’s that’s the tension because they’re like oh i want to write it in pure swift

⏹️ ▶️ John like as if there’s something special and magical about not using objective c runtime for

⏹️ ▶️ John you know what i mean you do you do get a medal for that

⏹️ ▶️ Chris Latner, John yeah

⏹️ ▶️ Chris Latner i guess it makes some people feel good i mean there are i can’t

⏹️ ▶️ Chris Latner really count on that but i just don’t think that it that it’s actually fair to say you have to fall back

⏹️ ▶️ Chris Latner to writing objective seacoast

⏹️ ▶️ Chris Latner, John i no no

⏹️ ▶️ John i’m just i’m

⏹️ ▶️ John, Chris Latner trying to

⏹️ ▶️ John i didn’t write one of these block posts so i’m trying i’m trying to express what i saw in them because that a was lot a lot of the

⏹️ ▶️ John conservatives like the they want to do it they want to do it like the new way and the right way and part

⏹️ ▶️ John of doing that is not you know objective seeing everything i feel like oh that feels like a compromise in the old way so that they’re

⏹️ ▶️ John they are setting their own goalposts for themselves arbitrarily to try to enter into

⏹️ ▶️ John this new world and you know they they they want to jump in with both feet or not at all

⏹️ ▶️ John and and some of them might end up bailing but i think the

⏹️ ▶️ Chris Latner i mean the way the way i look at it is um i look at that as an area where the language is

⏹️ ▶️ Chris Latner not fully picked out it’s not fully serving their needs and i think that’s really unfortunate

⏹️ ▶️ Chris Latner right and i’m not going to say that i think that that’s not a good thing i want there to be an awesome reflection

⏹️ ▶️ Chris Latner model i want there to be awesome features for sending messages like they’re used to i just

⏹️ ▶️ Chris Latner want to be developed and designed in the right way and at the same time they’re being annoyed

⏹️ ▶️ Chris Latner that they can’t do those things there are a lot of other people being annoyed about compile times right

⏹️ ▶️ Chris Latner, Marco yeah no i know

⏹️ ▶️ Chris Latner and and what what we have to do is balance between you know just picking

⏹️ ▶️ Chris Latner two random things where does the engineering effort go and um and that’s

⏹️ ▶️ Chris Latner never a black and white thing there’s never a right answer it’s all based on a gut and judgment

⏹️ ▶️ Chris Latner and guesses listening the to the community talking to people and that’s one of the reasons why

⏹️ ▶️ Chris Latner i think the swift team is really a phenomenal is that it really cares it really cares about what

⏹️ ▶️ Chris Latner people are doing it read you know the various people read the blog post there are people on twitter like

⏹️ ▶️ Chris Latner the engagement between the team and the community is really high because people care

⏹️ ▶️ Chris Latner and there’s no management dictated apple that says that you know this engineer should be on twitter

⏹️ ▶️ Chris Latner all the time talking to people it’s certainly not the case that’s because of passion from the developer and it’s

⏹️ ▶️ Chris Latner because they really care and i think that that’s the thing that is so amazing about the swift team is

⏹️ ▶️ Chris Latner just a how important it is in terms of customer service and understanding

⏹️ ▶️ Chris Latner understanding what people are working through and that insight is what guides

⏹️ ▶️ Chris Latner the priority decisions and guides the trade offs that have to be made all the time because nothing

⏹️ ▶️ Chris Latner really is as clear as you’d like it to be

Community influence

⏹️ ▶️ Casey so building on that when all of us were going back and forth and i was tangentially

⏹️ ▶️ Casey involved with this we were going back and forth but oh it’s swift isn’t dynamic it must be dynamic

⏹️ ▶️ Casey is it fair to say that that does eventually make its way inside of apple just and i’m just in

⏹️ ▶️ Casey that you guys are aware of it that that that that’s talked about in some way shape or form because

⏹️ ▶️ Casey it’s nice to know and i suspect that that it does but it’s nice to know that that when the community

⏹️ ▶️ Casey gets perturbed whether or not that that that feeling is justified that at least somebody

⏹️ ▶️ Casey inside apple has hurt it whether or not they can respond to it at least they’ve heard it so when we

⏹️ ▶️ Casey all get our our our pants all twisted up does that does that make

⏹️ ▶️ Casey it in

⏹️ ▶️ Chris Latner absolutely i mean the there are a ton of people at apple to care about what’s happening in the developer

⏹️ ▶️ Chris Latner community and and elsewhere right and that’s that’s one of the the the things about apple’s

⏹️ ▶️ Chris Latner approach in terms of not commenting on things that can be frustrating because you don’t know but

⏹️ ▶️ Chris Latner again there’s so many people at apple that really do care and that saw it and

⏹️ ▶️ Chris Latner you know again i wish those people that were really worried about it would come to swift

⏹️ ▶️ Chris Latner evolution and ask because then we have a discussion about it but that wasn’t happening for some reason

⏹️ ▶️ Chris Latner but certainly there was a ton of people that saw the blog and i’m sure there are tons of engineers at apple that feel

⏹️ ▶️ Chris Latner the same way and wish the priorities were different and i think that the engineering

⏹️ ▶️ Chris Latner community inside of apple reflects quite closely to the engineering community outside of apple as well

⏹️ ▶️ Chris Latner um and i don’t think that that i hope that’s not surprising

⏹️ ▶️ Chris Latner, John right

⏹️ ▶️ Chris Latner all has many different engineers with different feelings and different opinions and and i think that’s

⏹️ ▶️ Chris Latner a really good thing if if it were a super monoculture or something like that that’d probably be very

⏹️ ▶️ Chris Latner unhealthy

RxSwift

⏹️ ▶️ Casey taking a little bit of a turn so i started writing swift almost

⏹️ ▶️ Casey exactly a year ago now and the project that i’m doing at work we’re using our ex swift and

⏹️ ▶️ Casey and quote unquote reactive programming and i’m curious have you looked into that at all and

⏹️ ▶️ Casey do you have any particular thoughts on it does it seem barbaric to you does it seem clever does it just seem like

⏹️ ▶️ Casey an odd choice yeah what what is your take on this whole rx thing

⏹️ ▶️ Chris Latner yes i’ve definitely seen it i have no real world you usage experience

⏹️ ▶️ Chris Latner, Casey sure

⏹️ ▶️ Chris Latner sure most of my opinion is based on reading blogs and reading people talking about how awesome

⏹️ ▶️ Chris Latner it is while not

⏹️ ▶️ Chris Latner, John talking about

⏹️ ▶️ Chris Latner the problems from what i gather it seems like it

⏹️ ▶️ Chris Latner is a way of letting you write a lot less code and code that often works

⏹️ ▶️ Chris Latner better the first time and i can see how that’s super appealing it also seems like it’d be really challenging to debug it

⏹️ ▶️ Chris Latner and maintain it and so i don’t know between the two between the pros and cons help balances

⏹️ ▶️ Chris Latner out um um if i were writing a lot of high level lapse i’d probably try it out on an ap or

⏹️ ▶️ Chris Latner two and see if i liked it but um but aside from that i don’t really

⏹️ ▶️ Chris Latner have a good insight either way if it’s the right thing to do or not

⏹️ ▶️ Casey sure sure absolutely you mentioned a second ago that you see some problems and you mention debugging

⏹️ ▶️ Casey is there anything else that jumps out at you as being a big concern or or is it just that it’s so different

⏹️ ▶️ Chris Latner i mean i’m not afraid of different things i think that it’s it’s more of um i mean

⏹️ ▶️ Chris Latner the questions i’d raise and this is out of ignorance not out of sure sure fear but you know what

⏹️ ▶️ Chris Latner is the community doing is there a support line or is the

⏹️ ▶️ Chris Latner you know is it changing and evolving in a way that is good or bad and these are just

⏹️ ▶️ Chris Latner things i don’t know because i haven’t used it but i’ve nothing against the rx community at all and i’ve seen

⏹️ ▶️ Chris Latner a lot of really cool things they’ve done and i’ve read many of the the positive posts in rx

⏹️ ▶️ Chris Latner and in rack native and many of the other things where people are using reactive techniques so

⏹️ ▶️ Chris Latner and reactive cocoa has also been around for quite a while and i mean i think that’s a really interesting

⏹️ ▶️ Chris Latner application that maybe i became a lot easier when swift came out than doing an objective s

⏹️ ▶️ Casey absolutely

⏹️ ▶️ Chris Latner so i think that it’s great that swift can support different kinds of programming models like that because um

⏹️ ▶️ Chris Latner you know if a awesome new right answer to some problem comes out you’d hope that

⏹️ ▶️ Chris Latner you know that your system can support it and can make it really elegant and beautiful

GC vs. ARC

⏹️ ▶️ John i feel kind of like this is fighting you know the last war instead of the

⏹️ ▶️ John current war but you mentioned garbage collection for sark a bunch of times and obviously

⏹️ ▶️ John that ship has sailed but i would love for you to give

⏹️ ▶️ John a reasonable summary of what the trade offs were there because object to see had garbage

⏹️ ▶️ John collection as you mentioned a

⏹️ ▶️ John, Casey sort of yeah i was

⏹️ ▶️ John there um and eventually objectives dropped the garbage selection and got ark

⏹️ ▶️ John and of course swift doesn’t have garbage traction at all can you talk about the trade offs there and why swift

⏹️ ▶️ John is the way it is

⏹️ ▶️ Chris Latner would you like a comparison of arc against the garbage collection objective sea had

⏹️ ▶️ Chris Latner or garish collection in theory

⏹️ ▶️ John you could pick garbage collection in a language perhaps not as burdened as objective with sea backwards

⏹️ ▶️ John compatibility but you know that’s worth mentioning as well i think so i think

⏹️ ▶️ Chris Latner that objectives had a system based on lebara lebara had a bunch of implantation concerns and

⏹️ ▶️ Chris Latner other things that i think don’t reflect that don’t obviously reflect onto

⏹️ ▶️ Chris Latner the ultimate garbage collector that you’d ever want to have and so i don’t think the comparing against that

⏹️ ▶️ Chris Latner is interesting but let me turn around so what why do you think our collection is interesting what is compelling

⏹️ ▶️ Chris Latner about garbage collection beyond eric

⏹️ ▶️ John well the idea that memory management is completely out of the hands of the programmer and

⏹️ ▶️ John that some magical fairy behind the scenes will make it all good for you and that you know obviously

⏹️ ▶️ John what you’re giving up is what you mentioned before that you know even with arc you lack some amount of control that

⏹️ ▶️ John you’ll need to to have a language that becomes a system programing language obviously give that up with the garbage collection because you’re not

⏹️ ▶️ John gonna be doing assistant shogun language and a garbage collection with a garbage collector behind it although

⏹️ ▶️ John i think microsoft tell some projects to do that that singularity project but they were trying to build the hall ass off of garbage

⏹️ ▶️ John collection not quite sure how that’s that’s going

⏹️ ▶️ Chris Latner great but even if even if you ignore the the assistance programming side of things because i think it’s fair to say a

⏹️ ▶️ Chris Latner lot of people don’t care about that um so garbage collection is proven

⏹️ ▶️ Chris Latner in the application space for java for example right um and pearl

⏹️ ▶️ Chris Latner but

⏹️ ▶️ Chris Latner, John does

⏹️ ▶️ John reference counting come on

⏹️ ▶️ Chris Latner oh that’s right it’s python that uses reference counting plus cycle collector um so

⏹️ ▶️ Chris Latner but let me ask you again so he said it means that you don’t have to think about memory is that true

⏹️ ▶️ John well that’s the pitch the pitch is that the programmer doesn’t have to think about it they have to think about it when the garbage

⏹️ ▶️ John, Chris Latner collector

⏹️ ▶️ John i understand the pitch but is it true when the garbage collector starts doing things you don’t want then all of a

⏹️ ▶️ John sudden you do have to think about it but then there’s almost nothing you can do about it

⏹️ ▶️ Chris Latner so so here’s here’s the way i look at it and as you said the ship has somewhat sailed

⏹️ ▶️ Chris Latner i am totally convinced that arc is the right way to go up front it is better

⏹️ ▶️ Chris Latner in a whole bunch of different ways it gives you deterministic behavior so you don’t get

⏹️ ▶️ Chris Latner you know it doesn’t have the unpredictable stutter problem that people like to bash on gc’s

⏹️ ▶️ Chris Latner um the star problem to me isn’t really the issue even though that’s

⏹️ ▶️ Chris Latner what g c haters will bring up all the time it’s more about being able to reason about when the

⏹️ ▶️ Chris Latner memory goes away and the most important aspect of that is the art gets rid

⏹️ ▶️ Chris Latner of finalizer so if you use a garbage collected language you use finalizer finalizer are the

⏹️ ▶️ Chris Latner thing that gets run when your object gets destroyed finalizer have so many problems there are

⏹️ ▶️ Chris Latner entire there’s entire bodies of work talking about how to work around problems with finalizer

⏹️ ▶️ Chris Latner for example the finalizer gets around on the wrong thread has to get run multiple times the object can get resurrected

⏹️ ▶️ Chris Latner while the finalizer is running um it happens noted trist cally later you can’t

⏹️ ▶️ Chris Latner count on it and so you can’t use it for resource management for database handles and things

⏹️ ▶️ Chris Latner like that for example there are so many problems with finalizes that arc just defines

⏹️ ▶️ Chris Latner a way by having deterministic destruction beyond that

⏹️ ▶️ Chris Latner arc though so the common another common thing

⏹️ ▶️ Chris Latner there there are two two arguments that people make against arc and in favor of a trace and garbage

⏹️ ▶️ Chris Latner collector one of which is that arc adds overhead because you have retainer release operations that run

⏹️ ▶️ Chris Latner and that is true the other is that you have to think

⏹️ ▶️ Chris Latner about cycles in arc because it doesn’t automatically collect cycles and that is also true

⏹️ ▶️ Chris Latner and that the robot i give to people is that those problems are

⏹️ ▶️ Chris Latner also true in garbage collection just in different ways so in a garbage collector for

⏹️ ▶️ Chris Latner example people don’t think about it but garbage collection injects additional code into your

⏹️ ▶️ Chris Latner application just like arc does and so um you know they’re made different garbage collection algorithms

⏹️ ▶️ Chris Latner not all of them are the same but um the most modern

⏹️ ▶️ Chris Latner garbage collectors that use a nursery for short lifetime objects and then promote them out

⏹️ ▶️ Chris Latner that are generational use something called a right barrier and a right barrier is

⏹️ ▶️ Chris Latner every time you store to a property of an object say

⏹️ ▶️ Chris Latner you have to run additional code garbage collectors also need the ability to stop all the threads or at least to

⏹️ ▶️ Chris Latner be able to stop threads at some point in time and they need to be able to do so within a specific time

⏹️ ▶️ Chris Latner bound because they don’t want the garbage collector to take forever the artifact that is the

⏹️ ▶️ Chris Latner typical garbage collectors in java for example will introduce what’s called a safe point into

⏹️ ▶️ Chris Latner loops and so now in your loops extra code is being run because of the garbage collector

⏹️ ▶️ Chris Latner and on more aggressive garbage collection algorithms for example i was reading a blog post

⏹️ ▶️ Chris Latner recently about gos tricolor algorithm um they they are touting the advantage

⏹️ ▶️ Chris Latner of you get really low latency and you get the ability to guarantee

⏹️ ▶️ Chris Latner response times in a more fine grained level than most garbage collectors but to do that they use this

⏹️ ▶️ Chris Latner tricolor algorithm which dramatically lowers throughput and that dramatically lowers throughput because they’re

⏹️ ▶️ Chris Latner doing almost exactly the same kinds of operations that arc is doing the problem

⏹️ ▶️ Chris Latner that it then introduces though is that these operations that the garbage collector is introducing are

⏹️ ▶️ Chris Latner sometimes but not nearly as well optimization as the arch overhead that the arc optimizer

⏹️ ▶️ Chris Latner applies to and furthermore there’s no kind of out on it so with arc i think and hope that

⏹️ ▶️ Chris Latner the ownership model will give people the ability to take control of those overheads and if it becomes a

⏹️ ▶️ Chris Latner problem in practice or if they are just that kind of person they can take full control over the lifetime of their objects

⏹️ ▶️ Chris Latner and then know the arc will never happen in the garbage clutter you don’t have that so the performance

⏹️ ▶️ Chris Latner side of things i think is still up in the air because arc certainly

⏹️ ▶️ Chris Latner does introduce overhead um some of that’s unavoidable

⏹️ ▶️ Chris Latner at least without lots of anita ions in your code but also i think that arc has not

⏹️ ▶️ Chris Latner done yet a ton of energy has been poured into research for garbage collection particularly

⏹️ ▶️ Chris Latner since java has come up there have been hundreds of papers written in the academic circles tons of work and

⏹️ ▶️ Chris Latner hotspot and other other java implementations to do different tweaks

⏹️ ▶️ Chris Latner in different tunings and different new kinds of algorithms and garbage collection and that work really hasn’t

⏹️ ▶️ Chris Latner been done for art yet and so i think that there’s still a big future ahead on the programming

⏹️ ▶️ Chris Latner side of things the cycle side of things i think it’s also a really interesting question of how much

⏹️ ▶️ Chris Latner should people think about memory when you when you when i was bathing you a little

⏹️ ▶️ Chris Latner bit you said that the great thing about garbage collection is that you don’t have to think about memory but of course

⏹️ ▶️ Chris Latner we know that’s not true right because if you have a reference to some big object graph that you didn’t mean to

⏹️ ▶️ Chris Latner keep around maybe it’s in your undo stack then you will quote unquote leak that memory right

⏹️ ▶️ Chris Latner and that that’s true of a garbage collector that’s true of arc as well it’s just any

⏹️ ▶️ Chris Latner any automatic memory management approach has that problem and

⏹️ ▶️ Chris Latner so that that is a really interesting thing that there’s

⏹️ ▶️ Chris Latner this question of if you’re building a large scale system do you want people to

⏹️ ▶️ Chris Latner never think about memory do you want them to think about memory all the time like they did in

⏹️ ▶️ Chris Latner object to see classic retain and release may retain release or do you want something in the middle

⏹️ ▶️ Chris Latner and i think the arc strikes a really interesting balance either whether it’s in objectives

⏹️ ▶️ Chris Latner or in swift where i look at manuel retainer releases

⏹️ ▶️ Chris Latner being a very imperative style of memory management or male can free all these things where you are

⏹️ ▶️ Chris Latner telling the code line by line this is where you should do a reference count operation this is where you should release the

⏹️ ▶️ Chris Latner memory this is what you should do at this point in time arc then takes that model and bubbles it up a

⏹️ ▶️ Chris Latner big step and it makes it being it makes it be a very declarative model so instead of telling the compiler

⏹️ ▶️ Chris Latner or the yeah telling the compiler that this is the place you should do retain you instead

⏹️ ▶️ Chris Latner say this is an owning relationship and the cool thing about that to me is that not only does that

⏹️ ▶️ Chris Latner get rid of the mechanics of maintaining reference counting and define away tons of bugs by doing

⏹️ ▶️ Chris Latner that it also means that it is now explicit in your code what your intention was and that’s

⏹️ ▶️ Chris Latner something that people who maintain your code benefit from and so by saying that i have a weak

⏹️ ▶️ Chris Latner point or two the parent object of my my thing um that’s a really

⏹️ ▶️ Chris Latner important relationship to know about and as you’re looking at the code you’re maintaining the code having that the explicit

⏹️ ▶️ Chris Latner is very valuable because that talks about the the the relationship between values and

⏹️ ▶️ Chris Latner to me again with the goal of being able to write large scale applications and swift i think that’s really useful

⏹️ ▶️ Chris Latner i also don’t think it’s hugely burdensome though it is definitely part of the learning curve of learning

⏹️ ▶️ Chris Latner how swift works that um you know has to be balanced in there as well and so

⏹️ ▶️ Chris Latner i

⏹️ ▶️ Chris Latner, Casey don’t know

⏹️ ▶️ Chris Latner i mean i look at it as there are are clear advantages

⏹️ ▶️ Chris Latner in terms of allowing swift to scale down to systems that can’t tolerate

⏹️ ▶️ Chris Latner having a garbage collector for example a few one write firmware and swift i think it

⏹️ ▶️ Chris Latner does provide a better programming model where programmers think just a little bit about memory and

⏹️ ▶️ Chris Latner i think that you know going forward it provides a really high performance model

⏹️ ▶️ Chris Latner that you can get better than better than garbage collection in almost every way so i think that

⏹️ ▶️ Chris Latner in terms of trade offs it’s the right one to push forward the other i guess third piece that

⏹️ ▶️ Chris Latner um that garbage collection is really bad about is kind of a show stopper

⏹️ ▶️ Chris Latner for swift which is inner interoperability with sea code so if you’ve ever worked with java

⏹️ ▶️ Chris Latner or with other similar garbage collected languages one of the major advantages the

⏹️ ▶️ Chris Latner garbage collectors give you is that they move objects and they need to do that so they can compact those objects

⏹️ ▶️ Chris Latner so that they can then efficiently do do allocations but the problem is that once you start moving

⏹️ ▶️ Chris Latner objects around if you are interfacing with sea code you can’t have some random sea code having a pointer

⏹️ ▶️ Chris Latner to your object and have it move because then you get a dangling pointer and so once you get

⏹️ ▶️ Chris Latner down that line you end up with things like jay and i the java native interface where you have to explicitly

⏹️ ▶️ Chris Latner pin things you have to maintain them it’s very complicated it’s really buggy

⏹️ ▶️ Chris Latner and art completely defines this away by im just saying that okay something’s in

⏹️ ▶️ Chris Latner memory it has predictable lifetime you can reason about it it

⏹️ ▶️ Chris Latner provides tools for dealing with unsafe pointers and things like that and that makes the interoperability with

⏹️ ▶️ Chris Latner existing sea code but also with objective s and maybe some day caples plus code really simple really

⏹️ ▶️ Chris Latner natural and really efficient and i think that’s a huge advantage that art provides that really

⏹️ ▶️ Chris Latner would be impossible to do with with the garbage collector so that’s

⏹️ ▶️ Chris Latner my opinion i mean i think reasonable

⏹️ ▶️ Chris Latner, Marco people just

⏹️ ▶️ Chris Latner agree obviously but it’s something that does come up now and

⏹️ ▶️ John then or i used to come up anyway i’m convinced i think you should use are swift get on that

⏹️ ▶️ John there we go

⏹️ ▶️ Casey chris thank you so very very very much for coming on the show obviously we are

⏹️ ▶️ Casey not an interview show as as listeners have discovered over the last hour or two but uh but

⏹️ ▶️ Casey to take your time on what is presumably a very busy time of your life and spend it

⏹️ ▶️ Casey with us three knuckleheads i really appreciate it and it was very kind of you to do and uh you know

⏹️ ▶️ Casey hopefully this won’t be the last time that we’ll hear you on on a show or maybe even this show we’ll see so thank

⏹️ ▶️ Casey you chris i really appreciate it yeah well thank you for

⏹️ ▶️ Chris Latner having me i’ve had fun even though i’m terrified and probably made a fool out of myself

⏹️ ▶️ Casey not at all trust me that’s that’s normal i’m still trying to get over that plus that’s our job

⏹️ ▶️ Marco all right thanks a lot to our three sponsors this week ero square space and audible and we will

⏹️ ▶️ Marco see you next week

Ending theme

⏹️ ▶️ Casey now the show is over they didn’t even mean to begin because

⏹️ ▶️ Casey it was accidental it was accidental

⏹️ ▶️ Casey john didn’t do any research marco and casey wouldn’t let him because

⏹️ ▶️ Casey it was accidental it was accidental

⏹️ ▶️ Casey but you can find the show now at p dot fm

⏹️ ▶️ Casey and if you’re

⏹️ ▶️ John into twitter you could follow them c a

⏹️ ▶️ John s e y

⏹️ ▶️ Casey l i assess that’s k c s m a r c to a r

⏹️ ▶️ Casey m ant marco roman s i r a

⏹️ ▶️ Casey c siracusa

Post-show: Making splinters

⏹️ ▶️ John we didn’t talk about woodworking stuff

⏹️ ▶️ Chris Latner yeah making splinters is fun

⏹️ ▶️ John what what kind of wood was that table made adam

⏹️ ▶️ Chris Latner it’s it’s walnut

⏹️ ▶️ John that’s got to be tough that’s a lot that’s a lot of cutting that’s pretty hard wood right

⏹️ ▶️ Chris Latner yeah i mean it takes time but it’s fun it’s one of these one of these areas where you can learn

⏹️ ▶️ Chris Latner a lot about it over time and keep going deeper and deeper in different spaces and there’s never you never

⏹️ ▶️ Chris Latner know everything so it’s it’s a lot of fun to dive into a woodworker it’s also very very different than sitting

⏹️ ▶️ Chris Latner in front of a computer all day and you actually get to make something with your hands and you get to build a much higher chance

⏹️ ▶️ Chris Latner for dismemberment that

⏹️ ▶️ Marco that is true that is true then i think it’s interesting when when programmers have like incredibly

⏹️ ▶️ Marco analogue hobbies

⏹️ ▶️ Chris Latner it’s also hilarious because the woodworking community is going through this whole and thing

⏹️ ▶️ Chris Latner, Casey they’re not

⏹️ ▶️ Chris Latner, John turning

⏹️ ▶️ Chris Latner it into a very programmed thing and people always say well why don’t you go to s and s and do blah blah

⏹️ ▶️ Chris Latner i’m like but that’s exactly what i’m escaping i don’t want to have to program my

⏹️ ▶️ Marco love that you can’t even escape like the community arguments over standards

⏹️ ▶️ John so to make it so you just cut down a tree and you throw it into your workshop and then out comes the table

⏹️ ▶️ Chris Latner yeah well that’s that’s that’s the funny thing about people is that people are all the same they just don’t want to

⏹️ ▶️ Chris Latner notice and agree to that yeah you get to very different communities and they think they’re all different

⏹️ ▶️ Chris Latner but they’re actually the same at root

Post-show: Neutral

⏹️ ▶️ Casey so chris you’re obviously changing careers while not careers necessarily

⏹️ ▶️ Casey changing employers would you consider yourself a car person

⏹️ ▶️ Chris Latner well that’s a funny question i mean i i obviously need a car

⏹️ ▶️ Chris Latner cart but i’m what i consider to be an un car person i want

⏹️ ▶️ Chris Latner to accelerate the path to cars being appliances that solve people’s problems

⏹️ ▶️ Chris Latner and i am personally not the kind of guy who loves doing oil changes and fiddling around with

⏹️ ▶️ Chris Latner them i just want something that is reliable that works ideally drives me to where i want to go

⏹️ ▶️ Chris Latner and i don’t have to think about it it’s just you know solving my problems it’s not something i have to

⏹️ ▶️ Chris Latner care for feed and maintain so that that’s kind of the way i look at cars can you drive

⏹️ ▶️ Chris Latner a stick i did drive a stick before i got my tussle a few years ago so

⏹️ ▶️ Chris Latner yeah it

⏹️ ▶️ Casey all comes clear now i mean

⏹️ ▶️ Marco really from the point of view like it of kind of sounds like you you want to make cars boring

⏹️ ▶️ Marco in all in a good way really and that’s a noble goal and i think i can see why

⏹️ ▶️ Marco you went to tesla however it is kind of funny that like tesla is in my opinion clearly

⏹️ ▶️ Marco the most exciting car company that the world has known for quite some time and so to go

⏹️ ▶️ Marco there while while having you know such like an almost nonchalant opinion about

⏹️ ▶️ Marco cars is interesting to me

⏹️ ▶️ Chris Latner yeah well i admit that i never considered going to work at a car company

⏹️ ▶️ Chris Latner before but that’s because i always considered car companies to be um

⏹️ ▶️ Chris Latner you know not not in need of the kinds of skills that i bring but autopilot i think is really

⏹️ ▶️ Chris Latner exciting and really big problem and it kind of fits with my my

⏹️ ▶️ Chris Latner desire to solve nearly impossible problems and take on new things and so

⏹️ ▶️ Chris Latner i’m i’m really excited about it

⏹️ ▶️ Marco so i’m a little curious on that note we’ve talked on this show

⏹️ ▶️ Marco before about you know whether we think that that full self driving

⏹️ ▶️ Marco cars you know basically when and whether we think those will exist like in what kind of time frame are we talking a decade

⏹️ ▶️ Marco are lifetimes ever because you know it’s one thing to make something that can work on clearly marked

⏹️ ▶️ Marco highways it’s another thing that can make something work where john lives where there’s where there’s ice all over

⏹️ ▶️ Marco the road for most of the year and so like there’s no more land markings there’s barely any flat road surfaces

⏹️ ▶️ Marco or you have all these different ambiguities that you have in in real world roads

⏹️ ▶️ Marco do you think you know again obviously this is not any kind of official capacity as

⏹️ ▶️ Marco an about to be tess employee uh do you think big picture

⏹️ ▶️ Marco that we will see completely self driving cars capable of driving on effectively all roads

⏹️ ▶️ Marco within say the next decade and if not maybe within our lifetimes

⏹️ ▶️ Chris Latner yeah i think that it’s very possible within the next decade and hopefully that’s a long

⏹️ ▶️ Chris Latner long a long view but keep in mind the goal is to drive

⏹️ ▶️ Chris Latner better than a human and significantly better than a human and i think one of the things

⏹️ ▶️ Chris Latner that gives me confidence in this is that it’s not an even playing field

⏹️ ▶️ Chris Latner because the autonomous cars have more sensors than humans do you know

⏹️ ▶️ Chris Latner they have they have a radar for example and that means that they’re capable of doing things that humans

⏹️ ▶️ Chris Latner just physically can’t and there’s a huge technology problem there’s huge software

⏹️ ▶️ Chris Latner problems this is not an overnight kind of a thing that you wake up and solve immediately

⏹️ ▶️ Chris Latner but i have confidence that could be solved certainly within a decade

⏹️ ▶️ Casey well the good news is it’s not going to take a lot to be better than your average driver from

⏹️ ▶️ Casey massachusetts because that’s a pretty low bar

⏹️ ▶️ John no because they know how to navigate these

⏹️ ▶️ John, Casey intersections like seven

⏹️ ▶️ John different exits all at different angles some of which are one way none of which are marked so the humans

⏹️ ▶️ John can figure that

⏹️ ▶️ John, Marco out it’s

⏹️ ▶️ John going to be tough for the sensors

⏹️ ▶️ Marco say nothing i will drive in manhattan without any problems i would never drive in boston

⏹️ ▶️ Casey oh amen brother i completely agree so to bring this back around chris you made mention way

⏹️ ▶️ Casey early in the episode that you like yellow cars what

⏹️ ▶️ Casey, Chris Latner what is

⏹️ ▶️ Chris Latner my my my one of my favorite cars was a yellow mini cooper with black hood

⏹️ ▶️ Chris Latner stripes on it nice and mini cooper convertible it was totally awesome

⏹️ ▶️ Chris Latner um that doesn’t get you in the carpool lane but it was a beautiful car

⏹️ ▶️ Marco in his defense like yellow like i’ve seen like that kind of that kind of

⏹️ ▶️ Marco that category of color like yellow orange maybe teal or even like

⏹️ ▶️ Marco a pink like they’re kind of like bright almost neon ish colors can work really well they

⏹️ ▶️ Marco often don’t but when when they work well they look pretty good i could totally see

⏹️ ▶️ Marco that the only flaw i see in this plan is that tehsil does not currently offer either

⏹️ ▶️ Marco yellow paint as an option or custom paint colors as an option what

⏹️ ▶️ Chris Latner will so now you’ve broken into the real secret they want to hire a compiler guy

⏹️ ▶️ Casey that’s why

⏹️ ▶️ John would you have go in your tesla and yellow if you could have that

⏹️ ▶️ John, Chris Latner yes absolutely i would have like a giant

⏹️ ▶️ John, Marco banana what

⏹️ ▶️ John, Casey are you doing

⏹️ ▶️ Chris Latner yeah

⏹️ ▶️ Chris Latner, John i hadn’t

⏹️ ▶️ Chris Latner really fully thought this sir

⏹️ ▶️ John john i don’t know if you that are we’re talking about a model s right yeah

⏹️ ▶️ John now i would yellow doesn’t seem right for that we

⏹️ ▶️ John, Casey to do some photoshop

⏹️ ▶️ John mock ups let’s workshop it a little bit we’ll see maybe if you got

⏹️ ▶️ John, Chris Latner black

⏹️ ▶️ John stripes down the

⏹️ ▶️ John, Chris Latner middle yeah i

⏹️ ▶️ Chris Latner admit this is a case where details matter so yeah

⏹️ ▶️ Marco no i mean that’s like if there’s any if there’s any way for you to get like a pet feature implemented in the

⏹️ ▶️ Marco model line that seems like a pretty good one to do at least and you know i would ask

⏹️ ▶️ Marco i’m sure i know you’re probably not going to be working on on the bluetooth you i but i’m sure you

⏹️ ▶️ Marco could probably put in a word with the right people to please improve bluetooth audio

⏹️ ▶️ Marco but otherwise if you can to make a yellow one i think that would be you know in addition to you know potentially

⏹️ ▶️ Marco saving thousands of lives a year with autopilot software you know getting getting improved bluetooth and

⏹️ ▶️ Marco yellow option would be pretty impressive well

⏹️ ▶️ John yellow would make your car more visible to other drivers other human drivers bright colors to know that

⏹️ ▶️ John you’re there since you don’t have a engine sound

⏹️ ▶️ Chris Latner and i have to say this is the most effort i’ve ever done to win over one swift programmer

⏹️ ▶️ Chris Latner so i’m not sure if this is a scalable approach

⏹️ ▶️ John see other men instead of coming on everybody’s podcast and talking to them individual my god that’s amazing