Devreal

SF Scala: Eugene Burmako & Alex Suhan Interview

SF Scala: Eugene Burmako & Alex Suhan Interview

Recording: SF Scala: Eugene Burmako & Alex Suhan Interview

[Music] hello everybody my name is Alexey Krylov and I'm the founder and organizer of the swiftlet under floor mat up this is the inaugural meetup which actually is hosted by Google developer launch pad and we're very excited to have the members of the smooth soft and slow team with us Eugene Brockman our lexicon welcome guys tell us a little bit about yourself thank you should go first okay so the next set my name is Eugene and currently I'm working on Google at the circle team I joined Google in February this year and before that for about seven and a half years I was doing Scala compiler tag first at EPFL this is the University of where scholar got invented and then Twitter which is probably the biggest scholar user in the world that's it yeah I'm Alex I work in the same team as Eugene I've joined the team actually quite recently about three months ago but I've been working at Google for almost two years now before Google I used to work at the startup running making sequel run on GPUs and yeah that's that's my story so far so kind of I want to add a little bit of the background that I also run sub Scala meetup and Eugene as he said it's very well-grounded in the scholar world author of the micro macros and also RC the Twitter version of Scala approach to Scala right and so we know Eugene as the champion of strongly tied programming so I want to kind of ask you guys what's your previous experience before Swift of terms of flow with types you know strongly typed languages what's your feeling you know are they better than dynamic languages like if you can provide a little bit of a background for the viewers yeah I personally think dynamically typed languages should be banned should be just below I don't have much background in using dynamic languages so I actually kind of like them as well it's just that my most of my background has been C++ a tiny bit of Java times but that's that's the angle I come from you know I'm very pragmatic when it comes to picking the languages and I like static languages because you just get better support for from compilers from tools from IDs so it's equal functional sequel is declarative sequel is its own thing is it typed what do you say it depends for example you have Seco light which is an pipe so is the type so the columns are all they all have a specified affinity but it doesn't have to be the type of declare but yeah usually usually sequel is a statically typed mm-hmm and Sakura it was like enormous a popular or like it's everywhere right so sick you light yeah it's a very popular implementation of sequel used by all sorts of applications is probably the most widespread sacani implementation right now yeah I didn't think about it there's not that because I just because like you never know what you get a sicko right like you type yes that's correct it probably will work but if it's not it depends on the implementation yeah yeah it's a it's definitely a loosely specified language or at least that was my impression that not everything is is as precise as in the C++ standard where you can have hours of fun trying to get the precise meaning of certain statement in the standard so yes because there's nobody fully implements the nca sequel standard yes yes so how about you Jim what do you thing about types shift my experience with types of now I'm more of a moderate proponent of going I think you know Kevin coded and Swift I won't miss the power X column also appreciated the fact that in Scala it's possible to write incredibly complicated programs while they're allowed to state very precise properties abroad about applications and also common would be host of issues like error messages compilation times and so it was refreshing to see a different approach specifically what they like about Swift is protocols so whereas in Scala we have to do moving places that rows around with the good all the problems like error messages and stuff in Swift it's more seamless so I think that types are great and that is good to look for balance between advanced types and so I don't think that you know the more types the better there has to be a balance okay and obviously super interesting you know like in my world it's a huge breakthrough that Swift is adopted for tons of flow by Google right because I like we were preaching at Scala by the beylin scale by the bay that you know Python should not be used like you should not entrust the machine learning in AI treasures to Python it's like the most valuable data should not be handled by a dynamic blob of a language which is slow at the same time right so basically to me it's big paradox and and like there are many reasons but you guys are kind of the the for my instant point you're at the beach pad or the advanced like type force right which can kind of finally do missionary purple but obviously the majority of data scientists do not know about this right so so like if you can advocate for language like Swift you know typed language performance language for machine learning but what's the best things about it if you lay the scientist who does know about it like how would you convince somebody to try swift photons of flow instead of Python well the the main advantage is the fact that you actually have a compiler so you actually catch hours ahead of time but more than that is just the world it opens you can do things like ahead of time compilation more easily so you'd get at the very least you you could get more predictable performance if you don't have any sort of JIT approach involved so if you could actually compile everything ahead of time it also offers more opportunities to do some sort of more holistic optimizations on your models so it can move code around it can it can rewrite lots of code which you Python it's quite hard because there is no compiler there to actually cooperate mm-hmm and I think those are the two main main advantages and those it's it's a fairly it's a fairly nice and well thought-out language not to say that the alternative approaches are inferior but you know just just to elaborate on the strong sides we have a pretty good story with the automatic differentiation and I think it's uniquely interesting instead of you typed languages and that it can produce errors statically at compile time mm-hmm so when I came when I just joined Google and going about the project this is one other thing that impressed me a lot that you could just write those differentiable functions and when you when you make a mistake the compiler can tell you that this function is not differentiable because it calls another non differentiable function and that's the culprit you cannot just call those things mm-hmm it wasn't just a serialization like everything should be serializable and everything should be differentiable in a way and so what I find pretty good here is that it's all you get a runtime error you know kind undefined message or something you you literally get like a compile-time stacked areas which allows you to follow through the chain of code and you know expanding on that this is I guess a big benefit of studying type languages that you can have compile time checking it mm-hmm so there is another aspect of it which is quite similar to the fact that you can actually have crises the fact that the debugger actually if you if you set up if some error happens that the debugger actually steps back through your function as it as it actually differentiates no it's it's fully integrated it just works I found that hard way that Swift ripple is ll t be kind of because I tried to run it in SS l subsystem for Windows and it didn't work in the debacle one but then I would work in SS l 2 because the road was some some stack call which was only implemented in the bustle 2 in the actual Linux so this I learned the card like you know I couldn't even launch with Drupal but now I can do it in and on windows so so that's cool so it obviously helps with the differentiation there's the creator of students actually working on your group right so I wonder if this is the proposals like this right because I don't know much about the kind of how Swift is advancing so it is created by Apple to make iOS development easier right and then Chris lab the run to Google so I wonder do you guys how do you interact with because now Swift team at Apple has folks like Connor polarski from the community who is doing reactive streams there so so like when the language evolves do you guys talk like because I know like it's you know it's hard to know what Apple is doing so I'm just curious like does it help can you like things like automatically differentiation can they influence which language itself or like like how do you guys decide is the community process like sips and Scala how the house is advancing for those of you who know about Scala there is a similar process in Swift it's called Swift evolution and there is a similar committee people who meet every now and then and discuss community proposes yeah so it definitely helps to have Chris Lautner as as our boss and you know the tech lead of the entire big effort but I don't feel like we have special treatment so we make proposals just like the entire community and that these proposals are discussed you know in those Swift evolution meetings and then notes are posted in a transparent way I believe this is this is a great thing because Swift church community has many people who have many interests and essential right absolutely so I'm curious like like so you come from kind of hardcore back and work compiler work is like the hardest I would say technical work in as far from UI as possible right and so Swift was used actually as a replacement like it's a COI language right like I think a lot of developers in Swift like we don't like in Scala world who normally do not enter interact intersect closeness ecology is is the cause as it comes but it's not really has the adoption of sweetie UI right so I'm very curious a lot of people who come to Swift UI they come from JavaScript so what's your observation like how do you I make very curious like because they have a very broad community but it was anchored by Apple right and it looks to me like Swift quirks come from objective-c because they have to compare to be compatible to its like Scala has to become a lot of Java these guys come from Objective C but they also UI people so what's your kind of impression so far how this can be different from school community good question I don't think mm-hmm I'm just learning about other aspects of Swift so I will ask you a little bit later well I also have to do a bit of an educated guess here because I don't have that much better girl but thinking about it objective-c is actually you know a language which is somewhat like C++ in the level of structure self people in that community and by extension in the Swift community are probably more accustomed to thinking about the actual performance of the code and whatnot so reason about it so I'm fairly optimistic that that shift could be suitable for both that kind of work and machine learning because both are performance sensitive yes so so I'm actually wondering how do you interact with all the parts like there's a flow is big so I talked to ratchet manga for IBM index and interviewed him actually and I actually interviewed Francois shallot so for that you know like and so I kind of have a little bit of insight and I understand the work is very big and it's like real people like to work with it because it's the first major open source effort on Google I think one of it right like because a lot of stuff is internal so how do you interact with like Python side of tons of flow like are you like little I learned or do you cross pollinate each other I'm curious how that doesn't flow work where you're there and like where is it going hmm well we have interoperability with Python we try to reuse as much of tensor flow as possible but I think we also kind of have to build our own path because we have those additional features like automatic differentiation and most of those features I'm not sure they actually translate well back into in 2004 so there that's I think it's an open question I don't think we actually know exactly how this is going to go long term so you need to influence upstream yeah yeah maybe yes again I think the the fact that it's a static language and you can do so many tricks which don't necessarily apply to a Python framework will have some sort of an impact on on how this happens and so what is the are you going to talk about machine learning intermediate representation well I are and just excited I open my Twitter waiting for the meet up to opened and I saw sundar pichai it's reading a bottom lar right now so is he helping us is he aware but like obviously he knows and it's an important thing for Google as a whole so I'm wondering right I you guys sounds like the cutting edge and like what's the place of MLA are in terms of flow or because I mean tensorflow is just one way to do machine learning right like machine learning is bigger than tensor flow right like it can be anything it can be right so I'm just curious like is it like it's like it's a structure the support for tensor flow a swift okay it can be something bigger like how do you see it in in the organization it shows that you know our project and tensor for basically well they're called super intensive we have the shared future initiatives like Emily are they have benefit both of us so completely the malarious office the announcement says it's it started it is bigger than just and so forth and I believe personally that it will be applicable to other systems what's the hardware vendors they're actually already on board they can be announcement who so we're excited you know thanks for sharing all the insights we are looking for the main talk and thanks for starting this meet up with nice thank you very much for organizing tonight Thanks [Music]