Community Standup with Kevin Gallo - January 2018

Show video

Hello. And welcome to another community stand up with Kevin. Gallo my name is Seth Juarez I'm privileged, to have as always the corporate vice president, of Windows developer, platform here with us to talk all about Windows, the important thing is remember that these questions, we, want you to ask questions this show is all for you it's not about what I have to ask I will steal their whole hour if you let me so, please make sure to ask your questions or I'll steal the whole, hour so okay why don't you catch us up from. Last time what are some new things that we should be excited about with Windows well the big thing happened really was CES right, so we did you know several announcements there and we had a lot of announcements about our continuing, support and they always connected, PC we. Announced some new there's, some announcements, of some new products mainly. One from Anna novo the mix, 360, we, also announced, prior to that at the Qualcomm, summit some, also, can always connected pcs from, HP and Asus, and really, this is a new category there's, a PC, that combines, the simplicity and the mobility of a phone with, the creativity, and power of a PC and. It also works. On you know multiple different architectures, like arm and so we've in choose some new technologies, with, Qualcomm, to support pcs in this category so I understand, you brought a guest so, that I can pepper, her with tons of questions why don't you introduce her for us so basically. I we brought on Aaron. Chapel, who's gonna tell us about all about this always connected PC and kind of you know what it means for, the industry, yeah thanks, so let me just ask a couple of questions I'm completely, curious as a dev this is for developers obviously. So sue dev might be watching she might be thinking always. Connected, PC how is that different than, a regular PC, and how should I think about it as a developer, producing, application, for yeah and so I'm, first of all thank you for having me here it's really exciting to be here to be able to talk to the developer community about, this new device you, know I think it's really important to ground why we do these products, and really what they always connected, PC category, needs to us at Microsoft, you know Kevin you teed it up really nicely, if, you're like me, over. The last several years you probably have found yourself, leaving your PC in your bag more, often than not and.

Really Becoming dependent on this mobile experience. That you have I. Am, the queen of editing, files. Oh point files whenever on my mobile device which really doesn't help my creativity, in my productivity, and so, hence comes this always connected, PC category, where we really want that simplicity, and the the. Connectivity. Of the mobile device and the experience, you have but giving you an unlocking, is creativity, so, for us there really are four key, points do they always connected PC first it's always connected built-in, LTE the ability, to seamlessly switch, between Wi-Fi. And LTE the OS, really, providing, a lot of capability, that does that natural, switching for you so the customer doesn't even have to think about it, the, second, is great. Battery life, right and you know we often talk about they always connected peace but for me personally the, battery life has been the thing that's really changed my behavior as. A consumer, of this device we're, talking, about days. Not, hours of, continuous. Battery life and weeks. Not, days of, connected, standby and, if you think about the combination, of those two like I took one of these devices on holiday, with me for a week and sure, I wasn't using it right every, day you know for the eight-hour workday but, I used it two three hours a day I watched a movie I did some photo books etc and I only had to charge this thing once in a week and when, you really, get unfreedom, the shackles, of Wi-Fi, and searching for public Wi-Fi and then. The power cord that becomes, like, really liberating, as a user and then. The last two pieces are it's. Just Windows right. It's the windows we know and love it has all of them and it's hello, inking, you, know touch all of those things and so users can expect it to operate just like they would you know their windows that they know and love today um, and then lastly, it really affords these new thin and light designs that fit with that mobile experience, and filled with that being able to stick it in your bag and go anywhere with it and really think about how I know I have found that I know last. Night I was waiting for a friend they were 15 minutes late to meet me for dinner you know I'm sitting there in the restaurant I popped, out my my always. Connected PC and I was productive for. The 15 minutes while I was waiting and I was like no problem like, actually if you want to be another 15 minutes like great I have stuff to do. So it really changes that whole experience you have so, let's talk a little bit because obviously these always connected pcs and forgive, me I have tons of yeah, it's. A different architecture it, feels, like and it's using different, kinds of chips can we start with like what kind of chips are actually being using them so they always connected PC as a category, and we really embrace silicon diversity, and so you'll see devices. From multiple silicon vendors from multiple OMS, but, one of the things that is really interesting in, this is first wave of devices, that we have is we, have used, our partnership, with Qualcomm to.

