Devreal

Fireside chat with Chris Lattner.

Fireside chat with Chris Lattner.

Recording: Fireside chat with Chris Lattner.

[Music] all right so I want to welcome Chris lner to the stage and uh we're very excited to have Chris with us I think we Tred it for many years to get him over here and Chris is extremely busy and when I Was preparing for this talk and I looked at Chris's Wikipedia entry I realized why he's so busy right because he's extremely productive and when they talked about the next Engineers I really think that chis is an example one like some people don't think they exist uh so the reason we are so excited to have Grace is basically his themes of his work are very much aligned with everything this conference stands for right which is a combination of scalable uh Computing and data strong types and now ai right so it seems like Chris is ahead of the curve and we're really curious to see where it sces and I just briefly mention the key thing so Chris started basically with in gr School uh he created L lvm right a lowlevel virtual machine and then he joined apple and that became a major asset for apple and cang and uh and correct me if I'm wrong right like this is kind of what the common knowledge is right and he looked at Objective C and I guess anybody who looks at Objective C on something better so he he came up with a swift programming language uh and I think at this point the data science took off and so what really caught our attention in our Meetup right in our community was finally we had this great shiny hope that instead of python we have something stronger we have something better right and so there was this Swift transflow project at Google which really raised our hopes and also some folks from the community Eugene Baka who led simple scholar project at Twitter he went to Google and he basically worked on that on ML M learning infrastructure which was another project which G started and so really the hopes were raised high and Jeremy Howard who leads fast AI uh and also you know really kind of leading the thinking how you should do data science he picked up uh Swift so I think for for a while it looked like everything's going to be great and then suddenly the clouds gathered again and Chris left with s five to do Hardware uh and uh basically the Swift of trans flow team was picked up so p b became a PM compilot and I think the um Swift folks went to Apple compiler team so kind of and then you know the thought okay All Is Lost we're are stuck in the dynamic world forever and recently suddenly there was this announcement about moja and this kind of hit all the nodes right it's it's python compatible it is compiled it is strongly typed and I think there is this amazing progression that like you sprinkle a few annotations and victores and suddenly it's 10 100 thousand times faster so so we are super excited right that we can bring to bear all the skills we uh we have in this community and we're strong Believers that you know everything we worked on for many years is not in vain all this software engineering uh abilities are not going to be replaced by AI it's it's obvious to everybody right like if you unplug the AI it's cannot do anything so uh so this is basically really you know align with our them so I want to again welcome Chris in first of all did I get this correct did I miss anything well well thank you for having me that's quite the introduction um I also want to say thank you to you for getting me here um quite a lot of persistence and if you know anything being successful is about being persistent and so um through many twists and turns we finally made it happen so thank you thank you for having me so thank you Chris and tell us a and so yes to confirm I am very much a nerd I love all these things I never want to stop learning and so yes continue to be on the quest to build beautiful things for people thank you for that and so I think a lot of people here you know me included they have this experience like you program language geek you work in a startup and they bring this like super you know High futen boss from Facebook whose job it is to make the thing valuable and they tell I don't care how it's done it should be done yesterday I don't care about the program language it is in it should be in production right and and like you were able to step back and invest in these tools which make people productive but require investment right in it's a long-term investment how did you convince you know Apple Google and others to to invest in this initiatives well I don't think that there's any one answer for all of those I think they're all different in different ways and so I think that my journey through Apple was really um really made possible by making very incremental steps and so you know I I came into apple back in 2005 which seems like a long time ago now um with the quest of building a better replacement for GCC right GCC is a good thing many of us used it it it catalyzed an entire ecosystem of the C C++ World an amazing thing but it wasn't super modern and it could be better in a lot of different ways and so when I joined Apple I was told by all the established people that have been working on on GCC for sometimes decades that I was doomed to failure right because GCC had had hundreds of people working at for dozens of years and and so I'm like what are you doing kid right and so you know I was maybe I'm not the brightest tool or sharpest tool in the Box I don't know but I thought it would be fun to go work on this stuff and I had some support and it was bounded support it wasn't a go do whatever you want go have fun go spend all of our money it was okay well go find some way to make lvm useful to Apple you have a year or so and if if it doesn't work out that's fine you can go work on GCC that's called motivation right right and so and so throughout this journey right it was always about figure out ways to make things incrementally useful valuable demonstrate that more investment is worthwhile and you know get wins along the way and then build in credibility but also build in the technology platform that then allows you to reach higher and so um the first application of lvm at Apple was actually for J compiling open Gil stuff super Niche super weird but it helped with a 32 to 64-bit transition again back in 20056 time frame right um you then build up and it became you know why why build clang well the first use case was open CL again a graphics thing right you need jit compiled Graphics C language thingy right um what else well you want good code completion ID andt sense type features in xcode well you want full power of C++ you need a full parser to deal with that very lovely language that many of us have spent many years on um and so you need a full real Purser but you need it to be modular and embeddable and usable at runtime as a library right and so each of these things can kind of build and as you're doing that in my case building the technology building the team building momentum and that's what allows you to reach Higher and Higher and so Swift for example I think is kind of what you're getting at um in that case Swift was a hobby project it was a nights and weekend project I worked on it alone for a year and a half without any ambition for it it was more of a okay like you can't build C++ and a full C++ parser and ship it and get a boost wrapping and building boost and all the things without without really stopping to say that there has to be something better than C++ right and so you know again this was more of a uh decompress and go figure out the fundamentals of these things kind of a project until it got to the point where it was interesting and a lot of the projects I've worked on have been that kind of nature where you have to build it for a while to understand it when you get it to the point where it's you know it's not done but it's starting to become real you can now explain the value proposition you can understand why why there's a good investment hypothesis why more people should be put on it why it the other thing that you're competing against will never get to where it needs to be and so it's a combination of kind of being willing to work on things that take a long time being uh devoted to a path not getting ahead of yourself right Swift could have gone nowhere and that would have been fine right and then when you say let's let's actually get commitment actually know why it makes sense to you know the buyer in a sense well this is yeah thank thank you for that right because you know when again Swift appeared uh so some folks from our community went to work on Swift in The backend so con malski he's presented uh we got the first official speaker labeled as Apple it took years right because normally the present is open source people so they uh unveil the actors uh uh at scale by the bay during the pandemic and so basically there is a team doing Swift on the backand and so I thought you know finally for the first time in in many years we'll be able to have end to end Swift right so we can have Swift on the back end uh and then we have Swift UI obviously right so so this is this is really exciting um so question uh Swift is a general purpose language we don't see things like spark in Swift right like it's it's is it the nature of Swift UI kind of most developers develop apps do you think Swift will be able to do big data and other things like in as much as Java at least right not I'm thinking of python well I think that there's a couple of issues there I think that from a technical perspective Swift can totally do that I think it's actually quite good at these things has actors know and other things like that that are I think quite nice um Swift has never been too afraid of adopting good ideas from other communities and pulling together with its own take um I think that there's a bigger question though which you know is maybe more interesting which is how does technology diffuse right so it's not just about having a theoretical capability it's also about having a community and one of the things the scholar community and the data community and Spark Community have had is a lot of really good center of gravity of people coming together and working together often in open source right and so Swift as you say like its center of gravity is around iOS development very clearly and that's for obvious reasons um and so what I see is I see little tendrils going out and so Swift on Linux there's some active people using it and they want to go there but there hasn't been as big of an investment because there isn't as much of a call to action or a center of gravity or a proponent that's driving that uh there are folks that want that happen of course and a bunch of people that are investing in it but you know getting a big movement takes and this is something I think Scola and and uh spark and many others have been very successful at by the way but it requires a combination of having good technology having the people having the use case you know like all these things need to come together to build this big wave and so Swift being technically capable hey C CNC Plus+ you're technically capable of building scalable data applications but it's not beautiful uh and therefore the community isn't big enough to support it and I think that's that's the bigger issue well I think that kind of brings up the question of moja right so I think it's it's really you know it's really amazing again right it's kind of we did not expect this honestly right so over the years we tried but we searched far and wide to see how we can deal with python can we Corral it can we surrounded by a scull and Java can we put it in a box right and so what usually happens we've seen this pattern uh in production people who really run at scale they never they normally do not run python directly at scale right I I I used to ask people like who runs apis on actually a surprising number of people do and whether it's a good idea or not it's not really the issue I mean they they normally don't make it here so like I I I I I used to ask you know does anybody do that and I know dbox for instance use a lot of python but like normally nobody admitted to doing this and so the solution was kind of was all kind of interesting things so again mate had this project called w at at Stanford with basically a full program uh analysis and compilation where you basically take a Python program and you replace the call sites to Big Data Matrix operations by there syon and codon and inscript or not inscript uh unladen swallow and I mean there's jython and there's count there has been enormous amount of effort right which did not really succeed and so I think the promise of MOA is is is wonderful right and so like I mean can can you talk a little bit about you know how you manage to what is the promise here and and how do you kind of think that will jive with python as it exists now going forward yeah so um I guess the way I would say it is um I in my Journeys I've come to not believe in magic okay so whenever somebody's making an incredible claim there should be incredible evidence and there should be a baseline in which it can be explained it should not be a trust me it's going to be great right and so for me um if you look at what Mojo is there's really two things going on one is there's a set of Technology infrastructures built on top of very lowlevel compiler nerdery right this mlr compiler stuff there's a whole entirely new stack which if you want I can geek out about the compiler bits and that technology is completely syntax agnostic in fact the way we built Mojo is we built the compiler bits from the beginning and we writing everything just directly in the internal representation of the compiler to prove and validate the hypoth that we cared about which is really not about make python go fast it's really about the fact that heterogeneous compute is here it's no longer about a CPU it's no longer about a GPU it's about utilizing a host and a set of accelerators in an efficient way it's about all these asex for AI and maybe Quantum someday and all these other things going on and needing consistent programming models that can scale with a human Community right so it's about the humans it's about the programmers it's about the developers right and so so this hypothesis we set out and we wanted to prove that we could generate high performance Matrix multiplications and the things we cared about and we realized that we could do that which is cool um which is very compiler Nery happy to talk about that if you're curious um but then we needed syntax right and so I'm not aware of many languages that started from go build the core semantics go build the compilation model go build that part of the stack first and then decide to figure out syntax later and the reason we did that is uh first of all that the first part was really hard and if you have to move a parser and you have to move the compiler at the same time like you just have to move around lots of code as you're iterating and changing things but we always knew that we could bind to a domain specific language or or an API of some sort or or if we had to create a language then we could do that right and when we got to that point we got to that decision point of okay cool well we have proven our thesis it wasn't fully done but we had proven the hypothesis as good scientists will do that the backend compiler stuff can be useful for what we need to achieve now what is the best way to do the front end and so then we went looking around we said okay well here are the problems with doing domain specific language the tooling Is Not Great the interoperability is not great you can't be fully native you're stuck with the host language decisions Etc we could do a completely new language we could go reent curly braces Plus+ or something like whatever you know bring back Elis I don't know um had been there before had went through that entire Journey very familiar I know very much the pros and the cons and one of the major cons people don't talk about which I lived with Swift and I think Scola also went through as well is that you you have this amazing like cost to get people on board because you have to start by retraining people right and often the value prop is really great you know yes skull is way better than Java was back in the day and things like this right the the value prop is huge and you make it familiar so that what you have to learn is reduced but um but still you have to start with retraining for people to see the value right and so what we decided to do is say hey well there's a thing learn from the Swift for tlow project for example that guess what developers in general don't want to forget everything they know and retrain from scratch it's many people like to grow like if we learn something I've invested hard into learning Python and I've put five years into learning all these libraries and this ecosystem and the syntax and the goofy bits you know the UN the where the the dragons live but also the beautiful Parts as well well that's cool I've invested in that and I don't want to throw it away but now if you give me something that's better than that cool now I can teach myself I can learn I can grow as a developer and I don't have to reset and so what we decided to do is we said okay well let's take this fancy compiler stuff at the back end let's then build into a python compatible ecosystem and we're building it from the bottom up and so we'll build into the full dynamism of python but the challenge with python in my opinion is not I mean there's many challenges with python let's be honest but the but but the challenge with python isn't isn't that it's Dynamic the the problem with python is that it can't be static right and and with dynamically typed languages I actually love Dynamic types even despite all evidence because I've spent all my ears and statically typed languages but I love Dynamic types the challenge is when you don't have the option to be statically typed where you want it and so the whole approach with Mojo is say okay cool this part of python that exists is fine it's obvious ly successful all the data shows the number of programmers the massive data science ecosystem there's massive evidence talking about the popularity and the success of python the thing that people are missing is that Python's only possible by being built on top of c and the entire C implementation layer of python is this dirty under the sewers implementation guts that hold up the infrastructure of the beautiful city but um but a python programmer shouldn't have to switch languages to get into that that part of the world turns out people that work at that level should have beautiful things as well and so a lot of where Mojo is building into is this this idea that you can have stag types you can have uh traits you can have like wonderful lifetimes and other Advanced language features without breaking the thing that makes python beautiful and so when you talk about many of the other things that have been built in the python ecosystem usually they in my opinion end up again there's many of them it's hard to make full generalization but many of them are the trust me I believe in magic I will use a super fancy compiler to make a dynamic thing into an efficient static thing Mojo is not doing that there's no magic Mojo is about predictable programming model if you want types use types if you don't want types don't use types it's fine like there's a right tool for the job thing it's about get the religion out of here and about Embrace people where they are and I think that's what's very different about Mojo's approach so you know I really love the fact that you basically just decide let's have this syntax for function FN which will be the strongly typed function right and you can use defa for the old function so this I think this just beautiful introduces right like I mean how do you think of this normally you would not think like there's a function definition how did you come up with this idea well so it's it's a so so here's the bad thing about building into an existing ecosystem is you have to figure out a way to Wrangle the things that are unpleasant in your new worldview and so you have to make it so you're compatible but you have to make it so that you can have a more pure world for the people that don't want certain Behavior right and so in Python of course um everything defaults being untyped if you create a collection it can be hetrogeneous like that that's that's a thing and and that set of dynamic behavior is really important particularly for compatiability but also for important programming models but that shouldn't be the default when you you know creating a heap allocated object just because you say for is maybe not the right thing for systems programming environment right and so the way you have both is you provide very clear demarcation of kind of what world you're in and make sure that they they're compatible but one of the things I think that's important about Mojo is it's not just about python it's not just about types it's about pushing forward a number of other things that are um quite important and so metaprogramming one example so so Mojo has a full compile time metaprogramming system that's inspired by Zig in languages like that which are quite new and so the the cool thing about that is you can run arbitrary userdefined types or effectively arbitrary userdefined types and code at compile time and so why is that valuable well it turns out that yeah you want to have heaps and arrays and dictionaries and other stuff at compile time and if you do that what you can do is you can make the entire compiler extensible similar to way uh some of the macro stuff and other things have been done in other languages but do it in a first class typed world where you can reflect on the compiler IR as you build it now there's I think scholar has learned that there's some compatibility issues if you do that wrong and if you expose too much state but if you expose the right amount if you expose a very simple programming model you can do I think very beautiful things and so this is one of the ways that we can tackle novel accelerators is that what you want is you want like Dynamic programs running at compile time that go do things like autotuning how what what magic parameter do I need to tile this matrix multiplication well you need to go measure it in a lot of cases right and so building these kinds of Technologies into the compiler infrastructure and into the stack requires a slightly different approach and this is the benefit of starting starting anything right so now basically have freedom to add instrumentation I mean I mean it always struck me right I think a lot of folks uh who do python I think there is a big impedance mismatch between traditional developers and data scientists right so I think a lot of folks who Learn Python they went into um data science uh and they needed to learn both data science and programming language so python emerges almost like a know language the sud code so I think because the syntax is so small right you you don't need to chase every thing like a fan is is amazing right like just use a fan so I'm wondering so you basically head it out for a bit right and so there are folks creating with moo right so how do you see adoption and like I you know I can give you an example what I think which is positive right so when typescript was created right nobody believed it will really you know Advance as far as it did right and so now I see like half of the front end developers like types scrip which was extremely encouraging and it took a while right and and then I've seen firsthand like a de you know front end developer with basically in an IDE they would have a tag and sudden like that tag would not compile it was it was an epiphany like I cannot just randomly create HTML like this thing is a tag and the tag is compiled and so when they realize this they say like I'm not spending time on Console anymore so so we've seen this example but obviously like data science very diverse a lot of people came from different backgrounds rounds how do you envision educating the community and what do you see already from from your current beginning uh well so I'll give you facts and then I'll tell you what I think about it because the facts can be you can look at it in multiple different ways so um for what it's worth Mojo is merely a year old started ring the lexer last October so this is not an ancient established programming language it's been around for a long time we launched it just over 6 months ago public public Al and so this thing has only been out in the public for 6 months you've only been able to download it to your computer and run it locally since September mhm this thing's an infant this is not this is not Java or or C or Fortran right this is this is the very beginning days right so uh despite that um we've had 150,000 users so far and so we've got quite a big community of people doing some interesting things with it um uh a lot of a lot of really cool stuff going on um but the way I think about this is that having built Swift there's actually a huge problem with having a community and so I'm actively telling people to stay back like I get asked all the time should I build this and use this in production I tell them no right because the language is not done yet and so what we chose to do is we chose to open the development and be very public about what we're doing much earlier than something like Swift which was in developed in secret for four years for example before it was launched and then it was another two years before it open source and like and so and so these things take time um I think that Mojo will take a lot less time than Swift did for a whole variety of reasons including not having to invent syntax which is very politically charged and complicated and timec consuming um uh Python's also a very small language which is also very nice I mean it's got its weird corners but it's it's not as big as many people think particularly if you're used to languages like C++ um um and so I think it will go much faster but really what I've tried to reinforce with the community is that our Northstar is build the right thing and we're willing to take a long time if necessary which I don't think it will take but it we'll take as long of a time as necessary to make sure we end up with something that's truly great because these things cast Long Shadows into the future and with swift for example I'll make pick on like silly examples like in Swift the way the optionals work was injected too early into the language it was overly privileged in the compiler and so optional is not a pure Library type it all it has magic in the compiler and things like if let if you're familiar Swift magically unwraps an optional instead of using pattern matching total mistake right and there's a specific reason that happened which I won't go into but um but once it gets established it's very difficult to go back from those things and if you keep things composable orthogonal you really reinforce we have the team incentivized to make sure it's actually really good then we can have something that's small so it's teachable it's super composable super extensible in libraries and we can get a thing that we think that can really move the state of the art forward and I don't feel a rush to actually get users it's more of um making sure that the expectations are set clearly that we want to do something that lives the long time and we're not just like looking to please a few people as fast as possible because that's cool in fact I'd much rather people stay back if they're they don't if it's not right for them right now this is great well I mean I think we're all rooting for you so if you know need help from the community please in know where to find us right because I think everybody will be super excited because like compossibility is one of the mantras of this conference in a lot of folks just don't don't know about it right like data scientist generally did not use to think in these terms so we really hope that you know once they learn more about it all of our skills can be brought to bear on on this right so I want to shift gears a little bit and I'm I I think can can I just do one more shout out y so if you're interested in Mojo please join our Discord we have about 22,000 people or so that hang out there talking about random things and it's a great way to get get involved and um meet other people that are interested in similar things ac across across a wide range of different programming disciplines it's not all python so this is great I mean you know anything we can do I guess everybody kind of here roots for strongly typed data science and AI so you know it would be really excited to see this and this is our best shot so we should help Chris in any possible way so uh I wonder you know you're one of the few people who straddle hardware and software and so generally speaking found like these are two worlds where people really rarely converge so can you tell us a little bit like about your vision here because you initiated M you went to s five right can you tell us like why did you choose from Swift Trans go to s five what's exciting you in hardware and obviously with AI we now see all these accelerators emerging so that was just open source accelerator Foundation uxl where Intel donated its assets to to L Foundation where do you see kind of Hardware software Cod development going what's the moo role in this where should we focus as mostly software developers what should we keep an eye on in the accelerated AI world yeah so I I am so I mean there's a whole bunch of different things going on in there um uh I've always been at the hardware software boundary right and working on compilers level systems accelerators gpus whatever um across many different years now um built the TPU program at Google lots lots of stuff that I've it's an area I love um uh I am a very strong believer that Hardware is weird today and it's only to get weirder okay and you can call it the endor's law you can call it wearable personalized compute you can like what whatever you want to blame it on um we see a lot of the suffering that's happening right now with accelerators in the AI space and you see lots of people are The Bu building into okay my new matrix multiplication accelerator my Edge accelerator my let's go fight with Nvidia for data center Supremacy thingy right I mean there's many different aspects here but none of these things have a software stack mhm right and so as I extrapolate forward and I look at where the world will be not just today but where it will be in 5 years where it will be in 10 years we're not going back to where we came from Hardware is going to only be more weird more personalized more specific for different Power envelopes and different use cases and the way I think that for example sci-fi approaches this is really good because it's building scalable also in Scola uh Hardware designs that are actually much more like software and are reconfigurable so that when you one of these things you get something that's really optimized for your use case now the challenge with that is about software right and software ends up being about developers and where do you get and how do you get folks using a lot of these novel exciting pieces of hardware for more than just one use case right and so sure you can get a CNN running a smart camera if there's only one thing you want to run but what I think we as an industry are struggling with is in this realm of amazing diverse crazy Hardware how do we program it right that question is something that every single one of these devices end up getting their own software stack not because necessarily any one of these Hardware people want to like make a proprietary stack is because they literally have nothing to plug into there is no good choice there's no lvm for machine learning right and so a lot of what we're doing at modular is we're building that stack that solution that is designed for hetrogeneous computing has a consistent set of tools and programming models that allow individual Hardware makers to really specialize in their Di Doms and one of those domains is AI but so is Media processing so is high performance networking so there are many of these domains that are here today and it's only going to become more common in the near future so thank you so I think we have a few minutes for questions and uh you know the speakers will have Q&A sessions after the talk so you know you can ask Chris uh at the Q&A Island but for now uh we have a few minutes for questions so if you have a question raise your hand we'll bring the mic to you and I can do that y any questions yep so in the wordss what do you think that could be one of the main advantage of use Mojo in comparison with you know tools like jacks or this kind of cool stuff that people are doing there to try to kind of speed up the execution of and all of these kind of crazy models in the different Hardware agnostic infrastructure so what do you think that is kind of like the advantage of spend more time learning uh tools like moo instead to kind of go and keep trying to play around and understand the how these libraries work like Yaks or yeah so so if I understood the question is how does mojo relate to Jacks and other machine learning Frameworks like that um if you look at the the the traditional machine learning framework stack and Technology stack more generally you have uh user models and serving layers and stuff at the top you then have machine learning Frameworks so these are pytorch Jacks tensorflow things like this underneath them you then have an execution layer in the case of Jax it's xla um but also you'll have Cuda and CNN libraries and things like this and then below that you'll have Hardware drivers and then obviously silicon below right and so Mojo uh doesn't compete with Jax in fact having a Jax like API on top of this and and you know again Mojo can do python stuff and so you could literally run Jax and Mojo if you wanted to um the way to look at Mojo is a programming language now the reason that modular built Mojo initially again the reason we had to build it because we didn't start by saying hey it wouldn't it be fun to go build a programming language the reason we had to build it is that we were starting at this Hardware software boundary and trying to build a way to uh deploy code to accelerators this includes gpus those are the things everybody's talking about but it also includes CPUs CPUs today are converging with gpus they have tensor cores they have B float 16 and massive vectors and all these things in CPUs and so this diversity of Hardware both on CPU and the GPU side because you have many vendors building gpus including apple and Nvidia and AMD and many others of course right programming this diverse range of Hardware is really hard and there isn't a good solution out there and so what Mojo does is it allows to write code that can Target any of these devices and so you can Target very weird very lowlevel very obscure Quantum things and stuff like this if you would like to do that but then you need the next level up that then provides the hardware abstraction thing right if it's it's great to be able to write code for any one GPU but if you're running an 8 GPU system how do you orchestrate and balance the workload across those 8 gpus okay if you have a thousand nodes with 8 gpus each how do you distribute the computation to to all those things this is the level that something like xlaa would provide right so this is where the modular engine actually slots in and then things like pytorch and Jacks and those things that provide a programming model to end developers can be built on top of that Hardware capability and the abstraction and the programming and so what Mojo does is it allows these things things like pytorch and Jacks Etc to be super extensible and it means that as a python developer or as a systems developer or researcher you don't end up in this world where you have to do python in one part C++ or rust in another part and Cuda in another part of the stack you can have one thing that scales um other questions thank you um can I or should I use like a Mojo for my Jupiter notebook uh Mo works great in jup notebooks you can run it hosted or locally on your machine if you'd like to um it is do you have a more specific question sorry I was most like asking like if you would like recommend like starting using Mojo for Jupiter like right now like my you know next ticket like next you know query whatever I want to do or it's like to so so uh uh jup notebooks are a very popular way to use Mojo just like it is uh for python um Mojo has a bunch of really cool advant manages I mean as a hybrid type un typed language you get code completion that's actually pretty good and you get LSP support and visual studio code if you're using that kind of thing uh we have a full tool Suite that goes with it because it's a it's a real real language it's not just a a research project um uh the reason people often like Mojo is that um if you're stuck in this hybrid python C C++ world you can have one thing that scales so you can have a debugger that works both for the performance stuff and for the highle stuff which is pretty cool right I mean it's like simple things like this you know a lot of folks enjoy um you can just add a few type annotations and now unlike typescript where type type annotations are about safety in Mojo type annotations affect the compilation model and so you just say okay cool I have an object it's a heap allocated python thing which is a big end if I say here it's a capital I end well now it's a word siiz thing that fits in a CPU register it goes way faster right and now if you do that if you decide that you want to use types which you don't have to but if you decide the types are good which I think some of you might um you get massively better performance you get better scalability you get uh I mean you get full access to vectors and parallel multi-core hardware and um coming soon lifetimes so very rust style uh very fine grain memory management support without a garbage collector which is also a big deal for accelerators and things like this but without the usability challenges that Russ kind of tied into that so anyways so there's a lot of different things and yeah jup not def all right thank you very much and uh we really thank you Chris for coming uh this was a great far side chat by the way if you guys see there is a fire whenever you go to a firesight chat insist on having a picture of fire or actual fire if not ask for your money back so we always have fire for fire side chat and and Chris will be available of that well thank you for having me and thank you for being persistent thanks for coming all