Speaker 1: How'd you like to listen to dot net Rocks with
no ads? Easy? Become a patron for just five dollars
a month. You get access to a private RSS feed
where all the shows have no ads. Twenty dollars a month.
We'll get you that and a special dot net Rocks
patron mug. Sign up now at Patreon dot dot NetRocks
dot com. Hey, welcome back to dot net Rocks. I'm
Carl Franklin at A'mergard Gamble, and happy autumn season to y'all. Yeah,
it was Halloween last night after we recorded this.
Speaker 2: When we're recording, Yeah, but yeah, this is later than
that because time shifting.
Speaker 1: Right, and we were hoping to get some more stuff.
We had Dan Roth on last week and we were
hoping to get some more not last okay, time shifting
a few shows ago. But we were hoping to get
this closer to dot net conf. But you know, you Glenn,
being you know, experienced in all things dot net nine
just not not just Blazer, we thought we would do
a little recap of what they talked about acts dot
net conv So, hey, Richard, hey man, let's I think
we should just jump into a better no framework don't
you do the thing? All right? Roll the music? All right? Well,
I kind of have gotten into the habit of looking
at trending GitHub repositories and this one came up. It's
called Little Big Mouse. It's an open sourced app designed
to enhance the multi monitor experience on Windows ten and
eleven by providing accurate mouse screen crossover locations within MULTIDPI
monitor environments. Nice particularly useful for setups involving a four
K monitor alongside of you know ten EIGHTP monitor.
Speaker 2: The tedap so the scaling thing, the DPI thing happens,
and your mouth goes a little nutty.
Speaker 1: Yeah, not just a mouse, but there's a video right
there on the repo and he takes like notepad and
tries to drag it between the two screens. Yeah, and
that's always a not fun experience. But it's pretty good. Yeah,
pretty good stuff. I'm going to use it.
Speaker 2: Well, I in this this recording rig, I have a
portrait oriented like fourteen forty screen and then a landscape
oriented curved like thirty eight and dragon between those can
get whacky whacky.
Speaker 1: Yeah, So I'm going to download this too because I've
got a few screens and I got a forty nine
insure like you yeah, and a couple other screens. All right,
So that's what I got. Richard, who's talking to us today.
Speaker 2: Gray Call Show nineteen o three, the one we did
with our friend Beth Massey when we talked a bit
about Maui and Blazer. Yeah, and got a bunch of
good comments on this show because we had a lot
of fun there. And this comment is from ilfeb who said,
I love your shows. My feeling when hearing all these
UI names like WPF, win UI three, Maui, WebView two
css SX that we devs would love to have not
so many different UI text acts. The fact that still
WPF seems to be the most used dot net UI
framework tells quite a story at Microsoft's dot net UI strategy.
In the past, we're using Avalonia for our cross platform development,
which we've done a show on avalone. We would love
to get such a thing from Microsoft. But now that
Avalonia UI is there, I hope that the current wild
pace of adoption keeps going. So there's two things that
worry me, the current and future quote mess sorry with
dot net UI frameworks, where we could have just one
for desktop, mobile potentially in a cross platform form for Windows, Linux,
Mac os, iOS, Android and the browser and an unclear
platform IDE strategy. I'm very much into vidual Studio, not
at all into VS code. I guess most devs would
want VS twenty twenty eight to be a cross platform IDE.
What are your thoughts on this?
Speaker 1: Did you say twenty twenty eight?
Speaker 2: Yeah, like the next next version of visual Studio is okay,
I mean to be clear, it skipped over a couple
of years there. Yeah, visual Studio runs exactly on one
platform Windows. There was a Visual Studio for the Mac
which was actually Mono develop. When they got acquired Zamorin
they renamed it, which I thought was an unwise thing
to do, But now they've stopped working on it, so
that's really not a thing. I think your wish is
a good wish. It's also never been achieved by anything.
Right to have desktop mobile, you know, and plus all
of the operating system is that it just works. That
would be awesome. Plazer well and MAUI is obviously, you know,
origins are in zamorin forms, the phones being the sort
of subset that you need to start with and work
out from. But it's really hard to start with that
set and then do a good job on Windows in
mac Os and the and the larger stream platforms. So
I think it's still a story arc here. Maui's intent
was to try and unify all of these things, right,
And yeah, I think what you're feeling, your concerns are reasonable,
because what you're really feeling is that somewhat of a
political struggle going on inside of Microsoft about what folks
want to work on, who's one what where, Like, there's
a lot going on on all of this.
Speaker 1: I gotta tell you, I just wrote an app in
Maui for myself because you know, I'm a solo artist
and i play out with my guitar and I've got
sheets of paper, usually with big song lists and some lyrics,
and usually they're like on the floor by the end
of the night. And I was like, you know, I
got an iPad.
Speaker 2: Totally normal playlist thing to happen. Yeah, I'm like, I
got an iPad, let's do this. So I went looking
to see if there were apps out there, and there are,
but they want thirty forty bucks a month for a
freaking list a month, yeah or something.
Speaker 1: I don't know. They were just expensive, Like I'm not
giving you my money for that stupid thingpad. So anyway,
I wrote an app and it's beautiful. And here's the thing, Like,
my machine is really fast, faster than my iPads, so
I could I put like a dev express HTML editor
in there, and on my machine, I can add songs
and then it add lyrics and stuff, and then I
buzz it over to the iPad and it just reads
the data, you know. And I used it on the
gig last night, nice and it it ran like a shamp.
So I love that whole Blazer hybrid thing because I
could I could take that and run it into browser too.
Speaker 2: But I'd also say you were putting it on one
platform an iPad two.
Speaker 1: Two, run it out in Windows right on my desktop
and then iPad Yeah.
Speaker 2: Okay, legit.
Speaker 1: Yeah yeah. I think the Struggle browser's pretty cross platform.
Speaker 2: Yeah. The struggle for a unified crossplat story is hard,
and there's always going to be an origin platform that's
going to be strongest, and they're going to battle to
make the other ones good. And you know, folks come
from a lot of different directions, so there's a reason
you're feeling a little concerned I'm glad you're happy with Avalonia.
We thought it was an impressive product. Yep. And maybe
we have to do another show and that's very fair
maybe so ill fab Thank you so much for your comment,
and a copy of music Coba is on its way
to you. And if you'd like a copy of music Cobe,
I write a comment on the website at dot net
rocks dot com or on the Facebook, so we publish
every show there. Maybe you comment there when ever reading
the show, we'll send you a copy of music Goby.
Speaker 1: Or if you want to just buy music to code by,
go to music to code by dot net crazy. All right, well,
before we start here, this is episode nineteen twenty five,
and as always I kind of like to run down
a little history. You know, what's your favorite piece of
history from twenty some events? Well, of you know, Mussolini
in January makes a pivotal speech in the Italian Chamber
of Deputies which will be regarded by historians as the
beginning of his dictatorship. Awesome, Yeah, here's a happy note.
January twenty seventh to February first, the nineteen twenty five
serum Run to Nome the Great Race of Mercy relays
diphtheria antitoxin by dog sled across the US territory of
Alaska to combat and epidemic.
Speaker 2: How about that they ran the drugs by dogs like
the get by doctors, no other way. Yeah.
Speaker 1: March eighteenth, tri State Tornado, the deadliest and US history,
rampages through Missouri, Illinois, and Indiana, killing six hundred and
ninety five people and injuring two thy twenty seven.
Speaker 2: That's crazy, but that's before there was ways to warn
folks really, right, Yeah, there's just the sirens.
Speaker 1: Yep. So there's more to that. But April tenth, f
Scott fitzg Old publishes The Great Gatsby in New York,
famous famous book. April sixteenth a communists assault on Saint
Nadelia Church claims roughly one hundred and fifty lives in Sofia,
Bulgaria place we have been several times.
Speaker 2: Yeah, and at that time was part of the the
Soviet Union.
Speaker 1: Yeah. June thirteenth, American engineer Charles Francis Jenkins achieves the
first synchronized transmissions of pictures and sound using forty eight
lines and a mechanical system in the quote first public
demonstration of radio Vision Nice Radio forty eight P.
Speaker 2: Yeah for eighty P. Forty eight P.
Speaker 1: July the Scopes trial right. In this stage test case
the Monkey trial in Dayton, Tennessee. John T. Scopes, a
young high school science teacher technically arrested on May fifth
and indicted on May twenty fifth, is accused it was
signing a reading from a date mandated textbook on Darwinian
evolution in violation of a Tennessee state law, the Butler Act.
He has found guilty and fined one hundred dollars through
the verdict, though the verdict is later overturned on a technicality.
The trial makes explicit the fundamentalist slash modernist controversy within
the Presbyterian Church in the United States of America, with
William Jennings Bryan, who dies on July twenty sixth, being
challenged by the liberal Clarence Darrow. All right, I swear
to God, I'm not going to go through all these
but July eighteenth, Adolf Hitler publishes minekompf. August eighth, the
Ku Klux Klan demonstrates its popularity by holding a parade
with an estimated thirty five thousand marchers in Washington, d c.
August thirty first, Margaret Mee, anthropologist, lands in American Samoa
to begin nine months of field work that'll accumulate in
her nineteen twenty eight book, Coming of Age and Samoa.
This best selling book will become the first popular anthropological
study and will change many attitudes toward tribal peoples. The
Locano Treaties negotiated October fifth through sixteenth, and signed in
London December first. Very you know, getting ready for World
War Two? Here the Grand Old Operay November twenty eighth,
first broadcast on WSM Radio and Nashville, Tennessee as the
WSM Barn Dance. Oh yeah, so it was an interesting year.
Do you have anything to add?
Speaker 2: Yeah, Hitler's out of prison, publishes Mind Camp, reforms the
Nazi Party, and creates the SS all in the same year. Yeah,
guess which way we're going? Friends?
Speaker 1: Mmm?
Speaker 2: Right? Like, just like that, He's he's right back on
the mission. Nine months in prison didn't seem to dissuade
him much after the Beer Hall push.
Speaker 1: So you're saying he was a convicted felon.
Speaker 2: He was, actually, but it apparently let out. I mean,
it was a five year sentence. The only served nine months. Yeah,
I know how you pull that off. It's a friends
and good behavior because he's busy writing a.
Speaker 1: Book friends in high places.
Speaker 2: I guess something. I don't think he had any.
Speaker 1: Actually, Okay, now for that, let's bring on our guest.
Glenn Condren as a program manager on the Application Platform
Team at Microsoft, where he spends most of his time
working on the asp net core runtime. Before becoming a PM,
he was software developer and consultant for eight years. His
work before Microsoft was primarily for Australian government clients. Welcome, Glenn, Hi,
how are you doing. We're good, doing great, excellent, glad
to have you. You guys have been busy.
Speaker 3: Yeah, indeed, I guess my updating of my bio I
suppose because I probably haven't done it for a while.
I am now the lead of the Platform Team pmteam,
which means that almost everything that's not tooling and MAUI right,
all those pms. Okay, so yeah, that's that's.
Speaker 2: So all the heart of dart net, not not the language,
the framework.
Speaker 3: And I have very recently including the language. Well, Mad's
Tubison also wants to be but like he's bad, so
I don't. Actually, I don't have actually influence bads at all.
He's bad, and the Language Design committed and the Language
Design Meeting does its thing, and all those people that
don't pretend to influence it anyway, but technically reports you.
Speaker 2: And Mads have a conversation periodically. We do. Yeah, Yeah,
it's great.
Speaker 3: Yeah, So yeah, that's my that's my part of the world,
which means this kind of release we're here to talk
about don N nine. It's been a lot of for me.
It's been a lot of aspire, especially because it grows out,
that grows out of what I was doing before I
started moving into I am now lots of aspire, lots
of lots of kind of AI. That's just kind of
two halves of AI for us. It is AI for
you and and US as devs like co pilots and friends.
AI for code, and then there's AI for how am
I going to How am I? You know, my boss
has said he wants a chatbod. How do I make
it real? Or how do I integrate AI into my apps?
And that's that bit is more where where I play?
Because now you need libraries, you need SDKs, you need experiences.
How are you going to talk to the l l M.
How are you going to do generatly? BAYI right, how
are you going to make it work? We got lots
of samples to do, lots of partners, lots of lots
of work, and then our forever goals right security, quality performance.
Speaker 1: Right, Yeah, security a big one. I know. We talked
to Dan Roth a few weeks ago and he was
mostly focused on Blazer in the changes to Blazer, but
we thought we would get some more breadth about dot
net nine with you. So we know about Blazer. What
are some of the other big wins in dot net
nine over dot net eight?
Speaker 3: Let's see, so lots. We've continued our PERF journey. I
don't know, I'm sorry, not PERF. I mean, yes, we've
continued our PERF journey. But the thing that I was
going to say was in don at eight we talked
about I believe it was in eight, maybe even have
been as early as seven. But for many years now
we've been on this steady march with Native aot. As
we kind of keep giving you this, more and more
of the stack becomes kind of aoteable. We made another
good ahead of time step ahead. Yeah, that's ahead of time. Compilation.
That's kind of compiling hardest for lack of a pretteric description,
get pilot to native and what that gives you is,
you know, better cold start times maybe and things like
that because there's no JGIT, right, and what what it
takes away is dynamicism.
Speaker 1: Right.
Speaker 3: So if you're in that world, especially if you're in
like I have a small service and I don't need
any of the kind of runtime, kind of dynamic runtime
features that that are difficult in a full in an
AOT world, then you might want that extra cod start time,
container container on a cluster, right, So we made more
roads towards that we've made. There's some stuff in the GC.
There's the new like dynamic adaptive GC mode for server GC.
There is garbage and garbage collection, all all in support
of cloud and building these new workloads in these new
ways people are using.
Speaker 1: Right.
Speaker 3: Aspire was a kind of big lift that we kind
of talked about at the end of don at eight
at dot net Confin do at eight, I did the talk.
I did a talk there with Feler and then I
think you've had Fouler on to talk about it and
some people, right, yeah.
Speaker 2: Sure, and Hunter and yeah, yeah, so they even talked
about Aspire, right.
Speaker 3: So that shows you the kind of broad thing about
Aspire is how many things needed to change.
Speaker 2: Yeah, I mean, but I think of it as tooling.
You're saying it's in the framework too.
Speaker 3: Yes, because Aspire is kind of it. It actually crosses
almost the entire intersection of the team, Like it doesn't
impact the language, but it impacts almost everything else. Right.
So you have tooling, yes, because you have the dashboard
to give you all your metrics, to give you a hotel,
to give you that dev focused what's going on in
my app right now? Right? Then you have integrations. So
integrations were Newgate packages. Their library is the same as
all the other things that I build on my team
are libraries, right, but they are configured by the out
of the box to assume that you're in this world.
You're using cloud stuff. Stuff might be unreliable.
Speaker 1: Right.
Speaker 3: We did work in Polly, for example, at the beginning
of doing a spire to make to improve to help
improve its perth. Right, Like, we've contributed a lot into
the poly project that was kind of under this umbrella
of building this Aspire project. It's gone from elements and
ingredients of a stack poly is faster. We've got a
reduction thing. We've got this ability to you know, we
have baked re tries and such in fast better all
these ingredients. Then you start stacking them together and stacking
them together and stacking them together until you've got a
stack right right, and so now you've got Now you've
got libraries that make it easier to get you know,
I want to talk to reddis but I need retry.
I need a good default retry policy. I need to
make sure it's configured with in di I properly, with
the right lifetime. Is the Reddest client thread safe?
Speaker 1: I don't know.
Speaker 3: Is it supposed to be a singleton or not? I
got no idea. I'm I could do it.
Speaker 1: You know, DDI, can you define that.
Speaker 3: DI I so dependency d SO. If I describe this out,
if I pull this out into a list for you,
if let's say you're going to use raddis, this is
This is our kind of favorite example, and this was
part of our genesis when we were creating what is
a spy going to be?
Speaker 2: When we were.
Speaker 3: Giving this pitch, we had this slide, and on that
slide it said, if you're going to use Reddus today
in the modern cloud. This is what you have to do,
and it was fifteen steps long.
Speaker 2: Right configuration, setting all of the settings, right, security parameters exactly,
you need.
Speaker 3: To add the right to add you need to add
the new get package. Right, you got to find the
right one. You have to add it to dependency injection
in your like server app. What is the lifetime? Don't know?
You have to go read the docs make sure you've
got the right one because if the thing, you know,
can it be a singleton or not? Is the main
decision point? Right, I'm going to have it to di
is it logging properly? Is it going to go into
my logstream? How do I do that? When we started
this effort, that was a shim that you had to
do that you had to go learn that significantly like
improved now, right, then how do I consume it in
my in my controller or in my function? And then
like is the what is the resiliency policy? Is that
turned on? If reddis is a little bit flaky one
day or if something happens, is it going to recover?
Like it just kept.
Speaker 1: Going right, it goes everywhere and.
Speaker 3: What we want, Yeah, understand it almost becomes viral, and
so the intent was, how do you collapse that into
just add reddis and for the love of God, give
me some give me a really make it work with
all those things that we just described, so.
Speaker 2: Well, just give me the settings that would make me
happy be in the cloud, absolutely right, because the bigger
thing here is going, hey, what if we did elastic
instead and just being able to switch it, like if
you actually got Redus running right, you'd literally go okay,
don't touch it. Yeah it's working right now?
Speaker 3: Yeah, exactly right.
Speaker 1: Well, that brings up another point, which is if you
start with Aspire, right, and you do all the things
and you pull all the switches and everything, you add reddis,
do you give up the whole idea of adding things
manually after Aspire? Like do you always have to go
through the Aspire thing to add things so that you
don't disturb? Right? I mean, if you're going to add
another service, can you just add a service and we'll
add all the Aspire stuff follow.
Speaker 3: Yeah, absolutely so I think what you're talking about is
like add Aspire integration, like gesture in tooling.
Speaker 1: Well, even if you start with Aspire, but you know,
we have many years of manual configuration experience. And that's
where we go. Oh, right, as developers, I see, do
we now have to put that aside and before we
add to it or expand our application or applications, do
we now look for the Aspire way to do things?
Speaker 3: I mean, I hope, I hope that the Aspire way
means that you can delete some code. And therefore I'm
always supportive of you being out of delete code if
you if that you don't care about, or that you
don't need to worry about, right, so that maybe, but no,
it's not not required for you to go and change
the way that you do things.
Speaker 1: Right, So there isn't any risk of doing something that
conflicts with what I've set up and aspired that maybe
I don't even understand, like all that stuff that you
said about reddits.
Speaker 3: No, So the largest risk is probably that you add
a redes say and we built in and like say,
reach a particular set of policies with poly YEP poly policies,
and then you've wrapped them in your own and now
you've got a double layer of retries or something like that.
Speaker 1: Actually that happened to a customer of mine that we
went out and tried to add Aspire to we already
had partly, right.
Speaker 3: Yeah, And so that's probably the biggest risk is you
didn't realize that the client you're getting now is already
retrying and doing all that for you, and therefore you're
doing your own logic for it. That's probably the biggest risk.
Speaker 1: Yeah, yeah, But.
Speaker 3: Ultimately, like you know, I heard this thing as part
of me like being oh, yeah, let me make sure
I remember what dot net rox is all about. And
I listened to Chris Bluke, my befriend Chris. He was
talking about he talked to you about how he like,
you wouldn't want to be a developer today because of
all these things to learn.
Speaker 1: You would want to start.
Speaker 3: You wouldn't want to start, You wouldn't want to be
getting You wouldn't like you couldn't imagine how overwhelming it
must be day one showing up and then them saying cool,
you're building this kind of app. Right, So what I
would ultimately, what I'm trying to achieve within Aspire is
today I would say that the learning curve for how
to build a current app is like logarrhythmic. It goes
like straight up and then it starts to even out right,
and you want want to make a linear like you
slowly learn more and more bits and you can make
it in you again, can we flatten this curve of
what how much you need to learn to be productive
and to get something that works and can work for
real with real internet traffic hitting it and not like fall.
Speaker 1: Over and can be maintained and can.
Speaker 3: Be maintained right, because today it's just this mass. It's
very very hard, right, and so there's a bunch of
interesting challenges.
Speaker 2: Because it's not that tough to toss an app service
up and get it to run. Yeah, that's right, But
you haven't done a lot of things at that point.
Speaker 3: No, that's right. Yeah, And if you were, and if
you're good with building that kind of app where it's
a kind of app service talking to a database, Spire
is still useful in that world in that it makes
it easy to spin up the database every time you
press F five and stuff like that. But then it's
mostly useful when now when you've got to have you've
got three or four backing APIs or a couple of
functions and an API and a data and then you
start to stretch the realms of what app service is
kind of really built for that in that world, right
the that's so that's that's what that gets. So yeah,
flattening that curve is super super important to us. Like
one of the customer calls that I did leading into
with Spire, I was talking to this engineering lead and
he said, we said one of the questions we would
ask in our standard script, because we're trying to ask
a consistent set of questions, was what's keeping you up
at night? Because I'm looking for the I'm looking for
the answer to that question because if there's something keeping
you up at night, I can try and solve it right.
And his answer was, I don't know if I'm putting
the lego together properly.
Speaker 2: Mm hmmm, it's a good one.
Speaker 3: I'm my app is built on like a pyramid of
newgat packages, and I know that it works, it runs,
But are these two supposed to go together? Have I
configured this word properly? Like there's so much exercise left
to me that I am terror that tomorrow my thing
will come crashing down, And I don't really know if
it's quite possible I put two things together that aren't
supposed to go to get to your question, about Aspire
working with other things that I've done, and that's going
to cause me something that causes the world to fall apart.
And so ultimately you're trying to make it so that
that person can go to sleep at night and be like,
I'm pretty confident, I'm good. I used all the things
that they said would work that are kind of proven
based upon this community and ecosystem of Aspire people building
stuff to make it so that I can be more
confident that I haven't made that mistake, right, And that's
why in the nine keynote, I assume this comes hopefully
this comes out after the keynote. Like, what we've seen
is this community toolkit idea with Aspire, which is just
the idea of trying to make it so that more
and more people can build things that are Aspire components
that you can guarantee adhere to the same kind of
requirements and guidelines that an Aspire. I call on them
components still even though we change the name to integrations,
so like, because like what is an integration it is
effectively we have this idea of a spec it means
you know, you know it can wire into dependency injection.
You know, there's a set of you know, ten fifteen
things that in order to be an integration you have
to tick. And so this idea of Inspire Community Toolkit
is you or anybody who has a library that they
want to be able to be an Aspire integration can
also go and be in the list when you say
out Aspire Integration and we can. Then we'll have a
whole community toolkit kind of effort around making sure that
that we can continue to build up this community of
when you're building this type app and you really want
this kind of guarantees, what do you do and how
does it work?
Speaker 1: Right?
Speaker 3: It's also still very early in Aspire. There's crazy crazy
stuff we could do, right, Like, Aspire has the model
of your entire application, we could map it. We can
give you the full description of all the pieces of
your app. What's more, you could do things that are
crazy like some of the people there's a some people
on the team I was talking to yesterday who were like, yeah,
what if we put a proxy in between every communications section,
So on your dev machine you could turn on packet
loss between any in particular individual connection and you could
just make that a feature of the tooling, so you
run it app and you turn on packet loss right
or things like that. Right, that's possible to do today,
but to developers go to the effort of figuring out
how to do it and turn it on Like probably not,
but if it was just there and you just had
to click a thing, we'll try it. Right. So there's
a lot of that kind of work that you can
do in the Aspire space just to try and help
people build make their apps more reliable from the beginning
so they don't like called up in the middle of
the night or anything crazy like that.
Speaker 2: Well, not finding out the hard way that it isn't reliable, not.
Speaker 3: Finding out the hard way. We had a lot of
horror stories of people finding out the hard way, and
we're trying to We tried to fix all of those
things for those people when we were building up.
Speaker 2: You don't find out you're logging wrong until you're eating
it and then you go looking for the logs and
can find them. Yeah. Absolutely, that's when you find out.
You've been looking about.
Speaker 3: How do we fix that?
Speaker 2: Right? It's been a year, yeah, right, I mean you
talked about Aspire the first time at dot net com
for dot net eight indeed, and we did our first
show with foul Er, I think January twenty four. So
are we on is this V two or is this
really V one? Like it felt like you were just
experimenting a year ago.
Speaker 3: Isn't the isn't the common Microsoft saying that the V
two is when you start trying it. Isn't that? What
the isn't that what? We always just know? What people
used to say is.
Speaker 2: That V three now and V three is when it's great? Yeah.
Speaker 1: V three is the golden version.
Speaker 3: Yeah, the golden version.
Speaker 2: Yeah yeah, but I mean you had a year of
feedback and pressing against this. I mean it's a club
world now, right, Yeah, watch the issues it's crazy.
Speaker 3: Yeah, absolutely, yeah. So yeah, that was the goal was
to get that, get the the was addressing. So one
of the themes I think is part of this discussion now,
which is like, what are you done? What? What are
the what is the what if? Customers hit real badly?
So so one of the biggest things that we that
people hit a lot that we've started to try to
address is just so we had this concept of developer first,
OPS friendly that we used that I used to talk
about with the team because like, you can't like this
thing has to fit into that world right right, like,
and if you super prioritize towards only the developer, you're like,
sis admin guys, give what is this like? No, we can't,
you can't do this right, And so you needed to
build a solution that you lets you that is attractive
and productive and good for developers, but then lets you
easily fit into the flow that those sis admin folks want.
So it was very obvious to us almost immediately once
people started to use this thing that they people desperately
wanted more ability to customize what the thing that they
were deploying to. When they were using the kind of
default deployments we should probably talk about deployments more generically,
but when using the like AZD experience specifically, they wanted
something more. So this is where this is the interesting
thing about Aspire is Azd's not mine. But another principle
that we had was kind of extreme ownership. This idea
that within Aspire, at least we were not going to
let the gaps between the different parts of the things
that you needed we needed to work for you to
be successful stop us from making changes. So if the
AZD team needed to do something to make the Azure
thing good, or even the AWS team needed to do
something to make the AWS experience good. We would go
talk to them and we were trying and figure it
out right in terms of deployment. And so one of
the big things with as Container apps and Aspire and
doing AZD up was well, how do I change the
name of the thing or like tweak this one setting
or the sequel thing is real good except this bit.
And I don't want to have to completely eject from
the system. So you could always generate all the bicep
and then you hand that off and then involve it
from there check it in. But I don't want to
do that. If I could avoid it, can you give
me something else? And so now there's a lot more
flexibility in you being able to drop into effectively a
C sharp wrapper around what the BICEP generated would be
within ACD, So you can tweet names, you can change
settings that you previously you would have had to fully
eject into, generate the bicep, check it in, and then
use bicep from then on. And so there's a lot
more of Now you can kind of pick the right
spectrum to be able to fit that. Then there's a
lot of There was a lot of people who desperately
wanted to like wait for so I can say I
want this to start after this thing, so you know
you've got support for that. You have support for persistent
containers to keep the sequel, keep the sequel server running
in between the executions of my app. So we now
have support for that. All of these things were all
really driven from people who really who were using the
thing and saying, yeah, we need this, we need this support, right,
as well as a few like big internal people who
were using it. You would have seen a video from
a video in the keynote if you watched it from
one of the architects who works on copilot. The unified
like back end for copilots is built using a spire.
And so whenever you're using one of the Microsoft Copilots
at all through the same kind of Copola backhand, that's
an Aspire like backhand API set that is the orchestrated
and their devo loop uses a spire, right, it doesn't
impact their production.
Speaker 2: And Glenn, I'm gonna interrupt you for one moment for
these very important messages.
Speaker 1: Is your on prem dot net framework application A prisoner
find freedom? On AWS with elastic scale and pay as
you go pricing. Port to cross platform dot net and
run on Linux without license fees. Find out more at
aws dot Amazon dot com, slash dot net, slash Modernize.
Hey Carl, here today we're spotlighting a tool that's turning
heads in the tech community. Raygun's AI error resolution brings
you smart AI powered insights directly into your development workflow.
This feature doesn't just identify errors, it suggests how to
fix them quickly and efficiently in seconds. If you're ready
for a deeper dive into smarter debugging, you won't want
to miss what raygun has to offer. Visit raygun dot com,
slash dot net rocks. That's raygun, r A Y g
U N dot com, slash d O t n E
t r O c k S for your free fourteen
day trial to explore the way reygun is revolutionizing debugging.
Speaker 2: And we're back. It's dot net rocks. Amateur Campbell. That's
Carl Franklin. Hey, Hey, hey, talking to our friend Glenn
Chondron about all the dot net nine goodness. Indeed, welcome
back of that.
Speaker 1: Yeah yeah, And just a reminder that you can get
an ad free feed of dot net rocks by becoming
a five dollars a month patron at Patreon dot dot
NetRocks dot com. Okay, you were saying, Glenn.
Speaker 3: I don't remember that was out somethink about. We had
long we took. I think my pain point was there
was lots of feedback. We did a lot of features,
highlighted some of them, but it was all trying to
just our goal was between when we kind of shipped
halfway through dot net, halfway through dot at nine to
now was all about top pain point fixed, top pain point,
top pain point down donat I man, yeah, we ship
when we ship. Yeah, So that's what it's been and
now we're in this what I think is a really
nice state. We have a lot of people who are
using it for real, and that's the thing that prioritization.
Speaker 1: The thing that piqued my interest when you were talking
about drop into a C sharp wrapper around stuff that
you don't really understand or need to learn. Now yeh yeah,
this ability is all part of a spire. That's not
something that's to dot net developers without aspire or no.
Speaker 3: It will be available to it should be available to
don't developers elsewhere because it's not technically part of a spire,
it's just a it's a feature of the Azure developer,
the az d C and the AD experience. We give
you a method and we make it intuitive when you're
within Aspire, but it's not we layer. We layer the
software better layer and kind of segment the software better
than that. Right, So you should also be able to
get that outside of the Aspire experience. Love that Aspire
is very much a collection of pieces that all work
fine on their own, but get better when you put
them all together.
Speaker 2: Right.
Speaker 3: So the dashboard that shows you all your hotel data,
it's just an hotel dashboard. You can make anything that
talk to hotel appear in that thing. It doesn't need
to open telemetry in this case. Yeah, absolutely, I appreciate it.
And if you'll notice, if you go to as your
Container apps now they have the dashboard, the Aspire dashboard
because it's just code. They just took it and hosted
at ACA. It said here, this is a cool hotel
ed point, let's put it in there.
Speaker 2: Right.
Speaker 3: Integrations are just new get packages. The AD the AD
integration for Gesture in Visual Studio is literally a search
or new Get for things that are owned by the
Aspire account. Like, there's no, there's nothing special about them.
They are a new get package with some wire up code.
Speaker 2: Right.
Speaker 3: The just the kind of way the service discovery ish
stuff is environment variables, right Like, it is very much
a you could do all of this stuff to that
you could have done all of the things that Aspire
does for you, but it makes it puts it all
together for you, so you don't have to think about
it as much.
Speaker 1: And yeah, it's it's the classic thing of you know,
you want to use this library or whatever, this component
that might be an open source component or whatever. First
you download, then you get package, then you wire it
up and program cs and then you might have to
add a CSS file or exact JavaScript link or all
of that stuff.
Speaker 3: Yeah, and so how do we help you get there?
That's kind of a lot of what it does. And
then yeah, it's and then but when you put it
all together, the overall the experience of all those things
together is kind of mind blowing. People looking at them
and say, I'm where there was this being all my life.
Speaker 2: And right yeah, yeah, real powerful effect, right like that
that's the whole thing is.
Speaker 3: Indeed a very powerful cumulative effect when you put all
these pieces together, but they're all individually adoptable and they're
not super tightly coupled, which is it's just very nice.
Speaker 2: And more importantly, if you know, if you've got strong
opinions about how you want your cloud native apps to
be built, you can take the pieces out that don't
work for your plan or changing. Yeah, but I appreciate that.
And so you still still early days, but clearly you
guys have been taking a lot of feedback, Like just
look at the issues list. Oh yeah, absolutely, I haven't
had time to triage this yet, but imagine you do this.
How much of these issues are people don't understand how
to use this versus people want to take it further?
Speaker 3: Yeah, yeah, yeah, so there is a lot of there's
not as many issues for I don't understand how to
do this, but there's lots of discussion. Right, So the
feedback channels are filled with yeah, but what is it?
Speaker 2: Yeah?
Speaker 3: Right, filled with ye but what is it? Yeah?
Speaker 1: I think building an app with a spire would be
a great learning opportunity for somebody who doesn't has never
done reddis right And instead of you know, going to
the documentation, spending a whole day or two reading it
and trying to figure out how to cram it into
your app. You use a spire and then go and
look and see what it what it did. Yep, absolutely,
you know that that makes total sense to me.
Speaker 3: Yeah, Yeah, there's a it's a it is good on
that gun. And that's that's partly because of that effort
to try to kind of make learning linear again, right, Yeah.
Speaker 2: And to smooth these things out. Give us the pit
of success here. Yeah, that if you just follow the defaults,
you're going to be in a good place. And if
you want to go further you can, right, And.
Speaker 3: Then it helps your bigger enterprises because the bigger enterprise
wants to try and get some level of consistency across
twenty teams. So now you've got you've got that lever
as well.
Speaker 2: You can really press against those templates and making where
you want it to be. I don't want to do
a whole show on Inspire because there's more stuff going
on Dot nine. Let's do the AI conversation. Yeah, it's
kind of on the radar for a lot of folks
these days, for.
Speaker 3: A lot of people. Yeah. So one of the big things,
the first call out. I think I would say on
that front is if you haven't looked at Sanderson's kind
of sample apps. We talked about Shop. We did this
kind of rework of the e Shop sample app, make
it all cloudified. It's running with a spire and stuff
like that. Right, So, as one of the engineers on
our team said, we're now expanding the Shop cinematic universe
to create this E Shop back of house application, which is,
imagine that you were the support person having to deal
with customer support for that E shop kind of app.
We build that app, and so it uses a lot
of AI in ways. It's sometimes a convincing sometimes not
as obvious to people because the every AIDEMO you've ever
seen is how do I chat?
Speaker 2: Yeah? Yeah?
Speaker 3: And so it uses it for filtering, it uses it
for summarization, It uses it to like, help me make
sure I'm worth looking at the most important issue, help
me find the right when I get the feedback ticket
where I want to respond with r TFM read the
manual with an F in the middle. How do I
ask the AI to find the bit in the manual
that I should them to so that I don't have
to go search through the manual like if things all
those sort of functionality exists in that sample app and
it's all put together and it's working well, and Santus
has done some talks on it, and Sanus is a
great presenter.
Speaker 2: So like, I'm sure you're I'm going to grab a
link to his video from from.
Speaker 3: So absolutely so watch all that, especially if you're like, yeah,
but why do I care about AI If I don't,
if I don't have I don't work in an app
where I need a chatbot, So what would I do?
Go look at some of his stuff. It is very good.
Speaker 2: It's inspirational for thinking more broadly about what these tools
can do for you.
Speaker 3: Absolutely right, So then in support of that, so what
does the Donat team do? What does my team do?
So we have this way. We we have started with
effectively primitives. We're looking at, Okay, you need to tokenize
strings in this world. What's the fastest, best, most pop
what's the best tokenizer that everybody in the world should use.
Let's make sure an implementation of that exists. Like these
very bare like numerics, like these very very low level
underline primitives that build a bunch of this stuff and
then effectively we just start building up as we build
building blocks and building blocks and building blocks that allow
you to do the to communicate with the to do
this generative AI task, and I want to say communicate
with right. So in the dot an ecosystem, you have
semantic kernel, and you have Azure SDKs, you have all
of the like these libraries to be able to do
kind of generative AI stuff. We help and support all
of those things, and then we look at, okay, well,
what is the underpinning that we should be building that
all of these people need? And the is the forever question.
What is the thing we should build so that they
don't have to then then everybody will adopt it, and
then will be everybody will be in a better place.
So that's where we've been going. So one of the
things you're seeing in don N nine is this extensions AI.
We talked about it a bit beforehand. It's semantic kernel
already exists, and then extensions AI is this kind of
building block layer for I want to talk to an LM,
how I want to talk to an LM, And what
that library set allows you to do is is do
kind of a chat completion, which is what a lot
of the stuff, even the stuff that isn't chat kind
of boils down to I'm going to send a string
to a server and I'm going to get a string back,
and I'm going to figure out what it means. And
I want to do the stuff where I teach that
about my own data, and I want to have telemetry
plugged in and such. And it gives you a consistent
abstraction over many different types of lms. So if you're
going to use open Ai, or you're going to use
some local thing, or you're going to use like Olama,
or you're going to use you can have the same
programming experience against a bunch of different models that can
all plug into this system. What's interesting about it is
it effectively uses a middleware pipeline, so the same as
I's been a core middleware for those of you playing
along at home. So you made a request effectively in
this world, which is a chat completion, and it goes
through this middleware pipeline, and so that moves implementation of
things like logging out of the provider that is specific
to the LM and into the generic library, such that
every provider doesn't have to do all the logging stuff
so you as a consumer get consistent logging, you get
consistent tool calling where it will where one of the
things LM's will do is call your methods if they can't,
if they can't, if they need to. Right. It has
all that sort of stuff built into this middlewhere layer
as opposed to being each provider. That makes it easier
to write providers. That hopefully means we get more providers.
It also allows other things like semantic kernel to like
layer on top and get those same benefits.
Speaker 1: Right, do you do you foresee people using AI for
things we typically code forms over data for like I'll
give you an example, selecting a report right with a
whole bunch of filters. Do you instead of having drop
down combo boxes and things that fill and refill and
check boxes and whatever. Would you foresee somebody just opening
a text box and say give me all this data
between this date and that date with this you know,
particular film and blah blah blah and replace all of
that UI code.
Speaker 3: Yeah, it seems entirely likely that would happen. I think
what will happen first is that you'll use AI to
build that that form that you just described. First step, Right,
co pilots and friends and all of the tooling in
visual studio visual studio code like you even see like
you see the explosion of AI assisted coding. Right, So
the first step one would be I want to build
that form, and then the AI says, sure, here's all
the UI.
Speaker 1: Right.
Speaker 3: The second part would be would be, yeah, I think
you could get to that point. Would it be faster,
would it be better for the end consumer? I'm not
one hundred percent sure, right.
Speaker 1: Well, at least giving them the option, right, you could.
Speaker 3: Give them the option I think will absolutely happen, will
it be? But I still suspect you'll have your kind
of You'll still want your your thing. That is the
thing everybody looks at. We already know what it is,
so let's make it real as so I don't have
to chat because I think that process will involve some
iteration to get exactly what you want every time, So
you won't want to do that for the report you
have to look at every second day.
Speaker 1: Right, And then on top of that, you could add
speech recognition so that you could just literally talk to
the app and get absolutely what you want out of it.
Speaker 3: Yeah, but more important, but more also interesting that is
just mining for insights, right, Like, if you're going to
have that conversation away where the thing can understand all
the data, can you ask you questions just like you know,
what has my growth been? What is my year over
year growth?
Speaker 2: Now?
Speaker 3: Absolutely, and it would just tell you and then you
don't need to go look at the chart to interpret
what the year of year growth is. Right, So to
give you so.
Speaker 1: Much, you might have an app which is your main app,
and then you might have this AI bot for lack
of a better thing that you just converse with to
get data out of your back end.
Speaker 3: Yeah, and then you see the other experiments people have
gotten where you're effectively getting a free junior dev of like,
which is just AI agents writing like fixing, doing prs
for you against issues that are logged on your repot.
Speaker 2: Right, that's insane, well at least writing my pr our
comment good lord.
Speaker 3: Yeah, yeah, absolute ability.
Speaker 2: To actually remember, well not remember, but I analyze everything
I've changed and give me a summer.
Speaker 3: It give me a summer, it's not in my head, right,
write all the unit tests for me, right, Like, Ultimately
you want you want to get to a point on
that AI assistance where the AI is doing all the
toil of code so that you could do the fun
parts right, But that's.
Speaker 2: Uh, yeah, they're just their augmentation tools and they're a
good one. It doesn't It writes unit tests that are okay,
but you know, it's still easier to edit a test
than it is to write them from scratch, right, and
sometimes it spits out stuff you just haven't thought of.
Speaker 3: Absolutely. What's interesting for me, Like, I guess I want
to talk about challenges that are maybe are unique to
me on this front and maybe not, but hopefully it's
interesting to people. Is like you can't put that stuff
in a box of ships annually yet, yeah, because it's
some sort like there's there's this challenge within the AI space.
It's within Aspire as well. Different so I guess it's
common for both of those things but for different reasons.
But both of those areas are resistant to we're going
to ship it once every year and call it good
and put it and install it on everybody's machine, either
because the pace is really fast or because you're depending
on lots of stuff that you don't control. In the
case you Aspire, right, if we need to update the
redest client that we depend upon we'll need to do
an update, right, and in the AIS case this there
might be some new way of doing something that is
very important. Therefore, both of them are kind of not
we're shipping them along with everything else in don At nine,
but we're making sure that mechanically they're not tied to shipping,
only being able to ship when we ship a major
version of the thing.
Speaker 2: Sure, and you need to be able to swap out
what Opening Eye Library are using. Absolutely, I would hope
you can switch to a local instance of Cloud if
you want, or a LAMA, right, like, yeah, that's.
Speaker 3: All that sort of stuff. Yeah, but then also like
what's into thing about that is Aspire nine works on
DONNA eight But like normally we've we've we we have
for some time tried to keep nine is nine eighties
eight seven is seven because it's just easier, it's far
easier to reason about.
Speaker 1: Right.
Speaker 3: Everybody's brain breaks when you start saying, but technically you
could be using seven, version seven of this on version
six of that with version four of this thing over here,
and then your brain explodes.
Speaker 2: Where I feel like one version of Aspire is good.
Speaker 3: And that's and so yeah, so but if it's two versions.
If it's Aspire eight as a world and Aspire nine
as a world, and they're working on a dot net
version which is either donat eight or nine, that's probably understandable.
But that's part of this, like the things I don't
necessarily always ship in the box now, the same as
with kind of extensions AI, and that's we can't go
to the world where everything individually ships, because we tried
that in the early days of Core. If any of
you remember.
Speaker 2: We do, and that ad is lts like, it makes
sense to me you'd support two versions of dot.
Speaker 3: Now indeed, which is another discussion that you then kind
of have internally about, oh, maybe this makes a lot
of sense, maybe we should do this more. We haven't
made decisions on those front, but we've certainly talked about it. Yeah.
Speaker 2: No, but you're definitely feeling around for it's some things
you just want to keep sync. Like, I'm okay with
you calling it Aspire nine. Yeah, even though there's no
way you've made nine versions or anything.
Speaker 3: Yeah, absolutely, even though there's no version exactly. Yeah, because
it's just you've got to try and you have to
balance the well, technically, these things can all be independent versus. Yeah,
but how should people think about it? Because you need
to make it easy for everybody at the keyboard trying
to figure out what they've got to do. You need
to balance all of that. You've got to balance that thing.
And then it's easy to invent scenarios of like, but
what if we add a thing here feeds bug fixed
to this package only and somebody really wants that, And
I'm like, yeah, but really.
Speaker 2: Well, and especially in fast generating stuff, there should only
be one current version of Aspire that I don't care
what you're working on on the back end, it works, yeah, ideally,
and same for all of this gen AI stuff because
it is so iterating so rapidly. Yeah. Yeah.
Speaker 3: And then and then then in the AI stuff, the
challenge is figuring out the things that are going to
be enduring. Yeah, because you don't want to push everything down, right,
So we have chat completions in and some people will
look at that and say that's cute, like, but what
about this other like mountain and stuff that exists in
that ecosystem, Like what about audio? What about streaming audio
backwards and forwards or like some some other thing. Right,
We'll be like yeah, yeah, but we can't. We can't
move different layers of dot and need to can move
at different speeds, and we don't help anybody if we
if we evolve too fast in the library, in the
in the well.
Speaker 2: Some folks are arguing that a version of dot net
every year is too fast.
Speaker 3: Yeah, exactly, Yeah, yeah, but that's already too fast for
some people, right, And I think with that is actually
often more about people when people don't want to feel
forced to move more than they care about the fact
that there's another version. And also people feel bad if
the versions get too far ahead of them.
Speaker 2: When you're at six, you're missing out.
Speaker 3: Yeah, lots of people are on six. By the way,
it's the most popular, not new, it's the most popular.
Speaker 2: Version that the LTS. Exactly.
Speaker 3: So the data tells us that roughly half of the
dot netir base only moved from LTS to LTS.
Speaker 2: That's fine, that's good. That's a good thing to know.
It just speaks to people care about that. Like there's
another debate that is why why I have an LTS
and a non LTS, like just make them all the same,
But clearly it matters to a certain group of folks,
it does. Yeah, yeah. Yeah, And I mean I'll included
a link of Stephen Tabbs every year amazing, ridiculously complicated.
You need to spend an afternoon reading blog post on performance. Absolutely,
But I firmly in the camp of when you swip
to a newer version of dot net, stuff's faster. Yeah,
you just get two ways about it.
Speaker 3: Yeah, for all of for everybody listening, every version is faster.
That's that's a that's a true is full step. We
tried to we make it. We try to make every
version of fast. And there's some amazing experiments happening, Like
the runtime team has been experimenting with acinc and like
a different version of acinc, Like like, not a different version,
We're not going to change, different approach, different approach. What
if the what if acinc was more of a run
time feature and less of a compiler feature.
Speaker 2: Interesting?
Speaker 3: What does it do to perth?
Speaker 2: Yeah?
Speaker 3: What scenarios are better? What scenarios worst?
Speaker 1: Right?
Speaker 3: Like, what does that look like.
Speaker 2: Rather than just spitting out acinc i L with all
of its overhead, what if you actually had underpinnings in
the OS that under in the language that did this
exactly right?
Speaker 3: So, like experiments for that like it grew growing out
of you know you maybe you saw some of our
experimentation with green threads and doesn't make sense to have
a green thread model in dot net. The outcome of
that was, yes, we could do this, but it would
like be yet another way of doing ac Really what
you need another one that I don't know what significant benefit.
Speaker 1: What are green threads that?
Speaker 3: It's they're kind of like the way that go routines
in go work. It's just a it's a it's a
different way of doing a sinc I'm not it's a
bit far from the point to worry about it. Sure,
we can grab a link, but what we'll do is
grab a link to.
Speaker 2: Wed To the to the original issue called the Green
thread Experiments. Good.
Speaker 3: It's a good it's a good interesting read if you
care about learning what is green threads or about just
this topic in general. But to be honest, something the
most of you all probably don't have to care about.
Speaker 1: So, you know, so I want to just go back
before we sign off here, you were talking about AOT
and how AOT is progressing. Our friend Dylan Beattie, we
just talked to think last week. Before this comes out
right Richard.
Speaker 2: Something like that.
Speaker 1: He's great, yeah, all right, so he has a language
called rock Star, and you know, of course it's fun.
But he was waiting for AOT to really come into
its own and he was like, dot Net eight finally delivered.
So he can, you know, with a GitHub action, produce
a fully you know, native version of his interactions the
compiler or whatever you want to call it for all platforms.
And so that's there in eight and dot net nin
Does it just make faster and smaller executables or what?
Speaker 3: No? No, So it's more of the IoT at this
point is the more of the ecosystem just works. So
like in AF doesn't really work right, EF does a
lot of things that don't work super great in AOT.
So if you're trying to do a compiler, it's one
hundred percent fine, but some parts of the stack don't
necessarily work super well with it. And so it's it's
more about broadening the ecosystem so that more and more
of the things just work without you thinking about it.
Is what the progression for AOT is for at least
the next year or two or three, okay yo.
Speaker 2: In the context of AOT, just another subject before a
run out of time Windows on ARM. Yeah, So, I
mean my presumption has always been you guys are going
to take care of this for us. It's dot net developers.
If you want to run on ARM, you run on Arm,
and Git will simply do.
Speaker 3: It the magic of Git.
Speaker 2: Yeah. Yeah. But if you're aoting do you have to
pick a platform? Yes, yeah, so you're and the obvious
one is x sixty four and because that's what everybody's running,
so that makes it pretty easy. And then flip an
ARM shows up and you're.
Speaker 3: Like, and then now you've got to do a new build.
You need a new compile. You need a new compilation
for the new platform that is targeting. That's the price
of AOTRUS one of the process.
Speaker 2: Yeah.
Speaker 3: Absolutely, But if you are a compiler you probably want that.
Speaker 2: Yeah. And well, and if you are deploying a backhand
chunk of code that needs to be absolutely as fast
as possible and only runs in exactly one place as
specific you know, instance in the measure, you can aot
that thing.
Speaker 3: Also, if you're running into container and where you have
a lot of control over this thing, ye might specify
the way specify a lot of that plat form information
so you know it's never going to change, right, But
to your point, to some extent, you're still running on
a CPU, like what do you?
Speaker 2: Yeah, you are, and that's just the job of the
run time was to the CLR was to take care
of this for me.
Speaker 3: Yeah.
Speaker 2: It is interesting to think because they are starting to
roll out those big my ARM processors into Azure. Now
that it's one thing for me to build in dot
net and run it in a regular app service or
then run it on a Linux instance, but now i'd
have the option to run it as an ARM instance
and say, you know that it's like twenty percent twenty
five percent cheaper to running on a Linux instance. I
wonder what it's going to be on an ARM instance
that's less performance?
Speaker 3: Indeed, I don't know. Ye, yes, if you're using normal
dot net then yeah, that we do. We've got we
got you.
Speaker 2: Yeah, you know it's going to work. It's just like
the simpler architecture of ARM, the way that it processes instructions.
And I am clearly a hardware geek. I wonder if
it'll actually outperform and be cheaper from a resource consumption perspective.
But you guys also haven't had as much time to
optimize for ARM. Yet like maybe another version or two
from now, your ARM optimizations will be stunning.
Speaker 3: And it might well be that that's the thing that makes
the perfect changes from a version in the future.
Speaker 2: Who knows, right, yeah, and jumps out again. Right, it's like, hey,
you want this thing to rock running on an ARM instance, Andrew.
Speaker 1: I always I still can't get out of the mindset
that well I will, but that ARM means lower power,
right that is. But it isn't that that is totally changed.
Isn't the MacBook M two kind of stuff? Isn't that
an ARM.
Speaker 2: Chip whethery're up to N four now? And yes, I
would say highest performance set up that exists right now. Yeah,
that's because it's just super asic, right, Like it's the
processor and the GPU and the CP and and the
NPU and like everything integrated on this chip of doom.
Speaker 1: Right yeah.
Speaker 2: So, and that's where they're getting a lot of their wins.
And that's to be a Dragon did with their Ultra AX, right,
that's just new Windows on ARM platform. It's that process.
Speaker 3: Yeah, this is and this is part of the world
that I don't spend as much time in. But the
the when you start looking at the assembly that is
getting generated when against x eighty six or A versus
ARM versus Zombie two and such, it's like the ARM
instruction set is getting fairly large. But like there's some
cool stuff I've watched some people recently where you decompile it.
If you use like one of the tools to do
decompletion and you put like x eighty six versus ARM,
and then you take the same code and you look
at what the assembly looks at, it's vastly different and
frequently looks Wastimply.
Speaker 2: You know, X sixty four x eighty six has this
baggage of decades. You know that it's bridged from eight
bit to sixty bit, to thirty two bit to sixty
four bit, and ARM has only been thirty three or
sixty four. Like, they're just fundamentally simpler. And you know,
to the point where that snap Dragon machine is emulating
X sixty four fast enough that you you barely notice it.
It's more power consumptive, but it's fast.
Speaker 3: Yeah, for some of the for some of the people
out there who are interested in this, you should absolutely well.
First of all, Tobe and handsmen do some deep dot
net where they drop to assembly. I believe you should
probably watch some of that, but also just jump into
some of the decompiler apps that are out there. It's
write something basic.
Speaker 1: Just do it.
Speaker 3: Just do it, Yeah, do a console that right line
and then look at the IL but then start and
then start clicking around and look at some of the assembly,
not to try and understand it, just to like have
a look and see how it goes. If you and
if you do want to learn that layer of the stack,
like go nuts. It's so easy. It's not not easy.
It is so available now for you if you want
to choose to go into that part of the stack
to go do it like you can do that now.
It was kind of impossible for a long time for
you to really figure that stuff out. And now there's
lots more resources available. There's lots of very easy tool
to just write some code. See what the output will
be looked. Like last last weekend, I spent two hours
and I had a basic app. I had a basic
OS writing to the console right like I had created
a grub bootloader that like booted an emulator in QMU
and like was writing Hello World to the screen right.
That was like I could follow a tutorial on the
internet to get to the point where I was booting hardware.
That's insane and it's amazing crazy, Like doesn't matter which
part of the computing world that you want to be
involved in right now, the availability of materials, it's ridiculous.
So even though we said earlier that it would be
scary in horror and maybe I wouldn't want to be
a developed new developer these days, on the other hand, man,
how much more stuff is available for me to learn
if I'm a new developer these days.
Speaker 2: It's so much more to do. But this is where
the tooling comes into play. Yeah, he you know, two
years ago building cloud native and dot Net hard right,
aspier maybe young, But it's easier now yep, and it'll
only get easier from here.
Speaker 3: Yeah. This is the advantage of kind of Dotnet as
a platform, right is because you have us my team
constantly looking at what sort of does everybody have to build?
How do we make that as easy as possible? And
then as so as Donet evolves type of apps you
need to build, chances are we've been making that easier
for a bit for you, or at least we will
be in a year from now. It's one of the
challenges I try to set for myself and for my
team is that constant progression of what what does modern mean?
Speaker 2: Yeah?
Speaker 3: Right, we're like, what is what is the if I
was to go do if I if I am got
a green fields project today and I'm like, yes, this time,
this time, we're going to do it, right, then what
would actually what would I think I would build and like?
And how do I make that thing that you're trying
to build be amazing without letting the people who aren't
don't get the chance to do that green fields fall
by the wayside, right, because you also need the It's
often far more impactful for me to help the person
who needs to get to that new, that different architecture.
Speaker 2: I think you have to do this in two steps. First,
is what's the perfect greenfield athlmitation? And then how do
you have these tools to bridge my brownfield after that
space exactly.
Speaker 3: When you see I aspire trying to bridge that. Well, now, yeah,
but you're doing a couple of years ago, we didn't
know what the ideal of greenwill field space is. Right,
you can and there's still like areas of there's still
lots of areas to go look at, in that, in that,
in this whole space.
Speaker 1: Well, Glenn, what's next for you after dart Net nine?
What's in your inbox?
Speaker 3: I suspect I think ten is the next number after nine.
Speaker 1: You know, I had a feeling it's it's weird.
Speaker 3: Yeah, it's funny that thing thinking about.
Speaker 1: Like take a vacation or something before you jump back in.
Speaker 3: And typically December gets pretty quiet on the team, like
towards the end of November and December.
Speaker 2: And I gotta bet there's a bunch of stuff that's
sitting in like a v next topper that didn't make
it there is.
Speaker 3: So there's a lot of teams, there's a lot of
people who are now going through their backlogs. So there's
a lot of backlog grooming happening at the moment, like
what are the things we want to pop? We want
to pop that we want to bring up in the
next version. Aspire needs to do like some miners before ten,
so it'll do some like backwards compatibile, like let's throw
a few brand new features in here, like we just
ship support for big areas like functions and friends, So
they'll have to ship and they'll have to ship before
the next version. There's a lot of that. There's a
lot of which of these experiments do we now want
to bring forward, which of them do we won't? A
lot of those kinds of decisions have to be made, And.
Speaker 1: Then there's some Gotchas and Blazer that needed dressing.
Speaker 3: There is a lot of work on all of the platforms, right,
they just all need constant evolution and constant love to
make better. Maui has gotten way better, Blazer is significantly
betting better, but Blazer in practice only very recently will
kind of switch into this full stack kind of almost
better framework mode of being a web stack. So like
there's a lot of work there there. We've been talking
a lot about reliability of connections within Blazer and trying
to make sure circuits and connections and stuff and much
more reliable and resilient. And what work can do there
for example, like as well as a whole backlog of
stuff that team has. Who knows what's going to happen
in AI six months from now that people are going
to need to use, like I need people like I
need big companies who are today knocking on my door
saying We've got a fleet of donet applications and we
want them to using this new generative by staff today.
Speaker 2: Right, what do you got?
Speaker 3: So I need to figure out how to answer those
people and then uh, and then and then all of
that sort of stuff, Like every every week is different.
Speaker 2: It's a pretty cool problems, Glenn. Cool. I mean, there's
still problems, but they're cool.
Speaker 3: I have a cool job, don't don't get me wrong.
Not many other jobs where I get to listen to
somebody talk to me about like a GC and like
a runtime like acinc stuff as well as AI and
like how we're going to do cloud native stuff and
all in one week, right is all?
Speaker 1: That's good. It's all good stuff, Glenn Conder And thank
you for spending this time with us. And wow, what
a great what a great conversation.
Speaker 2: Thank you, Thank you.
Speaker 3: Hopefully it was enjoyable to everybody out there. And I'll
see you all next.
Speaker 1: Time, all right, And we'll talk to you, dear listener
next time. I'm dot net Products. Dot net Rocks is
brought to you by Franklin's Net and produced by Pop Studios,
a full service audio, video and post production facility located
physically in New London, Connecticut, and of course in the
cloud online at pwop dot com. Visit our website at
d O T N E t R O c k
S dot com for RSS feeds, downloads, mobile apps, comments,
and access to the full archives going back to show
number one, recorded in September two thousand and two. And
make sure you check out our sponsors. They keep us
in business. Now go write some code, see you next time.
Speaker 3: You got jam vans
Speaker 1: And the taxes are predial