Really Take advantage of, some of the architecture. And the features of the underlying. 8:35. Snapdragon. Chipset in order, to be able to light up these features right so, first and foremost it starts with. The chip Qualcomm. Has just had long experience, in battery, life and, really, being able to be experienced, with that always connected, scenario, that instant-on, and. So the, you, know just. The the architecture. Helps us with these long you know battery life the. Second thing is the the qualcomm chipset is just small right it's got an integrated, built-in you, know LTE chip on the SOC, and so that enables, us to get an efficiency use and you know out of the performance in the power you, know at the system and, that in turn enables. These thin and light designs right, you can put a bigger battery in it you can actually have families devices, and so that we think will unlock a set of you know new types of devices that. We'll have so that's that's kind of the first now you, might be thinking okay well great we got this chipset but like like what did you have to do on the OS side in order to make that work yeah uh-huh, and so you know and and I think probably people might throwback and you. Know hearken, the days of RT. And say, well wait why is this different why is it gonna be any different you know I think first and foremost the chipset is different we're in a different time and second we're taking a different approach to how we think about this right this is a new category and we really natively. Recompile, the operating system to run on this device and. So we really are bringing the full power of Windows to the device and. Then we've, really thought about well what does the user do with this they want to bring their apps right we're talking to the developer audience that's a really important piece of it and so, we've invested in our Windows on Windows abstraction, layer to be able to emulate, x86. Apps running, on. The arm architecture in, order to unlock the ecosystem, of applications, that we have today so this is crazy talk for me as a programmer, I remember doing because I mean as. I'm thinking about this the ARM chips for, example the ones from Qualcomm or whatever we're running on they have different, instruction, sets yeah, I did, I mean like when you get down to the fundamental, they're the instruction, sets are different, so. When you say Windows on Windows I I. Don't understand, how this is like how is this happening, give me a rundown so we're actually using dynamic, binary, translation, to, onload of the application, convert, right. Chunks of code into arm. Code and be able to run it on top of this device is this something that am I gonna notice that it's. Is it performing I guess is my question yeah, you, can get into kind of the details of it I am I think maybe before we go there let's first maybe start by showing it I'd, like to invite a special guest up here and then we can maybe come back to the performance because people I think should see you, know if. First and foremost I think when people get their hand something cuz it doesn't even work and. I can assure you right many, of us within Microsoft have been self hosting these devices, and. So I'd like to invite hurry, come on from, our team hurry is the principle group program manager for the Windows kernel team his team has been really, behind. The magic of a lot of this is I'm a sweetheart if he come and and just show us maybe what the experience looks like from a developer point it's a great idea love this let's do it cold sorry thank you thanks, Anna so I'm gonna show you two, demos so. For the very first demo I'm going to show you some sad element focused audience I'm going to show you a remote, debugging scenario, for you WPF, right and then finally I'll show you the x86. Emulation. App in action there. Are no more questions about performance, and we can keep that there let's do it all right so I'm. Gonna look at the surface laptop on the right this has my visual studio this is my dev environment this, is what we're I where, you want to open you in the studio and start coding what, I have here is an MSDN, sample, app so this is available on msdn just download it it's a simple uwp game app and so. I actually, set up a breakpoint at the very start in the constructor, so that when I remote, debug this and deploy this on to the Snapdragon, PC you, can actually see it break in you can look at the stacks and you'll see that this is real there's no hang magic here okay all right so let's, do a demo demo, so let's know the multiply so it's the first thing you want to do when you do it remote deploy you. Want to go in your project properties go, to the debugging tab make. Sure you've given the IP address, of you, of your, remote PC and since.

I Already have this set up I already did this make sure your authentication, type is universal, right. As you can see it's right there I did all of that and since. We are now deploying to an armed PC you need to make sure your architecture, in the drop-down here is armed as you can see I did that too and. On. The, remote. Site if we can switch the. Display back to the always, connected PC. And. We're. Waiting for the display all, right let's do it there we go all right so. There I am now in the always connected PC you can see the IP address, here it's the same that I just showed you and you know that this is a snap back in PC because I'm going to pull up task manager I'm going, to show you that this is a Snapdragon, processor, 835. Eight. Cores for big for little so. This is the final deal and. So. That's it and so when you need to do this one of the first things you need to do you need to make sure you enter into developer, mode so that you can deploy, your apps, and debug them and so. I already, did that I set up a developer mode this. Next thing you want to do is you want to make sure you enable, the device discovery, and then. Finally you need to make you need to pair your device with. The visual studio environment, so, that it can talk to each other in a secure manner and so I did that already, this, is a one-time, action only you don't need to do this all the time so I just did this I already set this up so we don't waste time doing this in during, the demo nice, so, on my, surface laptop. I'm now going to press f5. And, you. Don't need, I'm gonna press f5 now. This will kick off the remote deploy and now. This is creating a package, creating. Capturing, all the files and then copying it over the Wi-Fi, network onto the remote PC this is gonna take a little bit of time and while, it's doing that I just wanted to quickly point, out I in, the drop-down you saw that I used arm and. We've. Been talking about exiting simulation, we could have also used x86. In there right, and that, would have also worked just fine, but. Since, this is a uwp app we. On the arm package, to be deployed onto this one so that it runs natively without, emulation right so that way you get the best performance out of your machine out of your apps that's. Awesome so this is very similar to what we would do with the xamarin application, for example right and it's, just deploying it directly to the machine so this, is exactly, the piece, this is just a PC everything, I showed you is documented, on MSDN mm-hmm, so right so if you go and walk do the walk to the nemedian it's all the same doesn't matter whether, it's always, connected PC or it's a surface laptop or still Lenovo or an, LPC there's, no difference it's all just a PC and when I'm writing the application is. It just regular. Uwp writing things is just a regular your WP app if you see this there is no code changes you, could is exactly, the same code I downloaded, from the MSDN, made zero code changes, branded, on arm presumably. The person who wrote this app never even see has seen and, always connected PC right like we haven't released it yet in, store. Apps basically we've always recommended, that you, repeat developers submit in x86, as, well as a arm, and most do some. Don't but we always encourage them to that way any store, deployed app but there's already a ARM version of it in the, store for you to BP and those are the ones that were run on this device, awesome, awesome this this is pretty amazing so when you deploy when, you deploy it's actually taking, the app X that's right and then it's moving it over and then does it run it as well and so you're debugging it's, launching it and now as you can see on the screen I've actually broken into the app I put a construct, I put a brick partner constructor, so you can see this is live there's no magic, here stack. You can see the stack right here you can see the code you can see the variables, the local variables so, I'm going to hit f5 so that we can go ahead and launch the app on the remote machine let's, switch to the result we can switch to the yeah if you can switch the remote machine there you have it the games actually launched, it's the game and I'm going to actually show you it's real live here there's no tap, to continue it's a pretty silly game but. As you can see the performance, instantaneous, there's no lag there's nothing right I'm holy cow, let's shoot a couple of balls and. As. You can see there's no lag none of them nothing, and. Now the reason why this is doubly. Impressive, for me which is thank you for let's. Just see what it because. This is actually a debug mode this isn't defined the thing about seeing, about debug node we all know that, there's all these symbols that get generated and there's all these other things that are happening but.

