Jon (00:06.479) Welcome back to another gone mobile Alan. We talked about this episode last episode. Do you remember which one this is? This is 100 No, i'm starting 100 without any bad jokes yet, I mean we'll get to the bad jokes i'm sure and we maybe have I was gonna say like we have you know, at least one other Allan Ritchie (00:12.775) Yes, this is a hundred. You made sure to make your bad dad joke going into this one. It'll be. Allan Ritchie (00:23.784) yet. For sure with the people that are on today, we'll get some bad dad jokes, I'm sure. Jon (00:31.271) Person who can have some bad dad jokes or maybe even bad granddad jokes at this point. We'll see um, so we decided for episode 100 it would be fun to Just kind of you know, shoot the breeze about various things maui Zamarin history past present future And you know who better to join us than none other than the wonderful pms that I work with Maddie and david, uh, hey, how's it going? Maddy (01:00.193) Bye. David (01:01.802) Well, Maddie, that was such a timid high. Jon (01:02.656) Swell. Maddy (01:05.457) I can make dad jokes, just for the record. Jon (01:07.755) I believe it. I mean, I know it. I've heard it. In case people don't somehow know who you are, do you want to give yourself each a quick intro? Allan Ritchie (01:07.999) Hmm... maybe. David (01:08.026) I was gonna... Maddy (01:09.938) Yeah, so challenge accepted. Maddy (01:19.758) Well, sure. Oh my gosh, I feel like we're celebrities on the 100th episode. This is so exciting. Yeah, I'm Maddie Moniquilla. That's technically how you say my last name, but I accept all pronunciations. I am a PM on Mali, product manager. I work with John and Dave, and it's not really work with Alan, but get to work with Alan because he's one of our amazing customers who says nice things about us on the internet. So, love you. And I don't know, what do I work on? I work on productivity a lot, tooling. Allan Ritchie (01:45.198) Usually. Maddy (01:49.41) the VS code situation, all those fun things. And then I kind of just help Dave wherever he needs it, but he usually doesn't need help. I'm usually just there to heckle him. So that's your segue into introducing yourself. David (02:03.449) Thanks. David Wirtnow, Product Manager. I've been at Microsoft since, I can never remember, it's been seven years. So whatever that is, 2017. All working on Xamarin and now.NET MAUI. I have been a developer since early 90s, probably before many were born. Jon (02:27.287) Early 90s, so like punch cards and right? David (02:30.905) No, come on. Come on, we had color monitors eventually. My first monitor was green, but let's not do a whole origin story here. So yeah, with the product, I focus a lot on the developer experience, specifically around the SDKs. What can I do with Android, iOS, Mac and Windows? And I have a lot of real world experience, I guess. Real world, as opposed to the fake world. Jon (02:35.076) It color monitors. Allan Ritchie (02:36.059) I did punch cards in school. Listen. Maddy (02:36.171) What? Jon (02:41.084) Yeah. Jon (02:58.171) Yeah, I was going to say you, you joined on, you know, a little after me or after a lot after me. I don't know, but we, you were, you were always around for as long as I can remember in the community in Xamarin. David (03:04.007) Mm-hmm. David (03:09.113) Yeah, I was an MVP. You were an MVP. Alan was an MVP. So we've known each other for a minute. Jon (03:11.432) Mm-hmm. Maddy (03:13.516) I wasn't. Jon (03:15.699) How did you end up here then, Maddie? Maddy (03:18.198) I was an intern at Microsoft when Xamarin got acquired in 2016. And they sat on the same floor as the interns. And the interns drove them absolutely crazy because we were really loud and annoying. And I remember when Xamarin got acquired, it was March and I was an intern. I was doing like a six-month internship which they only did in the Boston office, long story short. But my boss at the time was like David (03:21.702) on a cool project. Maddy (03:44.302) Oh, Xamarin's really cool. The people who work there are supposedly fun. The founder, Miguel, is like crazy smart and also like crazy crazy. So that'll be really cool if they come in this office. And sure enough, they moved in and I got to know people that way. And then when I graduated college, I was a developer, but I did like GPU optimizations and C++ and I was like allergic to UI. Jon (04:05.117) Eww. Maddy (04:09.222) and they were like, hey, we're like trying to hire a PM or something. And I was like, please hire me. I need a job and I don't want to move to Redmond. Yeah, that too. Yeah. I, they were like, do you want to come work on an IDE? And I was like, I've opened Visual Studio once and it scared me and I went back to Vim, but challenge accepted. And so I did, I did. I still, every once in a while go back to it. It's actually been fun now after, it's been almost six years. Jon (04:16.831) I don't want to write C++ anymore. Jon (04:29.199) And did you find your way out though? I guess you did. Right. Of him. Yeah. Maddy (04:38.242) which is crazy, but it's fun now going back to VS code. Allan Ritchie (04:40.755) You know C++ would have been more fun if you did it in Visual Studio. Doing it in Vim is just asking for punishment. Maddy (04:44.798) Nope. No, it's so easy. Everything just does what you tell it to do. Jon (04:50.419) Ah, but I don't know how to type any of the commands ever. Like the worst thing is when I set up like a, I don't know, like some device that's like Unix based and you gotta go in and SSH in and then it's like, oh, I gotta go edit this file. And I'm like, nano, you know, whatever file. Oh, there's no nano installed. No, I'm gonna have to remember how to use Vim or I guess just VI. Yeah. Allan Ritchie (04:55.216) They kind of become muscle memory. Maddy (04:55.227) No. Maddy (05:01.677) and then. Maddy (05:09.322) Mm. No. Allan Ritchie (05:14.011) You got to even go more primitive. Yeah, you got to go Vi. Maddy (05:15.894) Now Vim plugins, awesome. I had bracket completion. I could tab things, okay? You guys just were living in the past. But it is fun going back into VS Code now and getting to use like the command line again and being like, ooh, I feel like a real computer engineer again. Not like I'm just clicking buttons. So. Jon (05:27.516) Yeah. Allan Ritchie (05:36.095) Is it just me? I like clicking buttons now. I don't want to do command line. I'm getting too old to remember all that stuff. Maddy (05:36.182) And yeah, that's my story. Yeah. I will say, I got used to it real quick. That's pretty nice. Jon (05:44.963) Yeah, the challenge is always remembering stuff. Like I feel like, so I've, I've made a few different, um, like dotnet global tools lately or like command line things or not lately, but over the last while. And it's like handy to have, but at the end of the day, I never remember any of the commands and I have to always go back and look. And so just give me, give me buttons where I want them, please. Maddy (06:05.126) Yeah. Apparently all the stuff I did in school too for like GPU optimizations and all the benchmarking stuff is completely obsolete now because things have gotten so much faster that like benchmarks, the kind of benchmarks we ran like just don't matter anymore. It's all about like, can this bot, can this GPT based thing like answer your question quicker? And I don't know anything about any of that stuff. So I've left that world far behind and now I'm fully.NET. Allan Ritchie (06:06.751) Yes, there are more buttons. David (06:06.989) You wimp. Jon (06:32.327) Fully.net and the mobile world has, you know, kind of done the same thing too, right? We've talked a lot about like, just how things don't matter as much in terms of, I mean, they matter. I don't want to, I don't want to say they don't matter at all, but things that we would optimize for in the past are like, you know, not really a big deal anymore. Um, so I was, I was kind of thinking back to, you know, how long ago Xamarin started, how long ago we've been at this. Maddy (06:36.191) Oh yeah. Jon (06:59.267) Any, any guesses or memories of how many years we've been, you know, Xamarin was a thing. Does anyone remember what even earlier? Like, yeah, yeah. Allan Ritchie (07:05.115) Xamarin or are we talking pre that because it was 2012 when I did the first POC from the company I was at Maddy (07:07.222) monopod. David (07:08.399) Yeah. Maddy (07:12.77) I think 2010? Eight was the iPhone. And then Mono Touch came like right after, right? So. Jon (07:21.939) Well, the original, and I think, I think this is true. The original iPhone didn't have apps, right? Like you couldn't, like you could make a web app, right? But you couldn't, there was no UI kit. There was no objective C frameworks that you could like publicly use. Yeah. Oh yeah. Yeah. Copy and paste was like a new thing, right? That was, oh man. David (07:32.225) No copy paste, no GPS, no all kinds of things. Allan Ritchie (07:33.915) It wasn't until the three GS three GS. David (07:40.633) Yeah, I mean, it was a genre, a market defining product. I think we've all come used to it now, but it made sense that they were able to roll it out in retrospect. I think we were upset, right? When the first iPhone came out without features that we wanted and the BlackBerry customers and the, what was that other platform, Alan? The other mobile platform? I am. No. Jon (07:53.436) Yeah. Allan Ritchie (08:04.147) You just poking the bear. I never worked with Windows Phone or whatever the hell it was called back then. Yeah, sorry, which is a useless thing. David (08:10.145) I think it was Windows Mobile at that point. So yeah, I mean, they had features, but the iPhone didn't. But it was a full touch interface. And that was a whole new paradigm that required some adjustment. And yeah, I mean, for me, I did a little bit of monotouch, monodroid before 2011. I don't know exactly what year it was. I didn't do any production work with that. I looked at it because somebody told me. Jon (08:12.822) Yeah. David (08:38.665) Hey, I know you do Microsoft technology things, which I did a little bit of. At the time, I was still doing a lot of Flash and Flex, ActionScript stuff, or PHP, of course, some Ruby on Rails. But Matt Mercurio said, hey, I think you'd really like this thing. You're into mobile and you're into.NET, so check it out. And I was like, okay, I'll check it out. Jon (08:51.161) Oh yeah. David (09:05.669) But I didn't get anywhere with it from a production standpoint. But I did add it to my arsenal of things I would bid, right? Like when I would go to a customer, or a customer would come to me and say, I need a mobile app. Uh, you know, what can you do? I would bid it, and I would give different bids by technology. And I'd give a discount on something, right, that I wanted to learn. Um, and so, you know, eventually, I got some... Jon (09:25.041) Yeah. David (09:30.357) some.NET projects in there and built my own app too. But I was building Objective-C apps and Java apps before that for mobile. Jon (09:38.419) Oh man. Yeah. I did a little bit of objective C on one app and that was right around or before the time that mono touch kind of was just starting and I, you know, as soon as I never had to write like strain by concatenating strain again, I was, I was a happy person. David (09:53.053) I'm going to go ahead and turn it off. Maddy (09:54.61) Yeah, I didn't have a Mac until I started. Allan Ritchie (09:54.791) Yeah, I was not a fan of Objective-C. David (09:55.749) You know, yeah. You didn't have a Mac until you started the job. Maddy (10:01.002) Mm-hmm. Which also was a big shock because I started and my boss at Microsoft gave me a MacBook and I was like, hello, this is the wrong company. But no, I only had a Windows PC, so I never touched Apple Development, but I did do some Android stuff. I did it on Linux. I did like Android Studio when it first came out. Like baby's first Android Studio and I had done the Eclipse stuff before it or the IntelliJ whatever it was back. And I remember being like, wow. Jon (10:12.397) Yeah, where am I? Maddy (10:30.546) I actually made an Android device run C++ once to do some image something. And then I was like, this is stupid. Nobody's gonna use this on their phone. And I went back into my hole of like command line development. David (10:44.421) I don't know where all we want to take the conversation, but there's a couple of things I think people would be interested to know like after the acquisition, Microsoft buys Xamarin and Xamarin comes in using Google Docs, using Slack, using Dropbox paper, those were the preferred tools. Well, immediately like Google Docs gone. Maddy (10:58.646) Google Drive. Jon (10:59.751) Yeah, Slack. Yeah. David (11:10.138) and all the mail and all that sort of thing got nixed. But we held on to this culture of Slack and paper for a long time, for several years. Jon (11:20.667) Yeah, we, we even, uh, you know, they, when they started transitioning us to teams to like, you know, I feel like there was a, I mean, teams was earlier on too, right? They've, they've done a lot since. And there was a lot of things that were like, no, we can't use this because of this. And I remember, you know, being on like several conversations with people on the teams team and like, what do we need to do to make this work for you? David (11:29.273) It was very early. Yeah. David (11:43.864) Yeah, we had built so many. extensions or plugins or whatever Slack called it, for our CI systems for when issues would get filed or like roll-ups of how many issues, PRs, etc. I remember doing a lot of that sort of work to make that stuff visible in the app. But the reason I was triggered to remember this was, I remember when Maddie joined the team and I was like, oh, hey, here's my paper doc or whatever. She would flip out. Jon (11:48.808) Mm-hmm. Maddy (12:14.848) Yeah David (12:15.709) live.microsoft.com or live.office or whatever the URL was, there it is, it's a PowerPoint. He's like, use, word is awesome, use word, use OneNote and I'm like, okay, all right, I'll get on board. Maddy (12:19.714) SharePoint. Yeah, I was a real strict. Jon (12:21.119) SharePoint. Allan Ritchie (12:22.292) Oh, SharePoint, jeez. Allan Ritchie (12:29.739) One note is awesome. One note makes sense. Yeah. Maddy (12:31.278) I know that's pretty good. Jon (12:32.283) I mean, when we first tried to use it for everything, it was like everything was conflicts, right? Like it's like somebody would make a change and then it would conflict with something else and, does it? I don't know. I am firmly on the loop side of the fence these days. Yeah. Which is like paper-ish, right? It's like, it's okay. It's good. I like it. Maddy (12:40.151) Yeah. Allan Ritchie (12:42.395) It still does that. It's yeah. Maddy (12:47.17) I was gonna say, I'm all loop all the time. So. David (12:50.658) I'm a loophole. Maddy (12:54.785) Yeah. Allan Ritchie (12:54.899) How many bugs have we found using it for notes for these episodes though? Jon (12:59.775) I don't know. I'm just happy it has code formatting, you know, stuff now, right? Because that was the big thing. It's like if we're going to write docs, I need to do code syntax. Maddy (13:02.03) Hmm Maddy (13:06.966) Yeah, I like the labels, not to be a PM or whatever, but like I can create my little labels and I can label things in my notes and it's very nice. But, oh my God, Joan, you're missing out. Jon (13:15.119) I don't know if I've done labels on it. I guess I have a new thing to try. Yeah. David (13:18.221) I didn't know labels was a thing. I know reactions is a thing if you can happen to accidentally get to the right button. Do you remember, Matty, what we had to do? And John, you might remember this too, because you have Macs. What we had to do to log on and file expense reports and access any of the intranet stuff on a Mac. Jon (13:24.859) Yeah. Maddy (13:34.122) Oh my God. Yeah, using a Mac was so bad. And I had never used a Mac. I like, I never had a Mac growing up. Like we always had Windows PCs. And so first of all, I was learning how to use a Mac. I was also learning how to like work at a corporate job. And then Dave was the one everyone kept telling me to go ask questions to. And Dave had only joined the year before I did. And everyone's like, he's been around. I'm like, he doesn't know how any of this Microsoft stuff works. Jon (13:35.204) Oh yeah. David (14:02.439) That's your... Maddy (14:04.551) I was an intern longer than he's worked here. Like, what the heck? So, you know, people would point me and I'd be like, how do I file an expense report on a Mac? And you'd, I don't know, you had to like VPN in this, like create or like run the window. Well, didn't we have to run windows and parallels for a bit to do any of that stuff? David (14:19.085) you had to VPN to a Windows box, log into it with your domain account, and then you had to decide, is this going to work in IE or Edge? Because at that point in time, and there are a few cases now where a website we go to wants to be Edge, and it freaks out if it's Safari Chrome. Jon (14:19.313) Yeah. Maddy (14:29.81) Yes. David (14:41.189) But yeah, we still had to guess which one it was going to work in, and we had some really archaic systems back then. But even if you needed help with your Mac, you take it to the help desk in the whatever that floor of the Boston office that was, and they'd be like, yeah, I don't know what to do with this thing. So the Xamarin coming in was a huge shift for the Developer Division in terms of bringing in non-Windows devices, a lot of them. On the build system side as well, right? The CI CD, having to have Macs in the cloud to be able to build things. But then also the remote, like the percentage of remote employees that our division went to when they just acquired Xamarin was astronomical, like it was a huge. Maddy (15:21.183) and everyone was remote. Jon (15:27.811) Yeah, we blew up the number. Yeah, the average up. Maddy (15:31.995) Yeah, before it was cool, notably, and by cool I mean publicly mandated for health reasons. David (15:38.201) Right. Yeah. So it was a huge culture change for the teams at Microsoft that we joined. And now we kind of everybody's remote. And but I think John and Alan, you've both worked remote for a very long time, right? I mean, maybe you go into an office, but I've worked remote for the majority of my career. Jon (15:56.008) Yeah, I mean with Xamarin I was always remote, so it was only before that I went into an office. Allan Ritchie (16:01.999) I do go downtown a fair bit. David (16:02.105) And then when the pandemic happened, they were asking us, like, what do we do? How do we do hybrid? Jon (16:04.867) Yeah, how do we do this? Allan Ritchie (16:09.547) John's in a remote part of Canada, so he doesn't get out as much as I do. I'm near Toronto, so that's... Well, for the Americans, that is Canada, right? Maddy (16:17.502) Oh yeah. No, Montreal for me. East Coast, baby. French-Canadia. David (16:17.53) Hahaha Jon (16:21.387) Oh, yeah. Allan Ritchie (16:21.754) Yeah, much real. Jon (16:24.159) So my trivia is always, because it's like, oh, Allen's in Toronto. Like you're in Ontario, you're in Canada. You must live next door to him, right? It's like, no, it's a three and a half hour, four hour drive. But then my party trick is always like, I'm more south than several US states entirely. Same kind of, what is it, latitude as Boston pretty much, actually. Maddy (16:48.351) Mm. Allan Ritchie (16:51.307) the armpit of Ontario. Jon (16:51.555) I think actually you all get more snow than we do here generally. Yeah, I mean, yeah, there's been nothing this year. Maddy (16:55.33) Not this year, but maybe generally. Yeah. Allan Ritchie (16:59.211) We're about to be snow bombed right now. It's starting out. No, it's not. There's nothing good about snow. Nothing. Maddy (17:01.536) Oh, that's exciting. Jon (17:03.069) Oh good. David (17:05.344) Ah, gotta refresh the igloo. Maddy (17:05.71) I love snow. Once I finished shoveling it, I love it. In that window where I have to deal with the removal of the snow, I hate it, so. Jon (17:15.775) All right, so we we've talked a little bit of history. Um, I don't know. What do we, what do we want to cover a little bit? Like how are things going? Where are we at? I don't know. Alan, do you have any, any questions specifically in mind that you want to turn to? Allan Ritchie (17:16.007) I could deal without snow. Allan Ritchie (17:29.447) Yeah, I'll get going. I gotta poke the bear a bit somewhere, right? But no, that's a good opening one. How are we doing right now? We loving things? We good? Jon (17:39.763) That's a good PM question. Maddy (17:41.078) That is a good question. Dave. David (17:41.469) Oh yeah, I mean the product is doing really well. When the pandemic happened, understandably, numbers started to dip. People were not doing projects, projects went away, etc. Then of course that was right when we announced.NET MAUI, although it wasn't going to ship or didn't ship for another year and a half or whatever. So we had hit a high point right before that, which is why we decided to do the transition of Xamarin usage, and more importantly, satisfaction. Usage wasn't actually growing for Xamarin at that point much, like a trickle maybe, it was mostly flat. Jon (18:18.439) Mm-hmm. David (18:24.025) And so, but the satisfaction was increasing. And so it's like, well, how do we regenerate interest in the product? How do we, you know, there was a whole effort of one.net to consolidate the technology, the BCL based class libraries and things like that. So you asked me, how's it going? And I'm giving you history. So, but to put it in context, right? Like, and so as we've been building Maui, Jon (18:44.435) That's right. David (18:50.849) Understandably with some of the delays and things like that and you know the initial quality going out the door for Production use wasn't what we wanted it to be But we needed to get something out in the market so that the third party ecosystem could start to adopt it and move it Lot of companies a lot of vendors came to us and said we're not building anything until you ship something It's like, well, we know we're going to have to get people going from Xamarin to.NET. They're going to be depending on third-party services, whether they're build services, analytics, Crashlytics, all the things. So we needed to put something into the market. Again, unfortunately, it wasn't at the quality we wanted for production use, but it was good enough to at least get something out there. Somebody is going to slam me on good enough, I understand. But get something out there so the ecosystem could start to adopt it and bet on it. And so from that point, when we GA'd, we really count our GA, not so much when the SDKs went out at that, at the point that I'm talking about, but when you actually had a visual studio that supported actually developing with our stuff. So that was later in the year, I think it was late August. Jon (19:59.376) Mm-hmm. David (19:59.889) From that point, we have been growing steadily at some points rapidly. And so as of right now, if we just look from now back to the.NET 8 release, which was a really good release for us, we've heard really good feedback from it. I'm not saying like mission accomplished, we've arrived, etc. But we're seeing 169% more apps showing up in public app stores using.NET MAUI. Some of those are upgrades. Many of them are new apps. And when we compare the usage of Xamarin to Maui, we're also seeing that we have new developers joining the party on the Maui side, those that had never used Xamarin before. And very often, that story is, hey, I've read some negative things about Maui. I just wanted to call and let you know that we're having a great time, and we didn't know XAML at all before this, and we're shipping a great app. And they show us their app, and they're beautiful. I mean, not all apps are and we can't control how good looking an app is and how successful it's going to be, but the fact that they're having good developer experiences is super encouraging for us that we have gone from a first release that we were like, we got to get this out there, but it's not what we want to now seeing customers be very successful. We know that customers are still needing to complete their upgrades. Jon (21:00.389) Yeah. David (21:26.593) End of Xamarin support is just around the corner, May 1st. However, there are dates beyond that. Your apps don't get pulled from the App Store. You're not going to lose your business, etc. We have FAQs and stuff on that if you're curious and or panicking. Jon (21:36.101) Yeah. David (21:46.309) But yeah, so we look at numbers like that, 169% more apps in public app stores. We look at our general adoption numbers, which is growing at a healthy pace, like I don't know, five to 10% month over month. Overall, total usage, we're seeing the highest numbers that Xamarin ever saw. So that's super encouraging as well. It's not really all about those numbers. We're a bit more interested in the impact customers are able to have with the apps they're building. Is it helping your business? I mean, that's why we exist. I don't know. I'll speak a little bit for Matty, but that's kind of what gets us excited at the end of the day is being able to hear a customer story where they were able to ship an app that made some meaningful impact for their business. Jon (22:20.264) Mm-hmm. Maddy (22:26.477) Yeah. David (22:35.467) for the world, right? Like, I mean, we really do kind of have those altruistic leanings that we want to see people being successful and enjoy using the product. The total number of people using the product really isn't the main goal. We just report it as a measure of some view of success, but it's not the main one. Maddy (22:36.834) Yeah. Maddy (22:59.49) It's been in general, I think we have been going kind of uphill in the mud with this whole Maui project. Yeah, I like, cause obviously like we, I remember sitting in Redmond with Dave, I've told the story before, like in February, 2020 and Dave and James Montemagno, who was I think still on the team at the time being like, this is the plan. We're gonna, we're gonna do this. We're gonna move to one.net. Allan Ritchie (23:07.615) That's a good description. David (23:07.712) Very well said. Jon (23:08.711) Yeah. Maddy (23:25.166) We're going to ship it in.NET 5. It's going to be this whole thing. I was like, awesome, great. And we were supposed to come back in two weeks for MVP Summit to announce it to our MVPs. And that obviously never happened. And so when the economic impact of like COVID sunk in and companies were like, we need to pivot all of our resources into building things that are going to make money with hybrid work, like this isn't going away in two weeks. Like this is something that's going to happen. You know, a lot of these, these like people on the Maui team or on those at the time, Xamarin team got kind of moved into other parts of the division just to like help bolster those remote work. Like Microsoft had a really big opportunity there. So business decisions, right? And so that was like the first blow and then, luckily some of those people came back. Some of those people went on to do cool things. So it's not like it was the end of the world for anybody. At least they weren't laying anyone off, right? But then there was the blow of, okay, well, now these other products are not important to the business anymore, or they just don't make sense in this world, or the economy for software engineering is booming and people are getting hired for these insane offers. Oh, and now the economy is completely crashed and people are not getting hired at all. And companies are scrambling for capitalism, whatever. And so, I don't know, with that, and you've also seen as the community, things that we know and love, I mean, most recently App Center announced that it's going away. that are entirely out of our control. And so we've been, as the Mali team, scrambling to make sure that there are still solutions for you guys, for us, because we use a lot of these tools. And so it's been like, there were a couple of times, I remember I think probably this time last year, around the time that the VS Mac decision was starting to come to light. And I was like, how are we going to survive this? What are we gonna do? Jon (25:10.491) Yeah, it's, it's always like, you know, that's one of my favorite, not favorite, least favorite parts of, of like the whole journey here too. And it started even before that decision with this particular, uh, perspective. But you know, early days when we had like no Maui support, no.net support in VS Mac, you know, to build apps and stuff. It's like, like that sucks for customers for all you people out there, but it also really sucks for us as a team to try and build Maui itself, right? Maddy (25:36.204) Yeah. Maddy (25:40.416) Yeah. Jon (25:40.623) Um, so is, it was a lot of work and that continued through that. Yeah. I'm continued through that decision of like, okay, like, you know, VS Mac doesn't really make sense to keep doing for a number of reasons. Great. We want to transition to VS code, but like, yeah, how, how do we get there? How do we keep, you know, being productive while we get there? Um, so it's, it's been a lot, it's been an uphill battle. That's for sure. And like, like you said, David, like the. Allan Ritchie (25:42.904) I get rage customers there. Yeah. Maddy (25:44.877) Yeah. Maddy (25:55.618) How? Yeah. Maddy (26:03.692) Yeah. Jon (26:06.279) The quality, you know, with the first release kind of midway through a.net release, you know, we all knew we had a lot of work to do. We still have a lot of work to do, but yeah, it's, I, I know one thing that kind of has kept, uh, me going has kept my team going is that like, generally everybody really does care who is building, you know, this, this set of products across the teams that build them. And, you know, if anything, it's like, people get frustrated that they can't do more. and they don't have more hours in the day to do it, right? Maddy (26:36.714) And we've been super like at this point in time, I'm feeling, cause as Dave said, like usage is growing. Sat is very high, especially with people new to Maui. Like that's not very high, sorry. Sat is higher than it was. It can always be higher. But like, I'm feeling pretty good despite everything. And the community has also bolstered a lot of it. Like people have filled in gaps. I mean, John and Alan, you guys have filled in gaps and like your free time of things that we weren't able to do. So, I mean, there's a lot that... Jon (26:57.129) Mm-hmm. Maddy (27:06.75) I feel very lucky and I feel like now we're kind of, despite all the chaos on a good trajectory. It took a while to get there, but I've had people in.NET and other where it'd be like, well, if you remember.NET 1, that was a disaster. So don't sweat it. I mean, we were just saying the iPhone didn't have copy paste, right? So like, it's okay. It's okay. It's just, you know. Jon (27:19.442) Yeah. David (27:25.553) Hmm. Heh. Jon (27:28.731) Well, and for, you know, dot net eight, like talking about that as being a turning point, you know, Alan, like, um, I know you've kind of said a few different times, a few different ways, like your experience with it, you know, seems to be that, yeah, we know there's rough edges, there's quality things, but like, you can get done at this point, what you need to get done with a little bit of work, right. Allan Ritchie (27:49.271) Right. I've even since net seven, net seven is when I didn't touch net six net six was a bit, it was a bit much there, but net seven was mostly fine. And all the sharp edges are still around collection view. They always have been, they were in Xamarin forms, right? These aren't new surprises. Um, you just work around them. You're going to go to any technology. You're going to find the same thing just in different areas. So pick your poison. Jon (28:02.146) Mm-hmm. David (28:02.845) Mm-hmm. Jon (28:04.828) Yeah. David (28:16.297) On the topic of the history and where we are in the general trend of things, there's a great presentation from Richard Campbell called From Mono to Maui, The History of Xamarin. He puts things in the context of very Microsoft-centric, but long history of client app development. Some of the details that he has captured over time, Maddy (28:27.863) Yes. David (28:44.577) And it's a story that continues to evolve, of course. But like going back to WPF and saying, yeah, WPF was out for three years before an app showed up. And I'm like, what? What? Jon (28:58.427) Well, I remember to, um, was it, it's like two summers ago now, right. When we were the three we are over in Redmond, um, meeting with like the intern team and y'all were there too. And we went and had, you know, a meal with Hunter and like, he kind of said the same thing too, right? Like remember the ASP net, like the MVC early days and how much that stuff churned and everything. Like, you know, it's, it's a process. It takes a while. Allan Ritchie (29:23.615) No offense. Every time I see a picture of you guys in Redmond, it's, it's not eating. It's usually drinking and somebody's usually looks ridiculous. Yeah. Dave, I think I made fun of you for a long time about that. I'm like, dude, all you put his drunk pictures online. What's going on? David (29:23.673) Yeah, and the thing that... Maddy (29:29.27) That's... Yeah. Jon (29:29.528) I think there was food there too, so I'm not wrong. David (29:31.217) I don't know what you're talking about, Ellen. David (29:37.946) Yeah, sure. David (29:42.693) The, uh, no, I forgot what I was going to say. Oh, uh, you know. While those stories certainly can give us some encouragement that not everything has been roses for other pieces of the product that are now quite successful, it's also like, well, what are we looking for then? Why do you still exist if you've had a bad day? Well, because we are growing. We do have signs of positive improvement and quality improvement and things like that. At the end of the day, I keep saying that, that forward progress at a rate that is acceptable to everybody. But I tell you what, the end of Xamarin support coming has brought to light several companies who are like, these apps generate millions of dollars for our company, and they're super important. It's like, I didn't know you existed. That's really cool. Let's help you get this upgrade done. Allan Ritchie (30:36.156) Sounds familiar. Jon (30:41.457) Yeah. Allan Ritchie (30:42.379) It sounds familiar. Is that hitting home for one of mine? David (30:45.833) Sorry, Alan. I keep talking over you and I can't hear you very well. Allan Ritchie (30:49.159) You can't hear me? Am I not talking in my mic? There we go. All right. David (30:51.969) I can, but I'm also very loud because I have this big old mic. Allan Ritchie (30:56.839) So let me ask, here's a good round table question for the three of you, since I'm kind of the odd man out here. What's some good lessons learned over the last, you know, with the Maui release since Maui 1.0? What's some good lessons learned? Good, bad, and ugly. Start with Dave. I wanna put Dave on the spot. Dave always gets me. So I'm gonna get him today. David (31:17.269) My main lesson is, I stand, we made a lot of decisions and hindsight's always 2020 in terms of some of the architectural decisions, the technical decisions. Many of those that are pointed out online as being the horrendous bad decisions. I'm like, actually that hasn't been that impactful to customers. The things that I know now that are impactful to customers, we had... plans and solutions to ease those pains, in particular like layouts, right? The layout system was rewritten, simplified. I think the architecture is something that generally, and John can correct me, but I think is easier to work with. Jon (31:59.373) Absolutely. David (32:00.253) I will say I've been very pleased recently to do pixel comparisons between Xamarin Forms and MAUI and realize that I didn't even know before that Forms was miscalculating things and it's actually accurate in MAUI. But those decisions to rewrite a core piece of the platform were done for good reasons, but we did it initially with the idea that, okay, well, we believe we can maintain a full David (32:31.848) and we got to a point in some of the pressures that got us to the point were pandemic related, were people related, you know, time constraints, but that didn't come to fruition. So I think the thing that I would do differently is make sure that we had done an adequate spike on the whole idea and make sure we were going to be able to deliver on it, which is Hard to do obviously when you're building something new like you can't you know, the new thing is the spike, you know, but Jon (33:00.093) Yeah. David (33:06.761) There are a few of those cases where we thought we had an escape hatch, we thought we had a fallback to a compatibility thing that didn't materialize, and for valid reasons didn't work, and we had to choose one path or the other. We could have spent infinite time thrown into a black hole that we didn't know how deep it was to make that compatibility thing work and delayed the release further and further, or we could have said, you know what, we're going to- we're going to cut our losses on that and we're going to invest the effort into the new system, which we believe is better and is going to be better. Allan Ritchie (33:43.803) I do remember that timeline. It was kind of, you were damned if you do and you're damned. If you don't, this is really what was happening. David (33:47.905) It was, yeah, it was that was, you know, in terms of impact, customers doing their upgrades and migrations, I think is probably the most impactful because you now see layout differences between platforms and you don't have any option except to fix your layouts. Jon (34:06.767) Yeah, I think I agree. Um, that was, that was almost what I was going to say too, but I think in a slightly different way, just the general, you know, we bit off a lot more than we were able to chew and maybe in hindsight, you know, going into the stretch with all of the different factors compounding like COVID and everything we should have. Maddy (34:21.218) Mm-hmm. Jon (34:30.951) We should have really reevaluated some of those decisions maybe and figured out how we could, you know, either defer them or just not do them. Right. Like there's where we are today. It's, it's a little bit better to feel about like, Hey, okay. The whole handler architecture. That's that's okay. You know, re redoing the layouts, I think was a non-negotiable. I think we had to do that one either way. Uh, just given the complexities of the existing thing and how. Nobody wanted to ever on my team touch layout code, right? It's like, if there was a bug, it was like, if you touch it, if you look at it, you're going to break it in some other way. And that's, that still can be true, but it's not nearly as, as bad as it used to be. Um, but there are maybe other parts of, of how we re did some bigger things that we could have said, eh, you know what? That's pretty expensive and maybe the value is not there, uh, for the cost, you know, to do it right away. So. Maddy (35:04.691) Yep. Jon (35:29.975) I think that was the hard kind of learning is like we had all these ambitions and we really over scheduled ourselves. David (35:38.514) Something that I'm reminded of, people might think that Xamarin was always open source, and Xamarin Forms was not initially open source. It was open source when the acquisition occurred. So those layouts evolved first. Allan Ritchie (35:46.219) I know, there's a lot of clothes. David (35:57.437) not open source. And the rationale behind how they were written and how much work should they do on the developer's behalf to work around things versus putting control in the developer's hands. Those decisions were made very differently in that time. Whereas Mali was built completely in the open. So that's a huge difference. Jon (35:58.751) Mm-hmm. Jon (36:17.352) Yeah. You know, that's, that's a good point to like one of the other big learnings that we've had is cause we basically took all of the forms code and moved it over, right? Like maybe we, we moved it and refactored it a bit into like the handler set up and that kind of stuff. But there's been so many cases along the way where we realize, Oh, if we actually like, if you almost had started from scratch to implement like, you know, button or something. That might've been easier than carrying over the code. Cause what we've done over time is really peeled back all of the different hacks on top of hacks, you know, to make things behave consistently between platforms and stuff that were in forms. Uh, like accessibility is one really good example of this where the more we peeled things away from like us trying to, like you say, David, trying to do more for customers or like be more opinionated on what they might want. the more trouble we got into. And so we just started like undoing that, you know, rewinding that whole pyramid of stuff. And we arrived at a much better place by doing less. Maddy (37:26.442) Yeah. And the original Mali concept, as we thought, like fully included MVU and that whole thing, right? Like we were like, we're also going to do what's turned into Comet, right? As an experiment. And Clancy at the time was like, yeah, I'm just going to like build this and we're going to ship it with Mali. And we were like, cool, that's a whole new experience. And I think we fell into like the quintessential scope creep trap where it was like, we can do everything. No, you can't. Like you're going to get people to upgrade from. Jon (37:37.972) Mm-hmm. Maddy (37:54.866) zammer into this new thing and then they're also going to change their whole architecture? No they're not. Like focus on the first one. And then like it's not like we've stopped caring about MVU. We just decided that was not something and there were a bunch of other examples of this too but like we weren't going to hold Maui back on shipping because we didn't have this futuristic thing we thought or I guess alternative thing that we thought was an important part of the story right? Like we at the beginning we're like oh yeah we're gonna do all this stuff oh my god. Jon (37:59.019) Yeah. Maddy (38:24.118) And then I know John and I said about a million times in 2020 and probably early 2021, why are we building the bus when we don't even have the wheels on the bus with the tooling stuff? We would be building, I mean, workloads were brand new, all of the Xamarin team moving from working on mono-based stuff to.NET-based stuff, NET having to accept the fact that it now had developers all over the thing internally, like Mac. and the different IDEs, and now we were doing all this weird mobile stuff, and.NET Build didn't even work for MAUI for a little bit. There were just so many little things that we ran into, and it was like, hold on. And I don't think, I mean, everything is clearer in hindsight, right? I don't think we could have done it any differently. I don't think we could have spent a year building out tooling to build MAUI, and then started building MAUI. I think we still would have run into a zillion things, but there were so many weird, just like... Oh yeah, I can't install the latest Visual Studio internal preview because it's gonna overwrite like this very specific.NET installation I have that Mali works with. And the newer one does not work with the internal Mali builds, but the earlier one doesn't have this object. Like just, I reformatted my Windows machine probably like 12 times in 2020. So yeah, I mean, it was wild, but we learned a lot. And I think.NET itself is probably a little better for it too. Jon (39:44.019) Hehehe Maddy (39:53.502) I hope so. I hope. Allan Ritchie (39:55.911) You know, you know, it's funny you bring up that you didn't want customers to have to do these rewrites, but customers aren't having to do rewrites of their XAML or anything Xamarin forms to Maui related, but I have not seen a customer do a straight lift and shift. So for what that's worth, not one, and I've done a bunch of these now, I have not seen one customer do a lift and shift from Maui to Xamarin forms for what that's worth. So as much as people want to blame, Oh yeah, the app's slow. Do you know how many times Maddy (40:09.899) Yeah. Allan Ritchie (40:24.531) I've seen it be just the general architecture and they've tried to redo their architecture at the same time of moving to Maui. You know, the ports, it's, it's not a port job anymore. You're, you're rewriting a lot of stuff. So don't just, don't just point fingers, stop and look at your own stuff first. Maddy (40:31.243) Yeah. Maddy (40:41.038) Yeah. Dave and I have definitely started getting this advice. Like it's like, okay, if you want to migrate as quickly as possible, don't worry about your code. Like just get it running. Yeah. And then you can re-architect later. David (40:42.909) Hehehe Jon (40:50.427) Yeah, migrate. Allan Ritchie (40:52.167) It's the same rinse and repeat. I have never seen it. I'm well into the double digits of these now and I have not seen one. Jon (40:59.355) I mean, we did model that behavior with what we just talked about, right? With like farms to Maui. It's like, wow, let's, let's reinvent all these things. Yeah. So. Yeah. David (41:03.603) Ha ha! Maddy (41:04.01) Mm-hmm. Yeah. Allan Ritchie (41:08.451) Right, but for a lot of parts, they could have copy and pasted a lot of them and just switch namespaces. But I have not seen one customer, not one do that at all. Not one. David (41:08.821) also learn from us. David (41:13.489) Yeah. Maddy (41:20.206) I feel like it's hard to justify like prioritizing tech debt in a company, right? So I guess for smaller companies, it may not be less of a problem, but we're like, they can now blame Big Bad Microsoft for making them deal with tech debt. So they're probably, I imagine, someone tell me if this is totally wrong, but I imagine the dev leads are like, let's just shove all of this like tech debt that we've wanted to do for years and call it the Mali migration. And at least then we can justify it to leadership, right? Like we do this too. Okay, we really can only ship bug fixes and like later visual studio previews, right? You can't ship new features a week before it goes GA, but we're like, this is kind of a feature, but it's actually a bug fix. So we're just gonna call it a bug fix, even though it's a feature, and then we can ship it a little bit later, and then we can smudge it in there, right? Jon (42:05.311) this feature fixes the bug, which was, we didn't have the feature, so. Maddy (42:09.03) Exactly, exactly. So I've heard a couple of customers like, yeah, like we're just saying it's the Maui migration, even though it's actually like, we need to totally get rid of all of this stuff that forms replaced years ago, we just never took out our own custom renders. And I'm like, hmm, bad idea, but also good idea. So. Allan Ritchie (42:26.387) Well, I mean, I've done, I've seen a lot of bad Xamarin forms architectures just because there wasn't really anything to kind of like ASP.net had like a whole, this is how you wire everything up. Xamarin forms didn't have that. So a lot of people were inventing the wheel for that stuff. I mean, I think I've talked to David a few times about the big JSON files, we've seen people load. I've seen some nice Yeah, I know, that's a good story. We've told there several times. I've seen dependency injection with like 200 plus services. Maddy (42:33.838) Yeah. Allan Ritchie (42:53.703) You know, and they always blame that on Xamarin forms, right? And I was like, no, dude, your app is taking like 30 seconds to start. That has nothing to do with Xamarin. This is before Xamarin forms is even starting like come on. And then they port that and I've seen that ported. And it's like, well, if it was bad over here, it's not going to be much better when you get to the other side. So like, it's not a lift and shift and you can't blame you have to look at your own stuff first before you start. Right? Do a POC, man. From a management perspective and a business perspective. I'm not sure why managers aren't going, okay, that's great. We did a little hello world, but have we done anything real? Right? And that's what they need to do is maybe test that, that water a little bit better first. Do we lose Maddie? Is she a... Maddy (43:37.77) I think I'm here. It just, everything unplugged and replugged. Do you hear me? Okay, good, good. Wait, so Alan, can I turn this question back on you? Like, how do you think things are going? As someone who's been around and you can be mean, you're allowed to be mean to me. I can take it. David (43:39.225) No, her video just blip. Allan Ritchie (43:40.107) Huh. Alright. David (43:42.638) Yes. Allan Ritchie (43:49.084) Ah Um Allan Ritchie (43:54.323) No, I don't need to be mean. I've told my stories plenty. If you don't hear them from John or David, then for the most part, like people, when I go into these companies, I used to call them project rescues because usually it's like the project's so bad that they just need help getting it out. You can never do that. The project got bad usually nine out of 10 times because of management, unrealistic timelines. Like I said, nobody's doing a lift and shift. You're doing a rewrite. Maddy (43:56.41) I'm good. Maddy (43:59.886) You're true. Allan Ritchie (44:23.891) doesn't count. You can't, you have to look at the whole thing. Right. So when I've done my own apps and my own ports, now I've been at this a long enough. I know how you guys work. I know your stuff. I know how to do XAML. I know how to do my own code and I've got lots of grace somehow. For some reason I have more grace than David. I'm not really sure how that works out, but, um, I haven't had the problems. And when I do have the problems just like any other engineer should be doing, David (44:42.918) Hahaha Maddy (44:43.841) Hehehe Allan Ritchie (44:50.003) You go out and you find a solution. You don't point fingers. You just fix it. That's what we do. That's why we make the money. So I've had a lot of success with Maui and a lot of success with these ports or whatever the hell we're going to call them. But when they don't go successfully, it's not because why it is partially because of the engineering, but nine out of 10 times it's because of the management around them. That's what got them in that hole. And it's what continues to get them into the holes. So Look at your own stuff, reflect in your own code, in your own engineering. And then when you truly hit a bug with Maui that you can't work around, then raise the bug, do the reproducible sample and just find an answer because that's why we get paid the money. Figure it out. Maybe that's a bad answer. I don't know. I'm sure people are going to give me the middle finger online, but I don't, I mean, that doesn't really bother me at all. Jon (45:38.024) So. Jon (45:43.423) Yeah, I mean, like, yeah, at the end of the day, like we've said, we know we still want to improve on a lot of things with the product too. So like, but it's, it's kind of, I think, like a meeting from both sides, right? Meet in the middle somewhere, like help, help yourself. It's open source. But yeah, we, we acknowledge that, you know, we have work to do and we want to make it better for you too. Allan Ritchie (46:01.763) But that's the whole nature of any product, right? You're out there to improve it in all aspects, the best you can, right? If you just wanna kinda do order taking, you know, I feel like this is probably the wrong career. Software engineering is not about order taking, it's about, you know, engineering. Build things because it's fun. Jon (46:19.167) Creativity. So speaking of being creative, looking forward, we have a little bit of time left before we kind of run out of episode length here, if people are still listening at this point. Alan, you had some questions or some thoughts about the forward looking stuff. Allan Ritchie (46:39.375) I guess what would, if there was one thing you'd like to see, one feature in Maui right now, I'll round table this. Um, what's one feature you'd like to see in Maui right now? I'll start with David, but I'm going to time box him. Maddy (46:54.051) Oh. Good try. David (46:54.501) I don't know, because I've refused to even entertain features for the... Allan Ritchie (47:01.319) What's something personally, I guess, best for your project, right? Cause you're doing your own little projects too. What's something you would love to have out of the box that you wish was there? Is it because it's, it, you know, there's what's relevant to customers and there's what's relevant to you. Right? So if you're, if you're in a dev box here, what's relevant to you, what would help you That's a tough question. I love, I love it. David (47:25.425) I mean, for me, honestly, the things that I'm looking forward to aren't controls or even features. Well, I guess I could say, you know, I want the ability to do all the inline code things in XAML. Not necessarily like Razor syntax, but like if you look at what the UX Divers, David (47:50.689) in a markup extension and get pretty far with that. I think something along those lines would be great. I'm going to give you a couple. I was asking for this just this week. I want the ability to see all of my static resources and identify before I even build. Are they there? Do they exist? Are they going to be found? Rather than at runtime getting a crash or a silent error. saying navigation couldn't be completed because the key for this resource can't be found. Come on, show me that stuff. I would love for it to just... It is. So most of my stuff is tooling. Although I think that could be a Roslyn analyzer, but nobody has answered me on that thread. The main thing I really, really want... I really, really want... I just want all my hot reloads in the VS codes. I really do. Allan Ritchie (48:26.527) That sounds like a tooling thing. Maddy (48:26.826) Yeah. Jon (48:36.593) Yeah. Jon (48:44.927) Hehehehe Maddy (48:46.531) Yeah. David (48:49.393) please, and faster build times, and deploy times. Maddy (48:50.406) I know. Almost. I don't know when this episode's gonna go live. Probably soon, so. Not- Jon (48:56.076) next week, a week from recording, basically. Maddy (48:57.846) Okay, yeah, so no, you won't have it yet, but soon. I mean, it's in progress. I see the demos. Jon (49:00.167) haha Allan Ritchie (49:04.152) All right, Matty, give us your what would you like to see tooling Maui, whatever? Maddy (49:08.702) Yeah. Okay. Let's see. Papercut wise, like little things that are totally attainable. We just haven't had time for them. I want to be able to in a template select that I want to do C sharp first UI or XAML UI. I don't think that should be difficult. We just haven't done it yet. I mean, if anyone's used Matt Lacey's like Maui app accelerator, it's so nice. You just click like these are the target platforms. This is what I want my layout to be. Blah, blah, blah. Um, I think that would just be. We spent all this effort scaling back templates because the overwhelming number of choices basically made it hard for people to figure out where to get started. But I think with Maui, we scaled almost a little bit too far back. So starting to add those things back in. Most of my asks in the SDK were stupid things, like gradients, which are there now. So this was way back, so I'm happy with that. The two things I really wanna see that are more visionary, one. I want an actual, I know you guys can't see my camera anymore because it turned off for whatever reason. So you can't see my fingers, which is good because people online can't see those anyways. So I have to actually use my words now. One is that I want a shell like navigation flow visualizer. Like I wanna be able to drag and drop, or not even drag and drop, just like when I type out my shell, my app shell. I want it to say like, okay, your homepage is three tabs. And then when you click on this tab, it goes to this page that has top tabs or like a fly out or like this is the nav stack that exists there. Jon (50:42.979) So kind of like the Xcode designer. Or, yeah. Yeah. Allan Ritchie (50:44.396) Xcode. Yeah. Maddy (50:45.814) Yeah, yeah, like the OG storyboard like flow thing. I've wanted that for a long time just because I have I don't have too much of a problem visualizing XAML for a page anymore. Especially with hot reload, but like visualizing the way that my app is laid out and the data that flows between those pages I always have a hard time with. And the other thing. Yeah, okay, listen. A girl can change. I've evolved. Allan Ritchie (51:06.859) Didn't you say you were big on the command line before? You sound like you want more buttons. Maddy (51:16.178) Um, but yeah, I think, I mean, C plus apps, you're not really navigating between pages, so maybe that's my problem. Um, and then the other thing I want an image, like asset generator, editor, visualizer thing, I don't know. I want something that when I. Like put an image into my images folder. It's like, this is what that looks like. And this is what it's going to look like on different platforms and different sizes. And like. Jon (51:29.449) Hmm. Maddy (51:45.442) I don't know, it's become less important now that with Maui, you can just drop one PNG in and it will do the right resolution thing for you, like on Android and iOS. But I just, I think that there's more we could do with images. Jon (51:57.307) Yeah, but most people don't get the whole like base size. Like it's not, if your stuff isn't the right size kind of to begin with for doing that, it's not super obvious. And I've thought a lot and I can't come up with a good idea for how to do that other than, yeah, like have some kind of tooling that kind of shows your assets and like what size it's gonna generate for each image and same with the splash screen and the app icon, right? Like if you could see, Maddy (52:01.279) Right. Maddy (52:08.366) Yeah. them. Maddy (52:24.439) Yeah. Jon (52:27.103) your changes to like the foreground scale and all the different properties that go into the project file. If you could kind of play with those and see it live what it would do that would be cool. Maddy (52:35.702) Yeah, and then the littlest thing ever that I want that we had originally said we were gonna do and we just never got around to do it. Instead of the platforms folder being a folder, it should be an icon, just like the dependencies node. It shouldn't have to be a folder because people are gonna poke into it. You shouldn't have to go into the platforms folder in a Maui app. And same with resources. It should be like a little image icon. Like, I don't know, just a little baby thing that would make me very happy. Wow, that's lame. Allan Ritchie (52:59.643) I'm not feeling that one, Maddie. I'm not feeling that one. There's too much stuff that has to go into to iOS. We've got that privacy manifest stuff coming at us right now. And it's going to suck. Maddy (53:07.27) Oh, I see. That's true. That has been fun. But I mean, you'd still be able to drop down, open the node. It's just a node that's a folder. It looks pretty in the IDE. I don't know. David (53:20.683) She just wants a designated icon for it. Now, Jon (53:23.291) Yeah, the fancy icons. Maddy (53:23.614) Yeah, yeah. I mean, it's just little user experience things. As far as like big gaps, I mean, there was a time that I worked on this team that Hot Reload didn't exist. So, I mean, I would say we've come a long way since then. Allan Ritchie (53:24.068) Alright, alright. Jon (53:39.271) And there was a time where it existed but didn't work really very well at all. Right. Maddy (53:43.678) Yeah, yeah, that's been, it's been crazy. I'm, you know, y'all think you have a bad with Maui? The Blazer folks wait like 45 seconds for hot reloads sometimes. So calm down, okay? That's longer than an Android build. What? Jon (53:57.991) Yeah, just rebuild at that point. Maddy (53:59.694) I know, really. But, yeah. Allan Ritchie (54:00.855) Side question, Matty, when's VS Code? GA, can you say? Are you giving me a middle finger with your camera off? Maddy (54:09.626) No, I think you did. I don't know if your sound cut out. Maybe the editor magic it. VS code GA. Yeah. Jon (54:12.111) Yeah, I think it was when does VS code. Allan Ritchie (54:12.467) Ow. And I said, well, your camera's off. Are you throwing a middle finger at me now, or are you just gonna be quiet on the issue? Maddy (54:19.89) Oh yeah, absolutely. Double freedom rockets, is that what we call it? So. Jon (54:22.547) You'll never know. Allan Ritchie (54:25.698) Yeah, listen to that one. David (54:25.906) Ha ha! Jon (54:26.863) I don't know what's the Canadian unit for that? What's the metric version? Allan Ritchie (54:33.931) Was that Pinkies? Jon (54:35.624) Yeah. Maddy (54:35.694) Oh, no, basically like we're just waiting until XAML IntelliSense exists. If anyone's used the VS code extension, it is impossible to write XAML without IntelliSense. And it just, I don't know, on principle to me, it feels weird to call it GA without that because you're damned if you do, or darned if you do, darned if you don't. Sorry, Dave. Oh, good. Yeah. Allan Ritchie (54:57.456) This is unplugged here. It's unplugged here. Jon (55:00.111) Now I'm going to have to put the mature audience label on the episode. Maddy (55:03.134) Yeah, I don't know. It feels like if we flip it GA without XAML IntelliSense, people are going to be like, this isn't a GA product and you're just calling a GA to call a GA. And then that will be upsetting. But if we, you know, continue to hold it back from GA, it's like, why haven't you flipped a GA yet? Like we were doing people aren't going to use it. You're not going to get the feedback you need, blah, blah. So my line that I've drawn arbitrarily in the sand is XAML IntelliSense. So That's almost there. I've actually, I've seen it working now on the engineer's machine again. It was actually ready in December and then Roslyn made a huge architecture change and it broke the entire PR. So that's what we get for waiting to merge in a PR until after the holidays. But it's back, it's working. We would have had to do all this work anyways. But yeah, I've seen it running again. So it should be imminently. I mean, we release weekly, right? So that's kind of my, that's my line. I don't know. Jon (55:40.671) I'm going to go ahead and turn it off. Maddy (55:59.133) You'll see when it happens. Soon. Not much longer. Allan Ritchie (56:01.647) All right. That's a good answer. All right, John, what's, what's the thing you're waiting to see? What, what are you hoping to see in Mario tooling? Jon (56:10.175) I'll swing for the fences for my own personal use. I really, I would love to have web as a target, as a backend. I mean, I, I get, I get the whole, there's the argument of like, well, is, is that really, do you really want to write once and run everywhere? It's like, yeah, no, I, I do. Um, and I'd be fine with the compromises and the trade-offs, but. You know, obviously that's a, a can that has been kicked at least farther down the road. So, uh, but you know, some you can dream, right? Maddy (56:16.38) Oh yeah. Maddy (56:39.926) I love that. That and like drawn controls for everything. That's a big dream, but that's a lot of work. I would feel bad even saying that I want you guys to work on that. Jon (56:42.781) Yeah. Allan Ritchie (56:50.291) The web is a good one though. If you have web, do you really need the drawing controls? Jon (56:51.259) I mean, you know, those are always fun things to do, right? Maddy (56:56.654) That's true. That's a good point. Jon (56:57.576) Or maybe the drawing controls are the thing that gets you to web more easily. Allan Ritchie (57:01.799) Maybe. I doubt it, but maybe. Maddy (57:04.054) Hmm. Allan Ritchie (57:08.263) I'd say, well, you took mine. I wanted Webb. I do want Webb, but John took that one. I said that to him yesterday. I feel like you stole that. You stole it from me, man. My other one, cause I see this commonly. Maddy (57:09.038) What do you want, Alan? Oh, good. Jon (57:19.683) No, you always told me that you didn't want to web anyway. Allan Ritchie (57:23.675) Well, I only care about iOS, Android and web. Everything else is natural disaster. I don't want it. It doesn't make any money to useless platforms. What I'd love to see, cause I keep seeing customers cut themselves on this is shell evolve more, right? Like to the level of like Prism with a nav service, life cycles on view models, right? Cause it's an incomplete picture. So I keep seeing people go down the route. They get through shell. And then they, they have like half of an architecture and then they started inventing the wheel again. And as soon as start customers invent the wheel, it never goes well. It never goes well. So Shell's like a half answer right now. It has navigation, but it doesn't like the, the pattern is get to a view model, right? Well, how do you get to a view model through Shell? How do you get life cycles on it? I mean, it's not hard, but you got to do it. So if you give, if you have that gap, that's when People start filling the gaps with what they think is right. And it's very often doesn't go well. So, I mean, that's a minor thing. That's like a paper cut to me because it's still pretty easy to get around in my experience, but. Jon (58:33.055) I think I have an issue posted from a long time ago already on our repo. That's like, cause I'd love to see us include a few more of those kind of like opinionated ish things out of the box. Like when you go look at a sample and the sample has stuff like a view model, you know, implementing, I notified property changed or using like community toolkit, which is fine. I like using that, you know, why, why do you have to go find those things outside of the box? Right. Like I'd love to see more. a more complete picture for some of those basics. Allan Ritchie (59:05.963) Well, and the one that I see constantly and this leads to big problems too, is they're like, Hey, I started a load operation in the constructor and I don't have a good like stack trace anymore. I'm like, dude, you never would have in any C sharp. You did stuff in the constructor. It's still trying to figure it stuff out. Like you have to do that. You have to link up life cycle to it. So it's, it's an incomplete story and it leads to a lot of downstream issues and those downstream issues always translate to it's Microsoft's fault. It's not, but it translates to that. I've seen it repeatedly. So it sucks. It sucks. Like learn the tech, learn the tech, be an engineer. Jon (59:48.999) All right. Well, we can't, you know, we're approaching time here and we can't end on, you know, that down of a note. So David, Maddie, what, what else do you have for parting thoughts? David (01:00:01.161) Oh parting thoughts. Well I'm about to go play with my granddaughter and my kids at the petting zoo. Yeah so don't uh don't get too bogged down with the technologies. Spend some time outdoors. Go enjoy some uh spring allergies or whatever you have. Jon (01:00:09.775) and teach them some Maui. Yeah. Okay. Jon (01:00:24.679) Hehehe. David (01:00:27.489) As far as the product goes, I'm actually, I was looking for the.NET 8 release as a marker for, are we going where we want to go? Do we need to make some significant adjustments, etc. I've been so pleased really as we've seen the results since the.NET 8 release. Always greedy for more for sure, but I'm really happy with the product. I've personally, been enjoying doing some development lately. Which quite frankly, I was in as much pain doing development back with the net six releases as probably many of the listeners were so I you know, when we when and I think I'll speak a little bit for Alan to because I know he's a good guy at heart. Even though he'll take a strong line on some of these things and be like just don't touch that it's hot, you know, kind of stuff. That doesn't mean that we don't have significant compassion. Jon (01:01:06.992) Mm-hmm. Allan Ritchie (01:01:16.703) Jeez. David (01:01:28.499) empathy for what other developers are going through. As much as we feel that, we celebrate your successes too. Again, that's why I'm in it. I'm very optimistic at this point. I think the Net9 release is going to be great. It's not going to be a bunch of features. It's going to be mostly a continuation of what we did in Net8 with stability and working on the core experience. But beyond that, beyond that. Maybe it's a shell thing, maybe it's a web thing, probably not a web thing. But we actually are seeing the horizon of being able to expand and do some more interesting, innovative things. We've got the ideas, we just need to actually have the budget and time of resources and all that sort of thing. Jon (01:02:19.844) And the foundation to build them on, right? David (01:02:21.977) Yeah, exactly. You know, I mean, we could be doing what the product did in the past, which is keep slamming features in there, even though you have core foundational issues to resolve. And then we'd end up in a deficit situation like we were referring to with some of the companies that Alan's worked with. Maddy (01:02:21.998) Yeah. Jon (01:02:30.067) Mm-hmm. David (01:02:42.501) but we've chosen not to do that and be very strict on the quality and the bug fixing. So I think it's paying off again, you know, the adoption numbers, the successes of people shipping, et cetera, has been evidence of that. Maddie, what about you? Maddy (01:02:57.63) I have to say, like, the people on the inside and on the outside have made it all worth it. Like, inside, obviously, the engineering team is amazing. And not just like the Maui SDK team, which works for John, right? John's team of a handful of people. Yeah, there's iOS and Android native teams, and then there's a whole bunch of people on the tooling side. And everybody who works on it either loves Maui, came from Xamarin, or loves.NET, came from.NET. Jon (01:03:11.015) Yeah, no, there's many other people. Maddy (01:03:25.434) came from WPF and that world, or are totally new to this world. And like me, six years ago, are like just picking up.NET for the first time and they don't even know how to hold it. And now we have people like that working on the team. And it's just a lot of really fun energy and great personalities. And then like externally, Dave and I were saying, I think last week, or maybe I just made this up because I was drinking and you weren't really. But like, you almost forget how much people care. when you're behind your computer all the time. And like being with, we were at the MVP Summit last week, but even just like a regular conference, just people coming up and being like, things are so much better, or, oh my God, how is your grandkid? Or, Dave, I got a Rivian. Like just the people who like we've gotten to know through the years who, despite all of kind of the chaos around the product and all that have become like, you know, people and community members that contribute positively to. the product and also are like people we enjoy spending time around, right? Like we had a happy hour last week with the folks who are in Redmond for MVPs Summit and I just literally tweeted like drop by five to seven if you're around and we had like a hundred people show up and I know not all of them were Maui MVPs, but a good chunk of them were and people were all just hanging out and getting along and generally like nobody's problematic, which you can't say for a lot of developer communities. I feel like we have a really good group. And yeah, it's just, it's nice to see. And the amount of just like library maintainers and package maintainers, like Alan, like people know Alan by name because of Shiny, right? And people know Steven Theveson by name because of debug rainbows. And like, it just feels very tight in it, even though there's, you know, like, I can't say the actual number, but six digits plus of developers using this stuff. And it feels like there really is a really good, just like core of people that throughout all of it. Allan Ritchie (01:04:57.195) unfortunately. Maddy (01:05:16.054) you know, of all the opportunities that Dave and I have been like, why are we doing this? This is crazy. Like I'm going to go quit and live in the woods. Right? Like you, you guys are people who bring us back. So that's my little positive mushy rant, but yeah. David (01:05:23.11) Hehehehe Jon (01:05:23.576) Hehehe Jon (01:05:30.383) Oh, well, that's I think a good way to end on. Now we, uh, the, we definitely all appreciate, uh, you all the community. Um, I mean, we're, we're all still doing this, however, many years later, right? So there's gotta be something that that's making it all worthwhile. Uh, all right. Well, I think that will about do it. Um, David, Maddie, you've obviously gone and left your five star reviews on Apple podcasts for us, right? Like everybody else is going to do. Right. Okay, cool. Maddy (01:05:41.048) Yeah. Maddy (01:05:57.893) Correct. David (01:05:58.735) Oh yeah. Jon (01:05:59.515) Check. All right. So, you know, be like David and Maddy, you know, be more like them and leave your five star reviews as well. If you would, that'd be great. And, uh, we're going to skip the package plugin or product or I mean we can cheat and say it's Maui. That's the product of the week. It's Maui. Yeah. Maddy (01:06:17.082) Whoa! Allan Ritchie (01:06:18.335) There was the dad joke. Jon (01:06:20.711) Yeah, see? Got one in. Got one in. And with that, yeah, we'll have to do this again sometime. You know, maybe before 200, the episode 200, but yay for episode 100. Uh, yeah, with a very small hiatus of like, I don't know, three or four years in between a few of the episodes, but you know, it's all good. It's back. That's right. All right, everyone, thank you for listening. We'll see y'all next time. Gone, gone mobile. Maddy (01:06:20.891) Oh, there you go. David (01:06:31.581) Congrats on 100, by the way. I mean, that's a... Maddy (01:06:34.062) Yeah, congrats. Maddy (01:06:41.122) All right, we're back, back in a big way.