 All right, yeah. Hello, everyone. So thanks for, you know, I know it's an early start on a Saturday, right? So thanks for coming in. Welcome to day two of J's foo. So my name is Raj. I work as a technically evangelist for Microsoft. So over the probably 40, 45 minutes, we'll probably just want to kind of present a picture of how far we can go as an industry really, right? So has pushed JavaScript forward, right? The boundary of what is possible today with JavaScript is pretty mind-boggling, right? In fact, that's the theme of this conference, right? So JavaScript is everywhere, right? You can build certainly web applications. That kind of is the birthplace for JavaScript, right? And it has kind of moved on to pretty much everywhere else. You can write on the server. You can write apps on the desktop. You can write JavaScript applications on the phone. You can write JavaScript applications on the cloud. And if you folks were here yesterday, even here, you can write JavaScript on car robots, right? How many of you were here for the Rackage 5 session? It's pretty cool, right? I mean, it was not just a robot that was driven by JavaScript that was running on a machine. It was running JavaScript on the car, right? It was running Node on the machine. So that was pretty, pretty incredible. So in this session, I wanted to show from what has Microsoft been doing with JavaScript for our platforms, right? So how does JavaScript fit in on IE 10, on Windows 8, on Windows Azure, on Windows phones? So I wanted to give you a taste of what is possible with JavaScript today, right? So I don't have too many slides. Just wanted to kind of show you a bunch of just kind of a set of samples of things that have been built with JavaScript. Hopefully connectivity works here. I think we are connected. The first thing I kind of wanted to show you was contrary to your too many things. So obviously, I was experimenting with all these demos yesterday, so too many windows open. So this is, I don't know, folks who have come to the booth that we have set up here, you probably have seen this. So this is a game that has been built for the web, right? So this is, I don't know how many, this is a pretty popular game on iOS devices, on iPads, and over the phone. So basically, this is a game that allows you to do some fun stuff. So you can go ahead and click play, and you have this cute eye thing here. And do you think we could turn the light shining right at the screen off? Maybe? So when I saw this game, I was like, mind blown. Because the quality of the graphics is pretty incredible here. So basically, this little eye thing here is what it's supposed to play with. The idea is the ground that you see here, you can mutate it. So you can just do that. And then the idea is to get it towards that blue light there. So that's obviously level one. And as you progress, things get progressively harder. So you can see basically this little rope, I can connect to that big eye. Then I click on the eye. Then I can do that. And push it down there. It's supposed to be a very soothing music here as well. Then move it back there, and so on and so forth. So if you think about it, a lot of stuff is happening here. So for example, this is rope physics here. So you can take that. And you can see that it's actually behaving like a rope. And there is gravity involved here. So if I do that, it rolls down. So there's gravity that's affecting the movement of that. And you have pretty sophisticated graphics being rendered there. The amazing thing here is all of this is just JavaScript, HTML, and CSS. So this is probably just rendered on a canvas. But this kind of shows you what is possible. Another thing I wanted to show you was, so this is another demo here put together by Atari folks. So by the way, we have a Windows 8 workshop here. Folks who come for the workshop, you get a T-shirt that looks like this. So basically, there are a bunch of, Atari is a very popular arcade console kind of game. Basically, you have a bunch of games like Ping Pong and things like that. So basically, what they've done is they've built this whole thing on IE, right? I mean, this is not built on IE. It's built for pretty much any browser. It works across all modern browsers that have support for canvas, in this case, canvas and probably audio element. So we have a connectivity issue here. Give it a second to load. Get off the tor in this people. So there are a whole bunch of games here. So if you're old enough, you probably remember some of these. So for example, that's Ping Pong. There are even multiplayer versions of all of these games. You can waste a lot of time here. It's loading up from the internet. And the nice thing is all of these have been built for touch as well. So IE10 has support for multi-touch input now. So there is an API called as a pointer specification, which has been put together by Microsoft and has been submitted to W3C as well as a fast analyzer. So there are a whole bunch of stuff there that you can experiment with, play with. Again, the point there was to show you the kind of experiences that are possible today. Another thing that I totally, this is pretty incredible that I thought was, so this is an app called Pulse.me. So again, you can just go to Pulse.me. So this is basically a take on what a news app. So if you're building a web application where you want to read news, what would that look like? So here you basically have all the news items. You can tap on one. You can obviously read it. In fact, what I'll do is I'll open it up on the desktop IE. So you can see that there's a default rendering that's happening here for listing out all the news items. Obviously, you can tap on some other category here and you can look at that. Now the interesting thing is you can kind of change the layout there. So if you want to fit more items onto the screen, then you can do that. So it's kind of like you can zoom in, zoom out kind of thing. And this is a responsive side. So depending on how much screen space you have, it kind of automatically relays out the screen. And you can see that it's a very fluid experience. So the transitions happen. They don't just abruptly change the layout. So it kind of smoothly transitions to a new layout. So this is kind of a take on how you might re-imagine building a news web application. Again, this is completely standards, compliant, markup, and JavaScript and CSS. So this works on IE, it works on Chrome, it works on Safari, it works on Firefox, and so forth. Another thing I probably wanted to kind of show you guys was this is kind of cool, if I can remember the URL. So there was this really, really slick movie that came out from Disney called The Stron. I don't know how many of you have seen it. Sometime today, before dinner, while that's loading, probably you can take a look at this. This is beautyoftheweb.com, where it kind of shows you. Again, it's just a demonstration of what kind of user experiences you can build on the web today. And on IE10, on the modern desktop, it's a full screen experience. Edge to edge, every single pixel on the screen is, I mean, your application can use that. So it's a showcase, basically. Let's see if Tron got loaded. Did not get loaded. Connectivity problem. Let's see if that works now. This is basically a comic. This was launched along with the movie as a promotional activity. So the idea is you can just click and drag, and you can kind of read the whole comic with a very cool parallax effect and everything. So you can just keep a very compelling experience. So I don't know how many of you are comic buffs here. I don't know how many of you are comic buffs here, but this was pretty awesome when I was trying to see probably the richest comic reading experience that you can ever have. And then you can keep reading the comic and keep going like that. So pretty cool app to build. So those were just a, and if you want to see more samples like that, you can go to ietestdrive.com. You can go to ietestdrive.com. There are a bunch of demos here that have been put together that you can kind of explore. And it kind of showcases the power of the web. So again, all of these are completely stung compliant. It's not that it just works in ietestdrive. It works everywhere. So in fact, I would encourage you to go take a look at this particular one in the booth here. I don't have a touch screen right now, but this is a demo of touch screen, of multiple touches. So basically, the idea is when you go and touch, for example, you can keep your finger there. This is a magnetic repulsion effect. So basically, wherever you touch, the points kind of get repelled. And then in a multi-touch scenario, it's kind of fun to play with. So again, this uses the pointer specification, the pointer API. So this was recently submitted to W3C as a spec. So Safari kind of brought in the touch events. And that has seen wide adoption. But touch events has its own set of limitations. So the pointer API spec that has been submitted is kind of at a higher level of abstraction, the sense that you have different kinds of inputs today. You have mouse, you have touch, you have stylus input. And how do you create an event model that kind of abstracts all of that, so that you can program to that? So that's what pointer API does. And this showcases that. So that was very briefly the kind of things that you can do on the web today. I mean, most of them were graphically rich applications. But if you look at a set of HTML5 specification that I've come out for geolocation, for media capture, for file handling, for web sockets, and for index DB, and so on and so forth, there's a tremendous possibility that has been opened up. So there's one thing that I wanted to kind of appeal to the community, so folks who are here. One thing that I've, you know, this has become a bit of a problem in the web development community. How many of you, I mean, I'm pretty sure everybody who's been in this industry for a while remembers IE6. And everybody knows how difficult it is to kind of support IE6, customers continue to want to have the support for IE6, it just doesn't go away. And we're still paying for that. And what is the thing that we're paying for? What happened was, at a point in time, IE had a ridiculous amount of market share. And W3C was still there at the time that IE was there. But what really happened was, since IE pretty much became like a de facto standard in the industry, and folks who are building web applications would build applications that were optimized for IE6, because that's what customers were using. And the other browser's share was negligible. I mean, there's no point in even supporting other browsers. So at this point in time, IE became kind of a de facto standard in the industry. So whatever Microsoft said is how the web should be, that's how the web was. And that's not a good place to be in. We don't want one company driving or mandating what the web should be like. We don't want that. So things are better today. W3C is the organization that is an industry. Basically, there are all the big players in the industry, people from the community, all of them are part of W3C, and it's a social effort. So how do we want to move the web forward? It's a community. And that's how it should be. So what I find today is that a kind of a resurgence of the kind of thing that happened with IE. Today, one of the problems that we are facing is that people are optimizing web applications for WebKit-based browsers. In fact, recently, probably a few months back, Firefox announced. So how many of you know about CSS3 vendor prefixes? So most of you are familiar. So basically, browser vendors choose to implement experimental in-draft versions of CSS3 specifications so that they can get experimental feedback from implementation feedback from browser vendors. So how do browser vendors choose to implement specs which are not yet a spec, as in they're not become a recommendation yet? They basically implement it with vendor prefixes. So for example, Safari browsers use the prefix dash WebKit dash, Firefox uses dash MOS dash, Microsoft uses dash MS dash, Opera uses dash O dash, and so on and so forth. Now that's a good thing. So you get to play with experiment with new specifications, and then W3C gets feedback from. And probably you say, no, wait, this is not how it should work, and you provide feedback, and then the spec gets better. Now that's good. But what happens if the web development community chooses to support only one particular vendor prefix? And that's what we're finding today. We're finding that folks choose to support WebKit prefixes and ignore the other guys. And in fact, a few months back, Firefox announced that they are going to support WebKit vendor prefixes in Firefox. And this is IE6 happening all over again. Because now it's not IE6 that becomes the de facto standard of the web. It's going to be Chrome and Safari. And again, we don't want that. So we don't want this becoming a de facto standard. We want W3C to be the organization that says what is the spec. So this is the appeal. So folks who are building web applications today, please choose to support all browser vendors. And what is even worse is if we find a lot of web applications where they don't even put the W3C version of the rule. So for example, let's say you have CSS3 transitions. And you put your transition rule. You would say dash WebKit dash blah, and that's it. You don't even put the W3C name of that particular rule, which is really bad. Because once the browser, even Chrome or Safari, once they start supporting the W3C version of it, you still will not get the standard behavior. You will still get the vendor prefix behavior. So that's kind of the appeal. Please support all vendor prefixes. Support the W3C spec. So use the W3C rule as well. So when the particular spec becomes a standard, you automatically benefit from it. So that was a little appeal that I had to plug in there. So to continue with the theme, so JavaScript we saw what is kind of possible on the web. I want to take a moment to show you the kind of things that is possible on the desktop. So Windows 8 is Microsoft's next release of the Windows operating system. So it's going to be generally available on October 26, which is next Friday. So it should be very interesting. There's a lot of interesting form factors that are kind of coming out for Windows 8. So Windows 8 is kind of an operating system that's been designed for tablets as well as for the desktop, for regular laptops and existing hardware as well. So I've been using Windows 8 for the last six, seven months. And I don't have a touch screen. And it's been perfectly fine for me. I find that I kind of tend to be on the regular desktop most of the time. I don't tend to come here much. But then I have a tablet as well. When I use the tablet, I find that I live here most of the time. But that aside, from an application development point of view, HTML, JavaScript, and CSS are a first class supported technology stack for building Windows 8 applications, Windows 8 desktop applications. We're not talking about the web. So which means that you can build, keep seeing to have connectivity problems. So there are a bunch of applications that I've installed here. So for example, let's take a look at Cut The Rope. So this is kind of a traditional kind of an example here. So this is a very popular game on other platforms, right? So on iOS and on Android. Do we have Cut The Rope on Android? So this is basically a Windows 8 app, which is exactly the same thing. So if you've played this before, this should look very familiar. So you have a rope, and you have this. I think it's called Omnom, and the idea is to make the can be available to Omnom. Mute the sound a bit. So again, this is very kind of like Contresure. There's a lot of stuff happening here, right? So there is rope physics, there is gravity, there's animation, and all kinds of fancy stuff happening. And this is a desktop application. This is not a web application. This particular application happens to be on the web, too. So you can go to CutTheRope.ie in your browser, and you can play the same thing there. But this particular thing that I'm running right now is a desktop app. I launched it from the desktop. So once you install the app, it shows up as a tile here, and then you can launch it. So this has been completely written in JavaScript. So JavaScript, Canvas, it has a physics engine, and pretty much everything that you see happening on screen is happening from the web platform, running as a desktop app. So that is an example of a game that has been written with JavaScript. So this is a Windows mail app that you get when you install Windows. And here, this is an example of a non, I mean, it's not a game, right? It's a regular app. And this has been completely built with JavaScript, HTML, and so forth. So that was the case of that. So for all intents and purposes, all those demos that we saw on IE, it's the exact same platform. So when you're building Windows 8 desktop applications, you are using the web platform. All the capabilities that IE10 has, you have when you build a desktop application on Windows 8. So in fact, it turns out that it can pretty much take a, depending on how your application is written, you can pretty much take your exact web application, build it as a Windows 8 app, and then you can deploy it as a Windows 8 app. I wanted to show a demo of that, but I couldn't put it together in time. But that's exactly the goal here. So it's the platform that you know. It's HTML, it's CSS JavaScript. Those exact same technologies now you're able to build desktop apps. You have the Windows runtime access, completely accessible for your app. So when we say Windows runtime, it's basically the system interface for the operating system, for Windows 8. So you have complete access to the Windows runtime, and you can build. I mean, it's not that one of the things that customers ask us when we are working with them, and tell them that you can build applications with HTML. They have this background of having worked with HTML based applications on other platforms, on Android and iOS. And we will tell them, it's fine. I mean, we can build applications, we can use cross-platform frameworks like PhoneGap. But we don't find the same level of performance, same level of responsiveness in the application for apps that run on the device using a cross-platform framework vis-a-vis a native app. So that's something that I find pretty incredible on Windows 8, is that it's really a no-compromise approach. So people can build applications with .NET. People can build applications with C++ on Windows 8. And you can build with HTML. Turns out that for a vast majority of the applications, for a vast class of applications, it really doesn't make a difference what technology you choose. As in, you do not make a compromise. It's not like you're a lesser citizen in the system because you chose to build your app with HTML. It's completely high-fidelity. You don't lose functionality. You don't lose any capability. So that was a quick look at what JavaScript can do on the desktop. I want to take a few minutes to kind of talk about the Windows 8 opportunity for why would you want to build applications for Windows 8? It's a brand new operating system. It's getting launched next week. Why is it a good idea to build for Windows 8? Certainly, what Windows brings to the table is definitely reach. So there is a Windows 8 store. If we are connected, probably this will work. So this is the store application. It's very similar to how you find stores working on other platforms. So basically, you can discover applications. So you can go and find out what applications are there. They get listed here. They get highlighted. So once you find an application that you like, then there's a listing page where you can look at screenshots and blah, blah, blah. You can look at the reviews and all that. So it's a regular store. And you can have free applications, paid applications. There are many different monetization models. It can be free or paid. You could have in-app purchases. You could have ad supported applications or any permutation and combination of all these. So reach is something that you get out of the box with Windows. So the store is going to be available in 100 plus languages. Folks are going to be able to buy applications from 200 plus markets. And local pricing is available in 70 plus markets, including the top 40 by GDP of those respective countries. So reach is something that you get. Another thing that's different for the Windows 8 platform, from a monetization perspective, from a store economics point of view, is the revenue model. So when you build an application, whether it is paid or whether it supports in-app purchases, it starts at a 70-30 split. So 70% for the app developer, 30% for Microsoft. And then what happens is once your app revenue reaches a total of 25,000, that split changes to an 80-20 split. So the more successful your app is, the more successful you are. So that kind of is the goal there with the revenue sharing. Just to give you a sense of the opportunity that we're talking about here. So at this, as of March 2012, there were 690 million licensed installations of Windows 7, of Windows 7, which is the previous edition of Windows. So we are not counting Windows XP, which continues to be very popular, much to our chattering. We did not count Windows Vista, which probably was not very popular. And then we are just counting Windows 7. And we are counting only licensed Windows 7. We know that there's probably more than that, which are not quite licensed. So this is just licensed, paid for copies of Windows 7, which have been shipped as of March 2012. And that's 690 million. So one of the promises that Microsoft makes with Windows 8 is any device which can run Windows 7 today will be capable of running Windows 8. If anything, the hardware requirements have kind of gone down a little bit from Windows 7. So that's the potential market we're looking at. Now let's compare that with other platforms. So from the beginning of Android, of Android devices having shipped from version one onwards, as of March 2012, that's the number of Android devices that are out there in the market. That's the number of iOS devices that are out there in the market from iOS 1. And now right now we are on iOS 6. So this doesn't probably include iOS 6, this is as of March. Is it iOS 6 or iOS 5? iOS 6, right? iPhone 5, iOS 6. And that's the number of shipped Mac machines. Now take all of these together. From the beginning of Android, from the beginning of iOS, from the beginning of Macs, sum all them up together. That's still less than the number of licensed Windows 7 devices that have been shipped, licensed copies of Windows 7. So I guess the next slide kind of summarizes that. This is the single most significant developer opportunity ever. So I guess to put it crudely, here's a chance to make a ton of money. So we're really looking at a worldwide marketplace. And depending on how well you build your applications, so the quality bar for applications which get listed in the store is also slightly higher. In the sense that if you want your application to get highlighted, so for example, when the user opens the store, you get a set of applications that are there in the spotlight. So what makes your app come there? So in general, like typically high quality apps, if you go to dev.windows.com, dev.windows.com, you'll share more information about this during the workshop through the day today. So there are a bunch of guidelines and information that you can look at to see what constitutes a high quality app. For example, I don't know if this is a HTML app, but this is a pretty nice app. So this basically is called Cocktail Flow and kind of tells you how you can build various kinds of liquor. So basically, it's all about user experience here. So how do you transition? When you move from page to page, it's just a good experience. So in Windows 8, you'll find that there is a lot of focus on user experience, how users interact with the application. And there are a few scenarios, like obviously, Windows applications tend to run on a wide variety of form factors. They run on tablets. They run on laptops. They run on desktops. They run on gigantic screens, 80-inch screens. You can see a 27-inch screen in the booth there. So there are some things that you can do to build your application, so that it scales very well across different resolutions. And then you can run your applications in landscape mode, in portrait mode. This resolution is probably too small, but you can take applications and you can snap them to the left or to the right. That doesn't happen here, because there's a minimum resolution you need in order to be able to snap. This is the thing running on 1024 sans 68. The minimum is 1033 by sans 66, 10133 by sans 68, I think. Yeah. So that's the minimum resolution you need. So there are a bunch of things that you need to consider when you're building a Windows 8 app. So again, during the workshop, we'll try to see what you can do from an HTML javascript point of view to kind of support all these different resolutions and how you can build your application so that they scale well. So that was about the Windows 8 developer opportunity, and I'm pretty much kind of done. So I guess I want to close with the message that build great applications. So one of the things that I kind of talk, and my manager also talks to me about this, is that we have probably the greatest gathering of developers in the world in India. So if you look at anywhere else, just in an absolute count point of view, we probably have the greatest number of developers in this country. But look at it from an output point of view. How many world-class applications? How many applications that people sit up and take notice on any platform, on iOS, on Android, on Windows, anywhere at all, can we say that, hey, look, this app came from India, and that's world-class, and that's world-famous, like an angry birds from India. How many years there? Can anybody point out to any application like that? And that's kind of a weird situation. We have so much talent, probably half the software that gets written, the world gets written from this country, but we don't have a single application that we can point to and say that that's from India, which is kind of disappointing. I mean, the talent is here, the skill is here, the creativity is here. So what do we not have? So I think you can probably discuss that at length, what is wrong, what can be fixed, and so forth. But I think there is an opportunity here. There's a tremendous opportunity here to use what we know to build compelling applications, to build apps that are world-class, that are at the top, and they are from India. I think there is a great opportunity to do that on Windows, on pretty much any platform. So I kind of want to send out the message that please go ahead and do something significant, and don't be afraid to think big, to build something that really makes a difference. I mean, that's probably the tricky part. So how many of you have come and told you, let's go build an app where a bunch of birds will fly through the air and hit some pigs? Right, what? No, let's not do that. But that's what Angry Birds is, and that's hugely popular. So you never know what's going to become big, but then we've got to keep trying. So Roview, I don't know how many, probably 40, 50 apps, I don't know how many they did before Angry Birds worked, and they still, I'm not sure they know why it worked. As in they've been trying more things after that, and none of that has matched the success that they've had with Angry Birds. So it's a secret sauce that probably nobody has really figured out, but we should certainly try. So that's pretty much it. That's what I want to talk about today. So I wanted to let you know that we are doing a workshop on Windows 8 app development. So I think it happens in auditorium three. So you can learn how to build Windows 8 apps using the HTML JavaScript stack. So you can make a pile of money, or at least you can take a t-shirt home. So that's pretty much it, and if you want to get in touch with me, I'll be hanging around here all day. So if you have questions, we can take questions. We have plenty of time for questions. Who wants to go first? Okay. It was a great talk, Saranaraj. That was good. I wanted to ask you if you could just elaborate about the packaging and deployment of Windows 8 apps, and whether they are sandboxed or not, and how they will run within an environment. Right, so great question. So for HTML-based applications, so you can build applications C++ and .NET. So if you're talking about HTML-based applications, they get packaged and deployed as HTML JavaScript CSS, and they run inside. So when you saw those applications there, right, so for example, cut the rope. So this is running inside the web platform, right? What I mean by that is there is an IE instance running there. The application itself is hosted inside an IE instance, and then it basically takes and renders your application, your HTML, your JavaScript, and everything. So there's no difference from that point of view. The sandbox, as far as security point of view, we talk about these applications. This is a more permissive environment than the web. So for example, right, you have access to the file system. You have access to the devices on the machine, right? The entire Windows runtime, the Windows system API is available to you from your desktop applications, and there are some implications to that as well. So many of the things that people ask is, okay, great, so we can build desktop applications. Can I use my libraries, right? Can I use jQuery for a desktop Windows 8 application? Can I use a prototype, knockout.js? So yes, you can, right? So the answer to that is probably yes and no. To a large extent, most of these libraries just work because it's just the web platform, but there are some differences that you will run into because of the fact that it's running in a more permissive environment. For example, one of the things that you can, you know, you do is, for example, you might say, dollar of something, select something, and then you say dot append, and you give a bunch of HTML, right? Now this might not work, right? Now why would it not work? Because imagine that, you know, you've got that piece of string that you're appending to a DOM element from some web API call, right? Now there is a security implication here. What if that markup that you're appending has some malicious script inside it, right? Then what that's going to mean is essentially that script is going to run with full user permissions on that machine, right? That script is going to be able to access your file system and do whatever the script wants to do. So there are some additional checks that happen. So that's typically something that you would run into when you're using third-party libraries, but you can use them. So there is a way, if you know what you're doing, there is a way to dynamically append HTML to a DOM element. It's a very, not very subtly named method called winjs.utilities.set HTML, inner HTML unsafe, right? So you can call that API and pass a DOM and pass a mark piece of markup and it'll work. Now, obviously there you are explicitly telling or expressing the intent that you know what you're doing, right? So obviously you have to be very careful about that. But those are some of the implications of running a desktop application with web technologies. Yeah. So this is regarding the performance of the new breed of applications like web applications specifically. I have seen, not just for this demo, but I have seen even on other modern browsers, things don't work, we have to wait for the complete rendering to happen. So are we driving for the sake of this visual ability? Are we driving things to the level that we are not there yet? In a 5.0 Kbps connection, most of the demos doesn't work properly. And then it's a good visual experience after you get loaded, but do we have enough bandwidth or the processing capability on our mobile devices as well as our connection that we currently have? So is there a parity in what we are trying to drive and what we currently have in terms of infrastructure? Right. So, see, I think what typically happens is, so most of these technology choices that get made typically get made in the West, right? Where you have fantastic infrastructure, right? And I totally agree with you, right? So when you're building compelling user experiences, that's something that we should definitely take into account. As far as differences between performance characteristics among browsers is concerned, I guess, you know, we as web developers can build to the standards, right? Now, does that mean that you will still get full fidelity, exact same user experience across different browsers? Unfortunately, the answer today is no, right? So it's getting better though, right? So if you look at the previous iterations of W3C specifications, they kind of tended to be a little bit vague, right? And vague in the sense, there were many aspects of the spec which were left to the interpretation of the browser vendor, right? So each implementer would interpret a certain, a certain, you know, thing in the specification that they thought was the way it supposed to implement and they would do it. And the problem really there is that the spec is not precise enough. Now, with HTML5, they're kind of trying to address that. If you look at the HTML5 specification, it's a humongous specification, right? I think it's over 1,000 pages. And the reason for that is, you know, they wanted to be as precise as possible, leave as little to the browser vendor's interpretation as possible. So you would see, you know, you would see things getting better as we progress. But I guess, you know, one of the things that we'll probably find is, this is browser performance is gonna be something that browser vendors are gonna use to compete with each other, right? So on IE, for example, every single pixel that gets entered on the screen gets hardware accelerated, right? So it's completely hardware accelerated, like your HTML elements, your SVG, Canvas, video, everything, right? Any pixel that you see on the screen is going through the GPU. So that's part of the reason why you get that fantastic performance, right? In fact, if you run off some of these same games in some of the competing browsers, you kind of don't see the same. So as web developers, that kind of sucks for us, right? So we want to address pretty much everyone. But I imagine that that's one of the things that you will find browser vendors, you know, competing with each other on, right? But yeah, the point on connectivity on server infrastructure, that's certainly valid, right? And we as web developers should certainly take that into account, and there are industry-based practices that you can kind of follow to address that. Is there other folks who want to add to that, feel free to, yeah, correct? Yes, yes, everything. Which is not quite the case yet on other, yeah. Yes, my question is on I, basically. I saw this window 8 demo outside also. It looks awesome kind of. But when I open the I on that, it has the same look and feel. It hasn't changed at all. If you compare with the Chrome or Mozilla, and Mozilla has developed, though Firebug is there, Mozilla has developed the kind of base, you know, the Inspire element and the developer toolbar. But I is following the same developer toolbar like the previous one. So why the look and feel of the I or look and feel of the developer toolbar, the more accessible, more user-friendly? It has to be right, means window 8 is great. We haven't used though, but I believe it's great. But if I talk about the I specific, it still looks like it has to improve, it has to look and feel or say the accessibility with respect to the inner content. What are all these steps or measurements you are taking towards to that? I understand that you have changed the search engines and all, but moreover, after that, the user-friendlyness, that also does matter, right? Right, so if I understand a question right, it's more around the UI and the user experience of the browser itself, right? I mean, and I probably really couldn't comment on why the choices were made that were made. There are probably a lot of considerations, you know, so I tends to be a popular browser for whatever reasons, right? So there are certain expectations from a user point of view as well, right? We can make a cool slick interface, but then, you know, there are some things that people expect for the browser to behave. So that's probably one of the reasons that I think and I'm not sure either. But there have been minor changes that have been happening, right? So for example, if you look at the difference between I8 and I9 and I10, there are UI differences. For example, there is a greater focus on content rather than Chrome, right? No pun intended. So for example, on the desktop IE, right? The, this IE, you'll find that there's absolutely no Chrome whatsoever, right? So the entire screen space that's there is fully for the app, right? So there's no address bar, everything just gets out of the way, right? And you can just focus on the content. So there are some, so on the modern IE, they have kind of completely taken a fresh approach. On the desktop IE, probably there are various compulsions which kind of prevents them from doing something completely drastic, right? As far as DevTools is concerned, again, on IE10, it is vastly better than what it used to be. Do I have anything here? Yeah. So you can hit F2L and, you know, it kind of, you know, I would say it's pretty close to, pretty close to what are the capabilities that are offered elsewhere. So you can debug your script, you can play around with your styling and all of that, so all of the capabilities are there. Yeah, so I guess, you know, again, those are things that people compete on. But this is probably something, it's not a consumer feature really, is it? So Debugger is something that appeals to us, as web developers, right? So probably, you know, there's a lesser focus here. But I find this whole thing mind-boggling, right? Is there any other single consumer application which ships with Debugger for free, right? There isn't, browsers ship with Debuggers, right? That's pretty incredible. In fact, for IE, another thing that I find mind-boggling is the fact that you can switch rendering modes. So you can go here and you can say, you know, render this page as I9, I8, I7, I8 and compatibility mode, and there are something called as document mode as well. So I5 quarks, I7, so think about this, right? So you build an application, and you ship new versions of it, right? In every new version, you embed a small engine of your previous version as well, right? I mean, so basically, you can just make your app behave like it's running on older version, right? And this is purely a testing feature. I agree, right? So the observation was that, so even though the developer tools give this ability to switch document modes to simulate older versions of the browser, he's saying that it's not full fidelity in the sense that switching the document mode to IE5 quarks mode does not give you exactly the same behavior that you would get if you ran the app on IE5, but I would say that, you know, it takes you a good deal of the way there, right? So in fact, in one of the talks that I do is I kind of show you, you know, rendering an app in IE6 mode, how much it screws up your app, right? And what you need to do to kind of fix that. So again, you know, that's just a remark. You know, it's kind of amazing that, you know, so much functionality is there in the browser. Browser is probably, you know, I'm wondering there will be a point in time that is more complicated than building an operating system. Anyway, so, yeah. You spoke about WinJS. Can you please tell a bit more about it? Is it another name for JS Script from Microsoft or? No, WinJS is basically the name of a library. So just like here, jQuery, prototype. So WinJS is a library that allows you or makes many of the scenarios for building Windows 8 desktop applications easier. That's all, right? So how do you interface with some of the operating system capabilities, right? So for example, Windows 8 supports the concept of search, right, so there's a system-wide search capability. So you can search for stuff in the system, but what's interesting is you can search for things and have it target an app, right? So let's say I say soup or something and I target this particular application here, then basically that particular search was executed on this app, right? So this is a system contract, right, called search. Now, so the WinJS is a library that makes these kinds of scenarios easier. And Windows 8 supports a search, a share contract, like you can take an application and you can take some piece of information on the app and share it with another app, right? For example, let's say I have a... So let's take this, right? So I have this recipe here, Shanghai Noodle something, right? So I can go here and I can say share and then for example, I can tap on the mail app. Then basically what happens is that recipe gets, in some form or fashion, it goes into the mail and then I can type an address here and then it gets mailed. And or I can put it to SkyDrive or what else do we have here? I can put it on Wikipedia. So you can do things like that, right? So WinJS is a library that allows you to, you know, enables implementing these kinds of contracts and basically makes Windows 8 development easier. I have another question. Currently NodeJS runs on Chrome. Is it possible to run in IE10's engine? All Sakura engine, I have no idea, I have no idea. I don't know if there's any... In fact, Node runs on Windows. Node runs on Windows client operating system. It runs on Windows Azure, which is Microsoft's cloud operating system and everywhere it runs with the V8 engine, right? So I don't know if there is any effort on to port it to the Sakura engine. I have no idea. Right now it runs on V8, on Windows as well. Yes, I think we have a question here. Sorry, so you showed numbers about Windows 7 and how it is a huge market opportunity, right? But a lot of it depends on the adoption of Metro UI, so do you have any numbers on how many users are actually adopting the Metro UI versus number of users who are migrating to Windows 8? So the numbers that we have today are all for the preview releases of the OS, right? So, I mean, that probably is not reflective of real world usage that you're going to see because the operating system itself is not launched yet for public consumption, right? So the folks who are using Windows 8 today are enthusiasts, right? Who are in this industry, you know, people like you and me who are, you know, really looking at what's going on, right? The Amjanta, like the regular, the normal folks are not using Windows 8 yet. So let's see, right? So the OS itself is getting launched on 26. So it's certainly optimistic given the patterns that we've seen in the past. So let's wait and watch, but I would say that it's probably a safe bet to make that this is going to be popular. Yes. Thanks for doing this, having fun so far. So one of the common complaints with IE or building stuff for IE or compatible with IE, as you're talking, the Windows 8 opportunity. One of the things Chrome has gotten right is this app release cycle, which is why so many people get to experiment so much, which is probably why the entire webkit tilt happened with Firefox. But that being said, for Microsoft, I suppose this is an opportunity to adopt something similar. Is there anything happening in that direction? Because that's what the bet will be on if you're going to be betting on an IE-based app. No, I totally agree with you. So Chrome kind of set the benchmark there. They kind of set the benchmark on how rapidly they can iterate and come out with new release cycles. In fact, it's come to a point where nobody really knows what is the current version of Chrome, right? So now, so, and it is probably a validation of their approach and the fact that Microsoft has also adopted that. Firefox has certainly adopted that. And Microsoft has also adopted that. So now, IE updates are going to be rolled out automatically. To the whatever is the latest version of IE supported on a given platform, so on XP, you know, folks who are on IE 6 would automatically get upgraded to IE 8. Windows 7 folks can go all the way up to IE 10. Windows Vista folks can go to IE 9 and so forth. So that is certainly something that's getting rolled out. Now, Microsoft, you know, we can't just do what Google does as is, right? There are some, so for example, IE, right? It tends to be very popular on enterprises, right? So, and in companies and in corporations, the IT teams typically want precise control on what runs on end user desktops from a support point of view, it makes things easier for them. You know, in a reasonably big sized company, there are hundreds of intranet applications that run and the moment something doesn't work, folks call IT team and that's support cost and all that. So there are some other considerations as well, right? So for consumer devices, this is certainly something that is going to happen. So IE upgrades are going to be automatic. For enterprises, there are mechanisms that allow them to disable that if you want. I think we have time for one more question. Hey, hi. So far, Windows 8 looks cool. I have one query. What about add-ons? Like just like we have, we can build add-on for Firefox and Chrome. So is there any plan for Windows, I mean IE 8 to support those kind of stuff or something? Right, so good question. As of now, unfortunately, there is not a good story for add-ons on IE. I mean, or maybe you can put it this way, right? So either there is an incredibly good story or a not so good story. So the idea is you can build what are known as browser helper objects for IE, right? So that's essentially a native C++ component that you can build to extend IE and you can, and that's hugely powerful in the sense that you can extend it however you want, right? You can completely change the face of IE if you want to. The only trouble with that is it's not easy to do, right? It's C++, you had to build a com component. There is an interface that implement and things get very, unless you are a C++ native developer who's familiar with com, it's not easy to do. Whereas there are easier extension models built for other platforms, right? So right now, as far as browser customization is concerned, as far as a flexible browser customization option is concerned, C++ and browser helper objects are probably the only option for IE. I don't know if that's gonna get better, I hope it does. So that's certainly something that we don't have a good story with for IE right now.