Even In debug mode it still feels really fluid yeah and this is an ARM version so it's running natively, on the systems remember so that's why I eat that there's, no emulation in this path yet and that's pretty amazing how, did you squeeze, all the power out of a chip like that, there. Like we're not telling anybody. It's. Pretty amazing the other question, I have and you alluded to this a little bit and then we'll get to your questions is you, mentioned these windows on windows x86. Emulation. Which effectively. Takes, one, instruction, set and maps it to another can you tell us a little bit about how that works. Do, we first, show you a demo of that yes. That. Way. All. Right so let's close this remote deploy and. Let's. Switch back to the to a Snapdragon processor if you can okay and so. Since. The developer focused talk what I'm gonna do is I'm gonna show you I'm, gonna install GBM. Right. So no. Jokes about Emacs. Please I don't talk nice so, how are we gonna exit, out of there before the, end of the show. So. All right so this is a GBM that I just downloaded straight from the web there's no magic here I just went to wim dog I'll received it on the desktop previously, to avoid to. Stop wasting time mm-hmm and there. You have it yes please. Install and, so. I agree let's, create. A batch file so that we can easily launch it this is just what you would see you if you're installing GBM on your, PC, there's. Running normally it's running just, as it would on any PC you don't see any lag you don't see any I don't think people are understanding, what's, happening. Like. This is not an executable, that any of us ever built not anywhere, in our entire, windows anything. There's no G vim somewhere, else you know and it's, it's built. For x86, type, processor, right and you're, just installing, it like nobody cares right it's like it's like walking into another country expecting. To speak English without a problem right. How do you do that that's right and so, so. Look, let's. Just show you them yeah so that, installed, as. You saw I would install just like any normal on, any normal PC it's just a PC right we get to install x86, win32 apps just like you would there's no there's.

No. Special. Secret, key pressed Express Dax and I'm going to launch GBM and there. You have it is just launching like you would hello, world. And. Obviously we're just gonna have to leave it open for the rest of the time so anyways how to get out of there right but this is pretty impressive no, I am NOT going to have fall, for your base okay. WQ. Exclamation. Mark don't say that this is amazing so now that you've showed us this actually, working, I, got. To know how is this windows, on windows thing working it's the first time I've heard of this yeah. So so as, I talked about when that application, loads what we do is we use dynamic binary. Translation in order to convert write, the x86, code into, arm code and run it on the system and so we do that translation right, and, in, some sense it's as complicated and as simple as that now, I. Think the question in which kind of goes behind that is well what is the performance of this yeah because, you, know if you're doing this right in real time in some sense what does that look like and you, know there's a couple things to point out here one is that again. I want to start with we've natively, recompiled. The operating system so, that things that are talking right to the hardware to the kernel are running at native, performance speeds, so. Then it really comes down to well how do I get the most performance out of that application, and we were really smart about thinking about where did we set that emulation, layer right where are we gonna do that that translation. You, know we have the, system D allows that are native should. We do the translation, above those right so then we're getting the native performance of the system dll's, well if you do that you have some challenges right because x86, applications, are using 32-bit data types, and using x86 calling, conventions, and so if you were gonna do the translation, that that layer you're gonna have kind of more of a performance, hit well we get to be the data marshalling, all of that some of that can be automated but it's you know it's somewhat complicated you, know so what we decided to do was actually you. Know have these exits applications, call, you, know x86, system, DLL, and do the emulation at the layer below that and we felt like that was the best trade-off right from an app compat point of view and a performance, no, we didn't, want to stop just at that right cuz we do want to squeak radik so we want to speak out every part of performance in this system and. So I'd love to have you, know Hari talk about some of the work his team did on this compiled hybrid, portable executable which you, know is a little bit of computer science magic in in my opinion well I'm, all about computer. So. Actually if we can elaborate, a little bit while, I lead into the cheapy part so. If you take an executable machine just like a surface laptop right when you install an x86 app on it what. Really happens, is you install it into c program files x86, you, have a directory, called sis valve 64, which has all the system dealers on it and then. So what this. Is this is the windows on Windows abstraction, layer that Aaron was saying so what really happens, is we have the entire user mode thing running as x86. The, kernel is always x64, now. Big the key difference here is that on the next 64 machine the processor, itself can.

Natively Run, x86, code right the processor already knows oh exit is in session I know what it is I know what to do I got all sorts of so. Exactly, so on an arm machine the processor obviously does not understand the instructions, and so, we use the same system, of 64, earlier to, basically now run our own emulated. Code so we'll basically, use. The same sis was 64 infrastructure, it'll trap into the curve in Tabriz of our layer and the wall layer will take the block of code that it just saw translated. Into an arm instruction, so move is equivalent of arm instruction and then we'll just run it on the core and just will. Run it on thing so that is emulation. At this core if you, switch, to the, Snapdragon. PC on the, there. Is there is you can actually see, what I'm talking, about just. By doing this. See. There's a sis while 64, and if you do that on any, x64. Machine, you. Will see exactly, that, right. And you'll. See a sis was 64 X 66 machine you'll see C program, files right x86. C, and there. Are some more interesting aspects, there which we, may or may not want to go into there but we get so so, that's what we are doing and so, chippy is an interesting, technology, that we did now, if you think about it the, reason we. Have to do translation, is because we don't have SourceForge, even we don't have source for any of these x86, apps so, that's why we have to translate them at runtime now. However. The. Code insect sis was 64, is all ours it's all kernel32, or by Microsoft shell 32 kernel. Base that's all our code we have the source code so we don't necessarily have to translate, them into x86, so that's where the chippy magic comes in so, what we did is for the code that we own where we have the source we've. Done, this chippy. Thing. Which basically is like, you can think of it as all the code pages are on 64, but. All the interfaces, are x86. So. That way when an x86 process, is calling into kernel32, it's, actually, loading, our cards, the chippy country dough which is really just I'm 64 code but. The, interface, the abstraction the entry points into it are all x86, so it can load into. An x86 process, I said. What you have the application a little bit of this performance, turbo boost right because, we can run the code it's calling at native, performance. Levels, and usually I'm, sorry use this happens when you're going from user to kernel mode you're doing kernel calls no, no no all, of it all of the sis sis. Sis while layers are always in user mode I see entire, wall layer is in using what the kernel mode is, always. Native, your drivers, are always needed that's why it's so fast, so. When you're doing io native. Driver when you're doing graphics, native when you're doing networking it's all natives it's only when you are doing hitting the CPU running. Code that's. When you have to put in the translation, layer that, makes sense we were saying I'm sorry yeah and so I you know I think this is just gives us a little bit about turbo boost right and you know now in these days we have great telemetry, on what our applications, are that customers are using and so we as we've thought about like, what binaries, are we going to enable from a chippie point of view or using, telemetry of the top applications. In, order to kind of go through and pick, the the files that we think will have the biggest impact from, a customer, point of view and that's cool because moving. Forward when everyone, starts writing all these cool, locations, you'll be able to see where you could even squeeze more performance. Out of it all right so I've been really selfish let's get to some questions Matt Marshall we've seen several OEMs, announced they're always connected PCs how. Is commitment, by other major OEMs firming, up are there many fence sitters at this point I think, you know with any new category, that you're launching you, really you want to start you know and prove out in some sense the category, exists, and so the part neoui and partners we work with you, know really understand, and our leaders that I would say the consumer, space which is the first place that we are looking you know but one of the other thing is that you know is interesting, what this category is the potential, over time is not only the consumer, space but also enterprises. Today. A lot of enterprises are really looking for how do they reduce cost and how they reduce overhead, you know they're offloading, a lot of their storage, and networking to, the storage, and and and.

Compute, To the cloud you, know the next logical evolution of that is to offload their network to the cloud and be able to take advantage of, right this large investments. That our mobile operators, and carriers around the world are really putting into things, like 5g, etc. And. So you know as this category, expands and we see really, being able to take advantage of some of these other you, know customer, profiles. And scenarios, you, know I think the other OEMs will, will continue right we're always in conversations, with our partners and I'm not ready to share anything at this point but you can look forward to you, know in upcoming months and whatnot you know announcements, in that area and here's the thing I mean they, were remembered terminal services or a long time ago this is like the logical, oh this is how it's always should have been instead, of that little cheap, little box and then you had the little thing and this feels like a natural, evolution, to something where an always connected PC imagine, with it with a good networking you'll be able to connect, into your things and do stuff from anywhere really yeah exactly I mean I for me it was I've you talked about CES last week you know one of the things it was my first time at CES that I really experienced, was the, massive. Traffic and long taxi lines and whatnot and, for me I was thirty minutes right from the hotel 45 minutes from the hotel the Convention Center I'm sitting in the back of a taxi and I'm working on my always connected PC and, you know communicating, and I have you know a great network speed as well as all the power of the PC it really does kind of change the thinking of where you could work when you can work how you can be productive. Awesome. How come did you want to say something Carrie before I go to this question no I think awesome all right Matt Marshall again we've seen a number of carriers commit to supporting always. Connected, PCs is there a good reason to expect universal, support by cellular, carriers, internationally. I we. Are, of course in talks with mobile operators, kind, of globally, and. I think you know as we talk about having, you know built-in, LTE. Connection, that, a sosnov, ago is the first two gigabit enabled, laptop right, and so these mobile operators are also really interested, in getting additional endpoints. Onto their network and consuming, their services, and. So really that's driven by the OEM, and the mobile operator connection, as they go to go to market in the retail channels but, you'll see us kind of lunching you know in different markets around the world over the upcoming yeah, you know here and, this is cool because there I mean, we all try to do work on our phones and then we get annoyed, a little bit can, I say annoyed it's like I feel, like if it was just a little bit bigger you know I can do this this feels like the perfect step, up to, where you want to be productive but you're not necessarily running.

A High-end graphics car first and then and then the other thing that's really interesting is that today, most of these devices and, most of the cellular experience is based on physical, sim right, and so you go in and you put a physical sim into your device but, these devices are also capable of running ECM right, and so you know as the ECM technology. Progresses and, carriers, get the infrastructure, around the world it's started today with some other devices right that are isom enabled then you can expect right the experience, to be that. I as I move geographically. Might be able to write. Reconfigure. In, order to be able to move between and purchase right they don't on the go or whatnot so it's the world we envision, seeing over time it's. Not there today right you. Can see directionally, where we're going this thing even in the enterprise thing about your employees being always connected. Again, you have a phone sometimes you have to tether to it you can't get access to all your applications here. You get kind of the benefits of both you're always connected you, can use that device in the field wherever you're going and you have access to all of the applications, and experiences that are already existing on Windows is the hair you want they they just run they, just run the end user the user using the device doesn't have to think these apps work these don't all the, apps that you know and love whatever you need in your enterprise they all work awesome, all right next question Windows, 10 on snap dragon can run non store non uwp non desktop, bridged arm 64. Binary desktop applications. That. Was a lot of qualifications. So it's, effectively, an arm 64, binary, desktop, application, can it sorry, I miss, you like I'll. Answer the question in general maybe the answers this question is we. Can run x86, applications. In. This Wow 64, layer we can run native you double ups that are written you know the compiled for x86 or preferably, for, arm 32, arm. 64. Support, we, have arm 64, compiled, binaries, we, have not yet released an SDK that does that that's something that we are going to do in a, future version of Visual Studio will be able to natively compile. Your. Code into, a arm, 64. Binary. We, do not currently support, if you did an X 64. Binary. That. Currently will not work so you need to use your x86, and most developers. Have x86, and x64, versions, of their application, so, the user just needed to have. A x86. Version of that so I'm sorry to hit. That point again so if you're submitting a centennial app to the store please make sure to, submit the x86 version, of a centennial app so that we can, absolutely. Good. Question, Jim, are you of there's another are you working on 64-bit, emulation. I think that's you just kind of answered that as well right we're. We're not really looking at 64-bit, emulation, today we want to go, and look just. Compile to an arm 64, we think most people we're going to want that 64, gonna want better, Pro more, optimized, performance for, x64 so, we're just gonna go and support that natively with the arm 64 compiler awesome, great question is that's, a bridge what, will desktop bridge be the only way for third-party devs. On OEM to deploy win32, apps to Windows 10 on an arm actually.

I Think we just I thought we were was we literally just show off the web run yes yeah, I think the answer is yes I. Can. Say with 100% confidence. Next, what a x86. Processor, is emulated, does it support AVX, that's. Kind of a deep down there yeah, that's the way I. Think. I, would, rather not know exactly what specs, we support buddy SME X will be is supported, we do emulate, window. Has a minimum requirement of water instruction set it supports and we support the minimum instruction, set for x86 apps for, emulation, that's. Cool I mean just. The fact that there's probably someone, you know she's sitting there like here's the list of all the instructions, we. Got the check check. You know it's pretty cool that we do that. Next. One from Michael what are the design considerations that we should take into account for our uwp apps for, always, connected. Pcs this. Is I mean because here's. And here's a dev question and let me see if I can straight translate this is something that I had as well it's like this. Is a new form factor and the, great thing about Windows is that for example we have Windows 10 IOT we, have Windows Windows, 10 on the desktop now we have Windows 10 always. Connected it feels like when there's a new form factor you need to make certain kinds, of design decisions, as a developer, can you help us out with those what those in, many ways we decided, when we designed you WP we made sure that it would span devices, that were always connected like. Phones it would also work for devices that were powered and even, things are always plugged in like your Xbox so, in many cases that, you WP platform, was designed we do things in asynchronous you. Don't want to go and just sit in your loop and it earned a bunch of battery you, need to be able to save state quick so, you always have a safe state model so there's several patterns they were built directly into Universal, Windows platform around. And, always connected application. And, mainly coming from our phone heritage and our you know basically on your go even our lens and very, battery sensitive, very smart about not, tying up the processor, so a lot of that technology is automatically built into you WP is part of our guidance for, building a modern application so. If you are if you are just to get please just to interject I think the other point to say is this is just a PC what, you're designing for is the form factor there. Could be don't. Don't think too hard about what processor, is running on is just the form factor you're designing for a device that looks like this you're designed for a device that has long battery life it has good connectivity.

That Is what you're designing for you're not designing for the arc like the processor yeah, I think that's the customer scenario right right. It, really is about thinking about what new, behaviors. Or patterns, we're, having a device like this unlock, from a customer, point of view that you from, an app occasional rapportive you could take advantage of in terms of delivering value, to that end customer, that's awesome, yeah I know like I said I I think this is a great idea Lance, asks with Windows 10 Pro are there any feature differences, between arm and x64, x86. Versions. So. You're, not installing, Windows, 10 Pro on an on these kinds there's a different flavor, of Windows. Same. Thing. That's. Awesome well Jim that was a easy, answer, so, next. When can I buy a device for development are they all shipping with Windows 10 s. So. From, the. You. Know each of the OEMs has the retail plan right you can expect to see I think actually the, Asus, Nova go if, you're in Taiwan, it's. Actually available as, of now but. You know over the upcoming months, you will see availability. Right you know here in the US as you think about retail, the. The. The, Asus, HP. And. Lenovo devices. Will start in an 10s mode and. The reason behind that is really, when you think about 10s, the the, the, benefit. To the customer of tennis is performance. Battery. Life and security, and, if, you take, that and align it with the value proposition. Of the always connected, PC right we don't want we want the experience you have on day one to be the same as day 1,000 and, so the performance aspect, that long battery life and, then, you know you're always connected the, security, and really being able to trust that that, is actually something that's really important, but that doesn't preclude me of selling different, flavor well you can so you they, were all at. Least those three devices will launch with 10s, and then they use it's a user choice if they want to switch to pro right, and that is as a free switch that. They could access through the store and. That really puts the the power. In the hands of the consumer as to, what, are the trade-offs that they want to make that's, awesome I mean I could see for example in, an educational. Environment where, there's be like just have 10s because, I don't want my kid breaking. Out of a certain sandbox, for example, I can, see certain examples of kiosk settings where it's, just perfect right I mean it's, just I guess it's up to you what you want to do yeah awesome, marry, UK I know her how are you how, about his selling apps that have an msi installers, are often x86. X64. Rather, than x86. We. Have full msi support I just showed you the GBM installer which was an MSI so I installed it so as Kevin. Already mentioned we don't have x64, emulation, we have x86. Emulation, in our elementary. In our experience, almost, all the developers have an x86 version, of their app because. That is the least, common denominator. If you can if. You use the Matt speaker I'd like everybody x86. Runs everywhere right. And so. We. Feel confident, that if you have exit examination, we have the. Widest breadth coverage and then, as. Kevin said and, we'll, have the SDK for arm 64 and so for people who really want the 64-bit, virtual address, the more memory the increased, performance then. We compile the arm 64 so you can essentially. Enough just kind of a people want to play with it the current, SDK that's out there in version Visual Studio if you go in and try to compile, for arm 64, you, can actually, compile for arm 64, so it is available, out there for people to try you, can't publish an app to the store yet it's not really ready for primetime but if you want to kick the tires while, compiling your application, arm 64, just, it's, not you know not making it they have private templates for it yet but you can play with it for a C++, code, so. If you have a C++ application, it's x64 go. Give it a try recompile, it and give us people tell us if it works I think I think the other thing I would kind of state here too is that as, a developer you really want to think about what your target, audience, is made it your customer, and so, you.

Know Like, I look, amigo back and think about and maybe a weave in some of the performance, things as well think about office, right, office. Was an interesting, conversation for, us to have internally, right, because well in some sense the, again, the geeks and us would want it to be you know the most performant, version of an application that we would ever release, there. Also is this other interesting, angle. With office in that it has a massive ecosystem. Of add-ins right and so if you were going to natively. Recompile. Office for, for arm 64, you, would break, with, that ecosystem, right well it turns out on the other hand that office is actually a prime candidate, for emulation, right because is back to what Hari said the nature of the type of work that it's doing it's actually you know not doing a lot of CPU intensive work and so we were able to with that in our chippie, work really get great performance out of the out of the office application, so as a developer I think you got to understand, ok the target. Um you. Know consumer, for this device or end-user for this dice whether a consumer and an enterprise is someone who's on the go it's, someone who is think about a a. Real. Estate agent, right who's their, office, is kind of their car, whatever, home they're selling etc, they want to have all access, to all their information they want to be able to be on the go and so, you know is the. Performance. If I put you know this device versus, the best device on the the market right and I launch, the app side by side is that the thing that's going to drive them or, is it really the fact that I don't have to think about you. Know security of public Wi-Fi or anything about hunting for Wi-Fi don't have to think about being plugged into my battery you, know I can just do my work whenever I want to wherever I want to and so, I like as we're making these decisions about do, you think about emulate, do you go kind, of you know arm you to BP you, take your x86, app and write you know like those are things to think about it's like who's getting use this device and, how, do you get the value, to, that end user in a way that is the right trade-off for you because as a developer it's, your cost as well as you think about that right I love the way it's you're literally saying it's, Windows yeah now. Think about your users and how would an on-the-go, person, use, your app but don't worry about the window stuff Windows is just windows is just windows right I love, it ok another one from Jim what frameworks are included in the Windows OS that, are x86. Versus native arm for example is done at framework included is it arm 64, x86. It's. Going more to like what's.

There It, well windows, right windows it's just PC you got the x86 dotnet, framework on it it's just a PC and, a, big part of that I think what Aaron touched. On is if we did some of those things native the connection, then to extensions, or plugins, or you know many people build like these extensions it would break and Pat there so, that's why we did it really low is. Even know works with office to make sure their ecosystem, of x86, compiled extensions. Work so, we didn't want to change too much so a lot of these things that live up in that layer are all, running x86. And really, talking that layer so and you know done that framework and everything are all running x86, that, gives us by far the highest compatibility. And that was a big goal yeah we just want the apps to run and the, end-user and the developer doesn't have to do work then, they can if they choose that, there's reasons, for them to do additional work then they can do that for benefit to them but, right out of the gate the device runs all the apps that's, nice another. One from Michael any special technical details about down at runtime for WPF WinForms is it somehow specially, optimized, should, we avoid using some, specific, API is in order to ensure smooth execution of WPF WinForms, regular. Non dotnet win32, applications, is there you, don't have to I feel like this is the same question but in a different flavor I, take. It as what. Are some patterns they probably, don't, emulate well yes so they can kind of learn like these things are probably slower and these paths are really optimized, yes I would, say the generic answer is try. To make your code as fast as possible, on an x86 machine don't. Worry about the emulation aspect, of it just make it fast use the best compiler optimization, options ult, CG use. Maximum. Optimization. Size per decide, what is right for your did for your for, your app and music and we, don't figure out how to make it run fast don't worry about trying to tailor your code, for the. Emulation aspect, of it so, no while true loops for me. None. Will pure any CPU dotnet framework apps JIT to arm 64, or x86. No. We, actually even if it's any CPU we will if. It's a desktop framework, we do run. It as x86, okay. And then then then it goes in the emulation layer then everything's hunky-dory, next then also Kevin's, point longer-term there will be the arm 64 SDK and at that point we can talk about, getting. To UM 64, at that time but right now even if you're any CPU you will go makes it easy yeah it's like really these applications. That compiled, X 64 bits they need more memory space icing right so we actually looked at the x86 versus x64, there's. A few reasons that people go and do it and those are probably where people want to natively, Pyle for, similar ones but other than that seeing with x86, is really perfectly. Fine for you, to VP we still recommend on 32, because it's easily supported, right now and every, time you submit the apps most people to submit of that and they'll run a little better but, for a desktop applications, the x86 ones really what you want to need unless you really have a memory. Space problem or something special that you needed 64-bit, and usually is because you went to x64. For that same reason Israel exactly, alright, next question is it realistic to expect running, Visual Studio eventually, on Windows 10 arm I don't, know why you would, though like like, because, just to get to your question about when I'm on the go yeah, if I'm opening on Visual Studio I'm literally committing myself to, a, couple, of hours but. If I'm opening something like Visual Studio code, I'm committing, myself to just a couple of minutes right. And so is how. Do you answer that question I, think Erin said that like. The, target audience for this is not if your, primary goal here is to sit by this device and do we we just to do development. It's. Probably the wrong device right like don't buy this go buy something, else like this, is not the device for you yeah, but so you're having a technical question where they don't run yes it will run but.

The Point is what seems, like but. Something is light as visuals to your code though yes. I mean, because it's all just, x86. Though yes thanks. Awesome will these be usable, with the windows insider, program, yes. These. Are good answers I'm, starting, to know them as well I might be able as, well. Eww PDFs be supported, yeah. They work now Yuri, I could have answered that one myself, I, should have I just showed you am of the uwp app yeah, so. If we got it right it's pretty much like how Itanium ia-64. Was, all about I don't know maybe they do you know what, these time they're, talking about I think he's saying Itanium was emulating. The. X86 instruction set and. Maybe. Conceptually. I guess it's right at least is good so. The other the other question I have is memory. Must, be different in the two different architectures. Or I mean I don't know I don't know enough about arm I know how, x86, I know how X before I know about risk, and sis, operation. Struction. Sets but I don't know enough about arm is memory, the same and if it isn't how do we know there's something called memory or during which processors. Have so, Intel has one way of memory ordering and arm as a more looser they use terms like consistencies. Arm as a looser consistency. Intel. Is more strongly ordered, and so what basically I'm going to hang wave and give a very high-level like. Answer so please don't send me flame, mail like. It but but, idea here is that if you have a multi-threaded, program and you're writing to a variable. You, need to make sure that the changes that you write make to the variable are visible to all the threads and so Intel has one way of ensuring this and arm as a different way of ensuring this and so when you have an x86 program, it's been compiled. Assuming. That it's running on x86 right, so that's the that's the natural assumption so, the code the compiler generates code with that with, that memory ordering for intel on arm with a loser memory ordering if we. Just let it run as is apps. Might crash because the, apps are right, for, your keys where I put my move my keys back, exactly you're looking for a change in a variable and the change was never reflected, back because it was running with a different assumption and so, when we emulate we have to generate something called barriers so, we need to ensure that when a variable. Is changed, red or it into we need to insert, barriers, so that all the threads in the app can actually see now if, you take an naive. Implementation of, this right like typically, we. Would just insert a barrier every time you load and store basically every time you read and write to a variable but, if you do that barriers, are fairly expensive it's, like monitors, yeah. Exactly. They're, super expensive if you do that your performance will just go to tank right like things will lag so. We have to be super smart we have to be very clever about how we insert, barriers, we have to be really. Really, judicious, we need to make sure we don't insert too many because otherwise is slow we need to make sure we don't insert too few otherwise it'll crash so, we have to be very smart so we invented some interesting algorithms, and how we do this and that's.

Sort Of so, our secret sauce here in the emulation and that that's why it's fast right. And so that's. That's. An that's an I don't know that answer yeah, I mean, the thing about it to me that's interesting is that like. As we're going along oh it's just windows and you're all just brushing, away a lot, of. Ingenuity. That's gone into it right to make it so that I don't have to think about it like you said I saw for example Intel. Like, x86, has one I saw arm as a as a risk, right, it's a Sisk x86, isn't. Like system it has a lot more introductions. Complex. Instructions, exactly exactly, and risk is reduced rate induction so like one. Instruction, on x86 could actually correspond to five instructions or not write harm, is a risk arms and risk even. Like the way you like if I remember risk they even the way like you move stuff around is different, all right like. It takes like more variables, for every instruction has more registers, exactly, so it's all. We've. Hang grave to all of this and J just works, but I but, there's, a lot of complex. Algorithmic. Coding in there that we that's. Cool yes all right so I'm gonna go back to the questions sorry I started hogging you guys simon. Says will there be new, do you WPI P is for always connected specific features for example when building background tasks that might need to use cellular, communications, so. A lot. Of the api's when we've built uwp were designed, to handle this again we've, built phones we've built cellular connected, systems. I am sure we will come up with new ones as we look at new scenarios, for this form factor in this device we will continue to add new api's, that, are obviously, that developers, come and ask us for saying, hey I want to go do this or is their way of optimizing it but a lot of this is just baked into the architecture, of UWP so a most, those ApS are already there and function because we've, supported them for four years like I might like on my desk like on my laptop that's, very beefy and powerful there's a phone mode or airplane, mode and I'm like what would i oh now.

I See, how. The thinking, is gone that these devices are all kind, of ubiquitous and also different in their own way that can use them and, I think you know as a developer I think again I would go back and say you want to think about the customer, scenario, that you're looking at and you want to build your application, in a consistent, way and then, have the application, be aware and smart enough that if it's running on different devices right, it's gonna light up different, aspects, of the functionality. That tailor it to the experience, that is on that device. One. Thing I will point out there is just that at this point time we, are using the. The, built-in LTE. Connection, for, data right. These devices, at this point in time are not using the telephony stack on that on, that seller connection, and, so I just, so there are no there's, no ambiguity right that's cool all, right we're. Gonna just burn through these questions because according, my clock we have about fourteen minutes are, there going to be apps that work only on these devices. We're. Not designing so there are only api's, if developers. Choose to build apps for that they can okay so, there. Will be because, someone chose to make them only for that kind of device to me okay if. I'm a C++, developer is there any optimizations. I need or can do for an x86 or uwp application, feel, like we answered this question a little bit yeah, yeah. Just make, sure that it runs fast, on an x86 and. He's. Gonna take care of the rest that's what he said, so. Jim. Our edge and I ain't running as 64-bit, ARM binaries, are there also x86. Versions in the OS which version, does it run. So, in. The current version edge is on 32, it's not on 64, in the future we will consider moving our edge to I'm 64, ie. That. Is in inbox is an x86 version, of Internet Explorer. So. There. You go alright next one Kevin the thing that is most interesting to me is instant, capability, how fast can we expect the system to turn back on after pressing. On the power slash asleep button so the interesting thing is these devices, at least on the. Qualcomm, chipset, don't go to hibernate right. They're in connected, standby and so my joke is I actually open, up and it's it is instantly, on as soon as I open the device cover I almost wish we could do a demo of it it's, funny because the the hello icon, actually. Shows up, faster. Than like the Windows whole screen things and I'm at the desktop and so, it. Was it was funny when I was at CES last week I actually lost I lost the ability to sync my phone with email and so, if you were at the show you would have seen me walking around and going down the escalator and using, my always connected PC as more, of my mobile device I'd open it up I've sit there hands-free, my calendar was there I close back and be my bag by the time I got to the end at bottom the escalator, these, things are fast I don't know if you can do, do you want demo we can demo it if you just want to sequence yeah I'm sure I mean I don't know how we get a camera in here well you can see the top screen uh-huh I guess and then okay so I'm going to turn off the power. Button so that's off oh it. Might not connect back on yes I took it's right let's try it it's right. So. I will tell you how soon is coming up so pushing, the power button there, it is that's. Time yeah it's trying to find you forcefully not centered there you go and, so I mean it it was on super fast like I'm. Not crossing my fingers it's, just a connection to our TV yeah at, ease about you know you know one of our ability, to kind of leverage the underlying you know arm architecture, and and, partnership. There to, take the experience you you.

Know I'm pointing to your mobile phone but that experience you have on your mobile phone the customer is ready expect, and now, bring it right to that PC, in that scenario yeah all right Jim how do we debug a nap under emulation, what we see x86, or arm instructions. It. Depends, on what. Kind of debugger, you would use so the, typical, way I would, try to debug an x86 app is using an x86 debugger, so you can install x86. Windbg or, do an x86 remote, debugging and, you. Will see x86, instructions, if you use an arm 64, debugger and then, connect to the x86 process, then you will see the unsearchable instructions, you have to change you, have to do you. Have to do fancy debugger come have to change tags and all that to change context so that you can get everything but, that it, depends on what debugger used typically, if your standard, developer please use x86, debugging, so, that it just looks like x86, to you you don't have to worry about emulation, like I said, design. For x86 don't worry about the emulation expect, the emulation to just work so just debug. As an x86 app I'm pretty, sure I'm not gonna like go, into like is this using the right move yeah yeah exact. I don't know I think, you like it shouldn't be a tracking, I don't know if I'll ever do that but if someone wants to they, can okay, all, right we got a hurry up they're telling me to hurry up what is the binary footprint on a device compared, to x64, Windows since you need to have additional binaries, there. Yeah. I mean, is this as a neck 64x64, you have x86. This while 64, year program files x86 the. Same directories, around this so. It's just the same it's, the same at the next 64 all right from Land's so I can see people ignoring this for multi-threaded, x86, compiling for arm and shipping results. Would be lots of crashes I think Microsoft need to talk more about this as developers, advice for. Multi-threaded. Apps and I think we got into this and when we talked about memory, for multi-threaded, it's not a problem because of the way that you've done the memory is barriers. That's right exactly we handled multi-threaded, apps we we, understand, how the, architectures, map we understand, how the memory model is like. I said don't worry right like an x86 app you would normally, and we will handle it yeah, and I said for any computer science problem, you know once you introduce threads, now you have two problems right I think that's what how it goes anything, I need to look out for if I create coach it on the fly in these environments will there be additional overhead. Yes. That's. Good. Observation, yes so if you do generate. Code on the fly then. It's a little bit it takes a little bit more header because typically, what happens is we execute, the x86 instruction and we generate arm but if you are running x86, instructions, and you're, generating, a JIT. Like you're generating code on just-in-time, then, we'll have to do a double hop right because you first run x86 code we. Run that to arm that, arm code now generates, your code which is as x86. Then we take that x86. Code and run and again generate an arm so you have a double. Check. I don't know if I'm making that make sense because, when you're when, you're jetting you're not jetting in x86 a, good tuning in arm to generate, x86. Code which that needs to be put, into the arm again exactly, so you have a double hob there so he's, right that you noticed that that would be slow and that, is just physics I mean there's nothing we can do last question how do I test debug on a winter night device I think you showed us, yeah. You're. Just literally, from the machine you, go in there ahead yeah I'll, take the pro enable. Developer mode and that's, it so, you're really doing a remote debug yeah that's really the answer is you remote the bug to the win tennis device you would not be natively running on top of that that's true for arm, and x86 is, you, know the wind tennis device is not, the device you debug on is to my new device to in. Essence you might be s on your your pro and, you debug it to the 10s awesome, so to wrap up just a couple of last parting, words any advice you have for people that are moving forward on why.

This Is kind of cool for devs. Umm. I think every said it pretty well it's cool for DES because on day zero all your apps just work if. You have written in the next 36 app and you've, never seen arm in your life don't worry about it it will just work on this that's. A that's a pretty good pitch I mean I am, Erin yeah I think for me it really is challenging. People to think about the the scenarios, that this unlocks right and and what, is the user of mindset, gonna be like thinking about taking the expectations. They have of their mobile device bringing, in this type of device and what applications, and scenarios, can you really you, know empower your users to be able to perform by thinking about this new category of always connected, PCs well I'm excited. About them Kevin last, words for this edition, of community stand up so I think you know you'll see as we create these new categories, our goals are, to give developers and, our customers, more places, and more ways and more opportunities. To sell, make money partner. Whatever, they wanna do with their products there's just more opportunities, new categories, every store two and ones it really does inspire people, to do things differently or even surface to do are these incredible. Devices I think this is gonna have the same impact its, developers, yes today, what you've got works so, you can trust us though all those things will value now what can you do different how can you change things how can you change the game and reinvent your business with, these new categories, and. In essence engage of customers and new creative ways awesome. All that you have the final word there thanks so much for spending some time with us with the Windows community stand up with Kevin gallo as always, your questions are always welcome, they always, want to hear your feedback thanks, so much for being with us thanks, so much for watching and we'll see you next time take care thank you.

2018-01-25

Show video