Remarks by Bill Gates, Chairman, Microsoft
Microsoft Tech•Ed 2008
June 3, 2008
BILL GATES: Good morning and welcome to Tech•Ed.
This is the first year that we broke Tech•Ed into two sections, the section this week, which is just for developers, and a section next week, which is focused on IT.
When we did that, we thought we'd get about 4,000 developers to the conference, and so we've been very pleased that there's over 6,000 people signed up and attending the events this week. So, a huge response, a lot of exciting new things that you're going to get a chance to see.
I really enjoy coming to this conference because I'm a developer. Writing code in new and better ways is really what drives the progress of our industry: the ability to develop new user interfaces, the ability to connect up to all the sites out there on the Web, the ability to let people view data in the way they want to view it.
And development really is changing. The tools are getting better all the time.
Today, we're going to take a glimpse at the various aspects of that, and see what we're doing, but, of course, the center of this conference is your opportunity to go to the breakouts and give us feedback and tell us what you like about what we're doing, tell us what you'd like to see us do differently. We really value the great interaction that takes place at this event.
Well, for me this event is also a milestone. It's my last public speech as a full-time chairman of Microsoft. July 1 is when I make a change. I'll go from being full-time at Microsoft and part-time on the work of my foundation to doing it the other way around, full-time on the foundation and part-time with my Microsoft work.
Now, that's the first time I've really changed my career since I was 17 years old and just completely immersed in software and the unbelievable ways that software, together with the microprocessor, has created new things, including the personal computer itself and the entire Internet.
So, I don't know what it's going to be like. It will be a bit abrupt, and put me in new territory. So, some friends called me up and said that to help me get in the mindset of what it would be like they'd help me put together a video of my last day and making this switch. What we did here is we pulled together sort of a director's cut of this last day video with a fair number of new things and some interesting things. So, it should be fun. Let's take a look at what my last day might be like.
Well, we had a lot of fun making that, and the whole transition that was announced two years ago is going very well, and there are some incredible people, a number of whom will be on stage with me today, are stepping up to drive the technology work.
Changes in Technology: Hardware and Software Advances
Now, this work is more ambitious every year. Developers can write applications that were not possible before. What's the reason for this? Well, there's really two key things, one is the advance in hardware, and the second is the advance in the software platform. And we can't underestimate the important role that hardware improvement plays here. After all, we can add exponential improvement in the performance of the microprocessor itself. The increasing clock speed has allowed it to do applications that simply wouldn't have been possible in the past. The unbelievable amounts of storage we have today, meaning that databases that record every click for millions of customers, and get data mined for deep patterns, those are now feasible on fairly low-cost systems. And so the sky is the limit in terms of empowering people, and writing very rich applications.
The microprocessor has gone through a lot of changes. We went from the 16-bit processor with a meg of memory to the 286 that gave us a 24-bit memory space, then to the 386 with a 32-bit memory space, and now we're in the transition to 64-bit. And that's quite soon because that compatibility, the ability to run the existing applications is fairly straightforward, at the driver level we need a few changes, but this will be probably the simplest address space transition we've made.
Looming after that, though, is an even more interesting challenge, which is the clock speed will not increase at the same rate it has over the last 30 years. It will largely stay the same, and the additional performance will come from having multiple execution units. And so the need to take programs and break them down into parallel execution units now becomes absolutely necessary to get the benefit of the exponential increase in transistors. We have an incredible amount of work at Microsoft to make the runtimes higher level, and to make it easy to take your code and write it in this parallel fashion. There will be a lot of discussion about this so-called "multi-core" revolution in how we make sure we're all doing the best to take advantage of that.
Beyond the microprocessor, we have the ubiquity of broadband, both through wireless, and wired connections, so that even sending high definition video is becoming very, very reasonable. We have the cloud services. Historically when we thought of the subroutine call, it was always on the same machine. But now with the pervasiveness of the Internet, and standards like the WS* standards, and runtimes, we also like Windows Communications Framework, the ability to call out the logic on another system that might be anywhere on the Internet is just like the subroutine call of old. And so leveraging services, leveraging code that other people have done becomes very straightforward. Calling into, say, Virtual Earth, where we've got all the maps, you can just have that be a part of your program, and it looks just like calling some work that you did. So the whole style of programming the ability to do powerful things with less lines of code is improving quite substantially.
Now one of the big changes coming that I think is most underestimated is the change in interaction. Throughout all these improvements, the way we interact with the computer has hardly changed. We had the graphics revolution that took us from the keyboard to the keyboard and the mouse, and it took the screen from character mode to graphics mode. But still it's that one person sitting there, primarily using the keyboard, and the pointing device to interact with the application.
There's a number of technologies that our research group and others have been working on for these decades that are now moving into the mainstream. It's a combination of software advances, and hardware power that allow us to bring new interaction techniques to a mainstream world. We collectively refer to these as natural user interface, but it's several different things. It's the idea of touch panel, and we gave a glimpse just last week of some of Windows 7, and the thing we chose to highlight there was this touch support, and how we built that in and made that easy for developers, and how end users will like that.
We've also got the pen capability that we're taking to a whole new level in terms of easy recognition, and how that is implemented in the hardware. I think of every student having a device that avoids the need for paper textbooks. The tablet device will let them take notes, record audio, connect to the Internet. It will be superior in every way, and yet it can't be purely keyboard based. It has to have this touch and pen as well.
We also have the speech recognition. On the phone today, if you call up information, that is a piece of software from a Microsoft group called TellMe that's taking those information calls, and we're building up the database, the speech model, of people in general, and people specifically to allow that speech interaction to be very rich. And as so we look out over the next decade, the way you interact with that cell phone, speech will be a major part of it.
The final natural interface piece, one that I think is perhaps the most important of all, is vision. A camera is very inexpensive, and putting software behind it that can tell what it's seeing allows you to have gestures, and movements, things that will be used in a variety of settings. We put out our Microsoft Surface product that actually uses a camera to project up onto a table surface, and there you can point with your hands, or put objects on the table, and the software sees them. It's being used in retail stores, and as that price comes down, that would be in every office, it will be in every home. Your desk won't just have a computer on it, it will have a computer in it. And your whiteboard will be intelligent. You can walk up, take information, expand it, point to somebody's name, start a teleconference with them, sit there and exchange information. And so natural interface really has a pretty dramatic impact on making these tools of empowerment, the personal computer, making them pervasive, and looking at them in new ways.
And so it's very exciting that this decade is when those things go from being really niche type things, to very much mainstream. And so building these things into the Windows platform, both on the phone, and on the PC, and having great tools for those will let you build these new kinds of applications.
If you look at applications, I really envy people who are starting today versus the early years of Microsoft. In those early days, you had to flip the switches, and there was no symbolic debugging, no performance analysis. Things have come a long way. The variety of languages that you can choose from, Visual Basic, which really evolved out of the very first Microsoft product, C#, F#, all these languages connecting in and sharing where appropriate in both the development and runtime environments. There is new concepts like the functional programming that will come along and perhaps be more interesting in this parallel environment that you can mix and match development that's done in different ways.
Now, the success of Microsoft is really due to our relationship with developers. From those early days of getting people to write applications in BASIC, to getting people to write applications for MS-DOS, to get people to write graphical applications for Windows, that's where we had our success. With things like Windows, it didn't happen overnight. There were many years of getting the system better, taking advantage of performance, improving the tools before that became a mainstream thing. We can say the same thing about Web Services, that took some time. The .NET approach, which is now a very mainstream thing, took time for that to be developed. And I would say the same for these new techniques of calling out to services, calling out using the rich new protocols, those are just now moving into the mainstream.
And so it's through dialogues like the ones we have here that we make sure that we're adopting our tools, and maintaining that great strength we've had with developers. We've done that by having a rich set of technical leaders inside the company that understand the needs, and make sure we're being very ambitious in what we do.
Now if we take the opportunity for developers, we can break it down across all the different pieces, and so I've broken this down into the four areas which are a pretty natural way of splitting it up, presentation, business logic, data access, and then the services that will be out over the Internet. We are innovating in each one of these areas, and giving people choices for each of these things, depending on the complexity of their application, so that the appropriate choices are there in every case.
The Future of Application Development: Presentation, Business Logic, Data Access and Web Services
So let's take the first area, which is presentation. Of course, this is what had the big revolution as we moved from character mode to graphics mode. Graphics is well-established, great control frameworks that let you do neat things, particularly Windows Presentation Framework now is a great way of doing those things. We still have users and GDI, and many applications calling those, but more and more the new applications are calling the Presentation Framework. Of course, here what you need depends on the particular application. If you need to run in the browser environment, that's where things like Silverlight come in. If you're willing to take full advantage of the client-side richness, then you can do even more.
This will change as we have touch, it will change as we have 3D environments. That idea of quick 3D rendering to create virtual worlds, that is another thing that I expect will be fully mainstream over this next decade. There's been a lot of times people have said that was ripe, but really the performance and the tools were not there to make that happen. It's partly due to the graphics chip work that's come from games support that we now have in all of these personal computer devices, even somewhat in the phones, that let us be more ambitious in all presentations, including even 3D.
Now when you're connecting up through the Web, of course, the browser is the runtime you're connected to. And we've had a renewed effort to really invest in Internet explorer. It's an important product for us. We put out Internet Explorer 7.0 not long ago. We're hard at work on a new version of that, so-called IE8, a very creative name that we've come up with. And you're going to see the beta for this coming out in August of this year. Actually, that's Beta 2, it will come out within a month of that with support for over 20 different languages, and it's got some very interesting things that I'll just mention briefly here. It's got activities where you can take a set of things you do on the Web and group them together. And so that will be very important. And then it's got what are called slices, which are essentially small Web pages where you can highlight the portion of your page that should appear when somebody has not got it in a full-size window. It lets you get at the snippet type things, and provide a persistent presence in a very simple way, and we've made that extremely straightforward. It's, I think, a very neat new idea. So, we're going to be going through these developer features in the breakouts here. I encourage you to take a look at that.
IE8 is also a big milestone for us in terms of neat things that end users can do, as well. So it's got that duality, like all great software releases, neat, exciting things for end users, but also opportunities for developers, so that their Web site can light up and be better on IE 8, while still continuing to work well with earlier versions of Internet Explorer, or other browsers, as well. So that's one aspect of the presentation layer I thought was particularly worth noting.
Silverlight Application Demo: Soma Somasegar
The other things that are interesting there, of course, Silverlight and Windows Presentation Framework, and these we've made a big investment in, and in fact, I'd like to ask Somasegar, who runs our developer division, and is one of our top technical leaders, to come up and give us a sense of what's going on with the presentation layer that we've had so much activity.
Good morning, Soma.
SOMA SOMASEGAR: Thanks, Bill. Good to be here today. Bill, I was listening to your speech backstage about your early days as a developer. If I remember right, you used to build some software for a platform called Altair, for the system Altair. Do you happen to remember how much memory the system had?
BILL GATES: It was 8k, not 8 meg, 8k bytes of memory. And the presentation layer in those days was taking characters in from the paper tape and printing them out on the teletype, and the big breakthrough was when we got lowercase. It was very exciting. So we've come a long way.
SOMA SOMASEGAR: Right. We've come a long way. I'm pretty sure that with the hardware, graphic presentation wasn't top of mind for you back then. But, Bill, even I the last 5 to 10 years we've come a long way in terms of client application development. When we think about client application development at Microsoft, we really think about it in the broadest sense, starting from standards-based AJAX type programming, to rich Internet applications with Silverlight, to full rich client applications on the Windows platform with WPF. And we try to give you a set of tools, a set of runtime technologies that enable you as a developer to be able to learn once, and then apply your skills, your knowledge, your expertise, and writing your code any way that you choose to go. And that's precisely what I'm going to show here for the next 10 minutes, show some demos, and show how applications can be built. So let's walk to the machine.
So the first thing I'm going to show you all today is an application that is going to be under development, which is a Silverlight-based application. Now, this app is called Crossfader, and it is a social networking app that you can use to share your digital content, it could be music, could be videos, could be whatever, pictures. You want to be able create and then share it with your friends and family, and more importantly, with other members in the online community that you choose to be a part of.
This application, when we started building this application we said, there's going to be one key design principle that we wanted to have in mind, and that was to deliver an interactive, immersive user experience. And the way we thought we would deliver that is through a virtual conveyor belt, that you see in the screen here. And there are a bunch of what I call interactive tiles that go back and forth on the screen. And through one click you can control the movement of the tiles, you can change the direction the belt moves, and let's say there is a particular tile that catches your attention, say in this case I'm going to click on this video file. It right away centers on the screen, and the video starts playing.
Now, if you want to view this in a slightly larger format, you can click, and then boom it becomes and if you want to do it in full screen, you can do that with Silverlight. Now, as you see here, the transitions are pretty seamless and smooth. And one of the reasons is because with Silverlight we do have the ability to deliver high definition video content using our VC1 codec. And also, we do have the ability to deliver high quality video at very low bit rates. That means if you are a user that has access to a system with low Internet bandwidth connectivity, you can still have a great viewing experience.
All in all, the media support that we have in Silverlight is just awesome. Now, if you want to store some metadata out this video, and you decide to do it in a standard application, what you will do is, you'll store some static data, data in a static Web page. Now, to make it a little bit more interesting here, we thought we'll store the metadata right on the side here. So I'm going to click here and you're going to see some data on the back of this tile. This tells you the name of the person who created this video, and also some information about the video itself.
Now, this whole inner textbox is a Silverlight control. It's a native Silverlight control. One of the things that the development team did is to take advantage of the Silverlight controls that come out of the box, as well as create an additional set of Silverlight controls that can be reused over, and over again.
Now, if you're an enterprise developer, there are two things that you keep in mind always. One is scale, and the other is code reuse. And those are the two things that the development team working on this application have kept in mind throughout the development of this project. Also, because Silverlight is a true subset, both in terms of the .NET Framework and WPF, you can reuse the controls that you write in Silverlight and be able to take those controls and use it in a full rich client application, that is a WPF-based application.
Now, if you want to understand a little bit more about the person who created this video, you can click on the person here, and then there are some other videos that show up here, which this person has created and is willing to share with you all. Now, this one looks like a cute kid, so I'm going to click on this and see what it is. It looks like this is a home video that this person has created, and is sharing with you. Again, if you see here, there is some other metadata stored right on this page here. This is all the comments that people have on this particular video, and there are also links to other videos that you may want to see. So all in all a great immersive, and interactive experience that this application is trying to deliver to you.
Now, I'm going to transition, instead of talking just about that I'm going to take you behind the scenes and talk a little bit about how easy it has been for both the developers and designers working on this project to collaborate together in a seamless fashion. Now, as you know, both Visual Studio and Expression Studio, they speak a common language in XAML. Also, we do have the ability now for you to work on the same project files from either Visual Studio, if you're a developer, or from Expression Studio if you're a designer. So, because of these things, it is fairly seamless for a designer and developer to work together in collaboration.
One of the ways that I'm going to illustrate this point to you is through using a feature in the app, which is a search feature. So I'm going to click on search here, and it's going to give me some information that I can search from. Now, I'll make a confession, since Bill isn't here on stage anymore, I'm not a designer by any stretch of the imagination. I can try to act as a designer, but I'm not. Okay. And even I can tell you that this screen is pretty boring. It isn't fancy, it isn't jazzed up. So I'm a developer working on this project, I'm still working on the code, and I'm trying to get my code perfect, but meanwhile, I don't like this design. So I'm going to call my designer working on this project and say, hey, can you do something here, can you make it a little bit more jazzier.
Now, the way designers work, they obviously don't work in developer tools, they work in designer tools, and in this particular case the designer is working on Expression Studio, Expression Blend, to be specific, and here you've got the property system, and if you click on project here, you can see the same what you will see in Solution Explorer in Visual Studio, the entire project tree. And the designer has worked on the design, and here is the design that you see, and this design looks a little bit more severe than what I showed you a minute ago.
So I'm going to take this design and apply it to my program, and see how it looks like, and then decide whether I like this, or whether I need to go make additional changes. So let's since I'm a developer I'm going to go into Visual Studio, and there is a bunch of code I've already done here, I'm going to make some changes to the code. I'm going to change the name of the template, first, so that I pick up the right template. Once I make the change, the next thing I'm going to do is, I've got a couple of snippets of code that has code for the list box control. The old, plain one, I'm going to comment that out, and the new one that I already have created, I'm going to like uncomment this, so that the right things happen.
Now that I've made the code changes, I'm going to hit F5 to build the application, and then run the application. The thing to notice here is the designer was able to work on the design, as I was working on the code, and when the designer has made some progress, I can easily incorporate that into my app. I'm going to skip the intro here, and then go right into the application. And once the virtual conveyor belt starts moving, let's go into search here, and voila, here is the new design.
So as you can see, it was very, very simple for me to be able to take the design that my designer has created, and then apply it to my program, and see how it looks like, and then decide if I want to make changes, or if I like the design, and move on with that. So as you can see, because we use the same language, in XAML, between Expression Studio, and Visual Studio, it makes it a whole lot easier to have seamless two-way collaboration between the designer and the developer.
Now, I want to give you a little bit more context about this application. There are about six developers, and one or two designers, working on this project. Now, all the developers are .NET developers, and some of them have never experienced Silverlight before they started work on this project. But, in spite of that, because Silverlight is a subset of .NET the full .NET Framework, it supports the same .NET programming model. The tools that you use are the same tools that you know about, which is Visual Studio and Expression Studio. The developers are able to come up to speed quickly, ramp up, and be very productive on this project. And from start to finish, we think it's going to be about three months. And when I say finished, we are on track to delivering a beta of this application by the end of this month, and the whole amount of time that the development team worked on this is about three months.
Now, if you sit back and think about it, and say, how long is it going to take for you to build this application on other technologies, we think it's going to take upwards of a year, probably with more resources. So the productivity benefit we see is just huge. Now, I don't know whether I mentioned it, I probably didn't mention this, but what you just saw here in the application, this is built using beta 2 of Silverlight 2.
Now, as we speak here, the team is putting the finishing touches on beta 2 of Silverlight 2, and we are on track to delivering that to you all by the end of this week. And this beta 2 is going to have a Go Live license, so that if you want to use this and deploy it in your production environment, you can do that. In fact, we have a deal with the Olympics guys this summer, with NBC and MSN, where they are going to have over 3,000 hours of content that can be streamed either on demand, or live, all the Olympic content, that's going to be using Silverlight beta 2. So we are very excited about what we are going show you all in the coming months here.
Now, I'm going to switch focus and talk a little bit about WPF, and rich client application development. As I said before, at Microsoft we think about the whole continuum. And if you go back and think about when we delivered WPF, it's been, what, about 18 months since we delivered the first version of WPF. And the last 18 months we've seen a huge amount of adoption, interest, and frankly, deployment of applications that are WPF-based. Now, if you look at the screens on the side, there are a bunch of interesting screen shots of the kinds of user experiences that people are able to deliver with WPF today. And these are all applications that are available today, these applications span multiple verticals, multiple industries, and it's, frankly, exciting to see what people are able to do with WPF, the range of experiences they are delivering.
So to summarize, we think about client development, and user experience across the whole spectrum, starting from standards-based programming, all the way to rich client programming with WPF. And at Microsoft we strive to give you a set of tools, and the runtime technologies that enable you as a developer to be able to learn once and then apply your skills, your expertise, and frankly, your code, anywhere you choose to go in this continuum.
With that I'm going to close here, and get Bill back on stage. Thank you. (Applause.)
Visual Studio Team System Demo: Brian Harry
BILL GATES: All right. So let's move to the business log display. This is probably where you have the most code, and this is code that's very diverse. As you start with a version one it's often very straightforward, but then as you move through time this code gets complicated, you've got lots of people who have input, you want to be able to be agile and change it. This is definitely an area where there's room for improvement.
A real solution may end up with files in many places, and people using a variety of tools. So the centerpiece for us has been to think through this collaborative process. How can we have an environment that's appealing to people with different skill sets, and get them working together? How do we help the whole lifecycle, the testing, the deployment, all of these things come together for an application that may have to last for a long period of time.
Now, our view has always been to do this in a deeply integrated way, to take Visual Studio and expand it, but always have it integrated at a very rich layer. Now, a key leader for this has been Brian Harry, who is a technical fellow in our developer group, led the Visual Studio Team System work, and he's got a vision of how we're turning this forward. So let me welcome Brian to the stage.
Good morning. (Applause.)
BRIAN HARRY: Thank you, Bill. You know, listening to you backstage, it's amazing to hear you talk about the focus on teams, and the diverse roles. I think back when I came to Microsoft 14 years ago we've always had a history of really focusing on building terrific developer productivity tools, and making the developer as productive as we possibly can, and now we not only do that, but we're focusing so much on a broader range of personas to make the overall development process more successful.
BILL GATES: What's the key technology that's going to let that designer, tester, or IT person, that's going to allow them to connect in one way?
BRIAN HARRY: One of the key areas we're investing in to do that is in modeling. Applications get very large, they get very complex, and very soon they're very hard to understand what they are, and modeling allows you to conceptualize applications at a higher level, and be able to make sense of them. So, in fact, I'm going to show you some of the really great stuff we're doing.
BILL GATES: Take it away.
BRIAN HARRY: All right. I've got an application here, which is a customer service application. It's a simple application that allows me to enter a customer, and look up that customer. And it shows me their information. But, we want to add cell phone to this, you can see the cell phone is empty, the application doesn't manage cell phone numbers yet. And someone has updated the Web page, and my job is to go and update the application.
Well, I've never worked on this application before, so I don't really know where to start. There is a bunch of code, and I could start poking around through that code trying to figure it out, but wouldn't it be nice if there were a better way to sort of get into this application and figure out what to do. Well, let me show you. We've got a new tool called the Architecture Explorer. Actually what it does is it goes through your solution, parses all of the code and visualizes that to allow you to see your application.
So here you can see that we've got five major components represented by these gray boxes. These are the projects in your solution. Those contain different interfaces, classes, and methods. Over on the left hand side, I'm going to zoom in a little bit, over on the left hand side is the client side of the application. And over on the right hand side is the server side of the application.
You know, as I'm looking at this I'm seeing that my customer card Web page that we were just looking at references some customer helper in my server application. That doesn't look right to me. This is supposed to be a three-tier application, but I'm not sure. So I'm wondering, is this code actually conforming to the way it was designed. Well, let's go look at another tool called the Architecture Layer Diagram. This allows me to describe my application as I intend it to be.
As you can see, this application has a presentation layer, which talks through a Web service proxy, to a service facade, a business logic layer, and a data access layer. And I can associate components of my application with each of these parts of my architecture, and that's represented by these little gray boxes. Now, what I saw in that picture was a dependency between the page here, and the data access layer here, and I can look at the architecture diagram and tell that's not right.
Now, I happened to catch that by looking at it, but I'm not always going to do that, so wouldn't it be nice if there were a way to tell automatically. Well, there is. I can run I can validate my actual code against the architecture. So I do that, sure enough, it tells me that there's a dependency validation error. The class customer card, in layer pages, has a call to customer helper in the database layer. Well, okay, that's clearly not right. So before I go and start making changes to sorry, before I start making the cell phone changes, let's fix that. I don't want to leave that in here. So let's go to the customer card Web page, sure enough I can look at this code and I can see that it accesses the database directly, and in fact, it looks like the developer probably even knew what they were doing was not quite right.
So let's replace that with some code that actually goes through the Web service proxy, and fix that architectural problem. Okay. With that done, my next job is to add the cell phone field, I need to add it to the data access layer. Well, as an interesting thing, this application is written in DB2. So I don't have a DB2 the database is written in DB2. I don't have a DB2 development tool in hand, but I do have Visual Studio Team System for Database Professionals. And wouldn't it be nice if I could stay in Visual Studio and do my DB2 development, in addition to my C# development, my SQL Server development, et cetera.
Well, now you can. With our upcoming release of the database professional GDR later this year, you will be able to do DB2 development directly inside Visual Studio without leaving the IDE. Let me show you how that works. So you'll see the DB2 artifacts in the solution explorer. I can drill down into the tables, and I can find the customer table. I can open it, and here's the schema for that table. Well, I want to add the cell phone, so I'll just copy that. And there I am, I've added it.
Now, in addition to integration into the Solution Explorer, we also have integration into the schema view, so that I can drill down and confirm that, sure enough, cell phone has been added. I also have a phone field here, and I'm a little concerned that that will be confusing to people, to have a cell phone and a phone. So let's change phone to work phone. I can use database refactoring, the same feature that we have today in Database Professional, on DB2, to very easily change that to work phone.
And that will go through all of my code, find all the places that need to be changed, and change it, provide me a preview pane, where I can review the changes that need to be made. There's the schema change, here's changes to my stored procedures, it will find my strongly typed data sets and update those. And when I'm happy, when I've reviewed it, I can simply say apply, and I'm done.
So my application has now been updated. Let's go back to the layer diagram, and let's confirm that I've fixed the architectural problem that I had before. I'm going to rerun the validation, and sure enough, I no longer have an architecture violation showing a bad dependency.
Now, I showed you that I can manually validate this, but wouldn't it be nice if I never got the problem in the first place. So another feature is the ability to create a check in policy associated with architectural validation, so that I can actually validate it before the code ever gets checked into the system, and avoid creating spaghetti code in the first place.
Let's go back one more time and look at sorry. I'm going to show you one more view for looking at your application dependencies. This is a nice summary view that allows me to see all of the dependencies in my application, and here I've got my customer card class, and we can now see that it only has one dependency, and that dependency is on the customer service client, instead of on the data helper. So that's good. And just to complete it we'll go back to the original view, and show that I now have all of my client and all of my server separated with no cross-dependencies, other than the Web service dependencies.
So what I've showed you is that you can take an application that you've never worked on before. You can use the modeling tool to parse that application, and show you a visual representation of it. You can then go in and understand how that application compares to the architecture as it was designed. And you can make your changes and validate that your changes conform to your design.
I've also showed you that you can use our database professional tools against a DB2 database without leaving Visual Studio. So you no longer have to manage two IDE environments for doing your application development. This is a big step forward. And further, as we go forward, we're making a lot more investments in the modeling space. This is just step one in a wave of modeling products that we're doing that you might have heard is something code named Oslo. It represents a set of investments both in modeling tools, and in a new modeling language for describing models, and in a modeling repository for being able to store models and manipulate them.
That's it. Thank you very much. (Applause.) Thank you, Bill.
BILL GATES: Okay, so now we've gotten down to the core where the data is, always an important part of an application. And this is, of course, a layer that's gotten richer and richer. Microsoft has always had a central focus on SQL Server as the place to store data. It's where we have the greatest capacity, the ability to distribute, update, query in very rich ways. In fact, what you see us doing is taking all our different data driven activities, and pushing them into SQL. With Active Directory, now we're moving the information there so that the meta-directory is SQL based, and we just replicate up to the special data source for AD. Over time with Exchange, we'll use the SQL store. SharePoint is already using SQL in a very rich way, but we'll expose more and more of that native SQL power to the SharePoint developer for them to do easy application development.
So we've gone way beyond, with SharePoint, just thinking of that as a simple portal. Now it's taking over the broad set of things that you might think of as document management, collaboration, workflow, all those different website type applications, the SharePoint layer sitting on SQL has become very, very pervasive to that. In fact, the richness of those applications are what are driving us now to let more of the native power of SQL show through there.
We're very excited that we've got SQL Server 2008 coming. It's a very big release in terms of what people can do in the data center, how these various pieces connect together, different types of data that we can understand in a very rich way. And so this is central, and it's a big investment for us, something that is very key.
So I would like to invite now Dave Campbell, who is the technical fellow who drives our design for SQL Server, and he's spent a lot of time thinking about storage and services, and where we're taking all of this.
DAVE CAMPBELL: Thank you very much. (Applause.) It's tough to come up here as the database guy, because Soma has those really cool graphics, and then Brian has cool visualization. And traditionally it's been, hey, let's watch this transaction commit, lets watch this one roll back. So it's kind of hard doing a database demo. But SQL has evolved quite a bit since we started. At first, it was just a database server with compliant libraries, and today SQL Server is a product family. If we just look across what it runs, there's a SQL Server Compact that runs on PDAs and smart phones up through laptops and desktops; SQL Server itself which runs laptops, desktops, up through very large scale servers, so the big servers we have in the lab is probably 64-bit, 64 processor, a terabyte of RAM. Did you ever think we'd get to a terabyte of RAM?
BILL GATES: No.
DAVE CAMPBELL: Did you really think that 640k
BILL GATES: No.
DAVE CAMPBELL: No, you didn't. A terabyte of RAM, you can put thousands of disks on it. So it's just the breadth of what you run. And now we have SQL Server data services an Internet scale database service that's built on SQL Server technology. And if we look at what we can store in the database, when we started it was just relational tables and blogs. Today we've got objects, we do a great job with XML. I'm going to show today a new SQL Server 2008 capabilities for spatial data, and also file integration, so doing a great job of integrating files into the database. And then if you look at what we've done with what you can do with the data nowadays, we've gone from just select, insert, update, delete to being able to analyze, visualize, be able to replicate and synchronize data across a variety of sources. So really the richness of what you can do with the data has increased tremendously as well.
BILL GATES: So people end up with data in many different locations from that PDA you mentioned to the desktop systems, to multiple servers. I guess it's a big challenge to keep all of that synchronized in the right way?
DAVE CAMPBELL: Absolutely. And that's a key thing, getting the right data at the right place, right form, at the right time, so you can make the right decisions. And the key thing is actually reducing the latency so that people can make better decisions, and today that's many times the difference between success and failure.
BILL GATES: Well, the new release is very exciting, why don't you give them a look.
DAVE CAMPBELL: We'll take a look at that. Thanks, Bill.
So I have one slide just to set this up because we have a lot of moving parts. And in this slide, what we're going to use is SQL Server data services as a generic data hub at the center of this. And we have a rich WPF application with a local database that allows us to do a variety of things with the data, and I'll show that. Then we have a Web-based application that allows people to submit data, and that goes directly to the SQL Server data services. Think of that as a database service end point on the Internet. And then we have a mobility application that allows us to collect content and through the Microsoft Sync Framework actually synchronize that with SQL Server Data Services as well.
Now the Sync Framework can do things in a peer-to-peer fashion, but in this particular scenario, we're using SQL Server Data Services as a hub. In the scenario we have, we have a company called (Tray Research ?), and what this allows is bloggers and other people to contribute content and become freelance journalists. And so the idea is, people can submit content that are registered, and actually get paid for their content.
And so we're going to show an application that we started, and I'm going to start talking real quickly about the entity data model, and the entity framework. The idea here in many of the things that you've seen is leveling, up-leveling the abstraction at which we're operating. And so instead of dealing directly as a logical relational schema, we can reason about things in terms of entities that make sense to the application, and associations and relationships between entities become first class in this model. We can separate the store from the work that's happening above it. And this application is what we've used to build this rich WPF app.
And the first thing that I want to show here is, I've got a little bit of a slider here that I can move around. And if you look over on the right-hand side, you can see that the content is moving in and out depending on the radius that I've established. So this is using SQL Server's new spatial types in SQL Server 2008 with the virtualized map control, and what I want to show you is sort of the code behind this. So it's very easy to go off and do. What we do is, we've defined the point that came from the application, and then what we've done is actually SP Buffer is a standard function that gives you the number of meters from that point to define the circle. And then in the query we just have the intersects operator down here that's intersecting with the radius geometry that we've defined above. This is all spatially indexed, so that it's actually very quick when we go off and use it.
And over on the right-hand side, we have the articles, and an interesting thing about the articles, they are geo-coded, as you can see here, and we've got a time that they've been submitted, and other contents. So we have some properties, and we have some content. Over here we have some images that we can work with. And I'll bring that up again. This is geo-coded. This is an image that was taken earlier today. And one thing I want to point out new with SQL Server 2008 is that we have now full-time zone support inside SQL Server 2008. So we can retain time zones, and do local time zone operations on that, so that's a good thing.
Now what I want to do is point one more thing out on this application. In the upper right-hand side, you see a synchronization icon that's going every once and a while. So this is actually pulling data down from SQL Server Data Services, and one of the ways that we can get content up into the data services is with this browser based application. And, again, this is a rich application. We have profiling. If you're a blogger, you can find out how much money you've made recently. And the thing we want to do right now is create a new story. So I have some demo text I'll put in here, and of course we'll change a few things just for the demo so it's a really big event, it calls for big venues. I've noticed over here I'm going to geo-tag this, and we're actually in the wrong place, I think we're about right here, and I'll add in one more tag and say "SQL Server Rocks."
Okay, so now I'm going to submit this. And the data from this application is actually being submitted to SQL Server Data Services, and SQL Server Data Services is a REST-based application, and what we can do is go in and take a look here, and browse around, very simple to interact with. And since it's a database service, one of the things you'd expect us to be able to do is actually do some querying on it. So I'll paste in a bit of a query string, have you take a quick look at that. And so this string right here, from entities, where title is equal to "Beyond Heroes," that's the article that we submitted, select the entity. And that's based on the LINQ Query comprehensive syntax.
Now we've submitted the story. One of the things that we'd like to do is to see if we have anybody who could provide some other content. So if we have a Tray Research blogger up here, okay, so Moe is going to come up and actually take a picture with his cell phone. This is a mobility-based application, it uses the Microsoft Sync Framework. And Moe developed that, I don't know, it was a matter of how long did it take you to do that, a day or two? About a day. So, of course, Moe knows that stuff inside and out.
Now that we've taken a look at the data service, what we'll do is, we'll go back over into the application, and see if we can actually pull some things together. So now we'll take a look here, and the other thing that we have is this slider that allows us to restrict content based upon time. So this is the article that we want to put together. If we go over here to images, and I'm going to take the image that I had shown you earlier, and it looks like Moe's image of me from his phone actually came up there, synchronized directly through, so pull that down, and then we'll just submit the article.
So what we show right here is basically a mock up of the next thing that we'll do with this application as we build it out. And this gives you a sense of some of the rich analytics that you can embed inside your applications. So now we can do analysis within this rich application, we can see charts, we can see demographics, and all that is very easy to do because we talked about the breadth running from cell phones up through this Internet beta service, types of data. We actually showed a number of other pieces, and all of this with one single, common programming model.
Now there's one piece that I kind of jumped over, so I'll talk about it really quickly. In terms of integrating file content, so the age-old debate has been, do I store things in a blog, or do I store them in the file system? With SQL Server 2008, we have a new attribute on the VAR binary types that says file stream. And what this tells us is to store the content in the file system, but under the control of SQL Server, so that SQL Server will protect the data, administer it such that all backups are consistent, such that there will be no inconsistencies with respect to files that don't have things in the database, or things in the database without corresponding files. And this is very easy to use. I can just go open that and I can get a regular WIN32 handle or .NET stream, and do a read and write against it. So common programming model there, great experience, great performance, all integrated in with the system. So that old debate of do I store it in blogs or do I store it in the file system, we think we've done a very good job for that.
So just in closing, the things that we've shown you today were mobility-based apps doing synchronization, very rich experience, all synchronizing up to SQL Server Data Services. If you think about, when we talk software plus services, I think this is a great example where we're using the data services as the data hub, the data is protected and backed up there. We use a very rich application to get the power out of the clients, a local database, all synchronized to make sure that we've got the most up to date content in all places at all times. So great advances toward SQL Server 2008, and that will be available for you in the next month or two. So thank you very much for your time. (Applause.)
BILL GATES: You know, it's amazing how each of these pieces have come along. The final area I want to talk about is services. And I would say of the four this is the one that's just really emerging. The idea that there will be an incredible range of things that are available non-locally over the Internet. And overtime what can this mean? Well, it can mean that instead of locating software in your data center, or sometimes even on the client, you access it as a service. Some of these will be free, some will be ad supported. A number, the ones that provide rich guarantees, will be provided on a commercial basis. And so you'll have the flexibility to decide where things execute.
Now to make these services reliable, to make it easy to call them, to provide the kind of security that you want, there are a lot of new developments that have had to take place, things like identity federation. Things like the protocols that you see in the WS* standards, and that we've made easy to get to through the Communication Framework libraries. We're taking everything we do at the server level, and saying that we will have a service that mirrors that exactly. The simplest one of those is to say, okay, I can run Exchange on premise, or I can connect up to it as a service. But even at the BizTalk level, we'll have BizTalk Services. For SQL, we'll have SQL Server Data Services, and so you can connect up, build the database. It will be hosted in our cloud with the big, big data center, and geo-distributed automatically. This is kind of fascinating because it's getting us to think about data centers at a scale that never existed before. Literally today we have, in our data center, many hundreds of thousands of servers, and in the future we'll have many millions of those servers.
When you think about the design of how you bring the power in, how you deal with the heating, what sort of sensors do you have, what kind of design do you want for the motherboard, you can be very radical, in fact, come up with some huge improvements as you design for this type of scale. And so going from a single server all the way up to this mega data center that Microsoft, and only a few others will have, it gives you an option to run pieces of your software at that level.
You'll have hybrids that will be very straightforward. If you want to use it just for an overload condition, or disaster recovery, but the software advances to make it so when you write your software you don't have to care where those things are located, those are already coming into play. So the services way of thinking about things is very important, and will cause a lot of change.
So now let's zoom up and think about application development as a whole. I think one of the biggest trends in application development that I talked about with Brian a little bit is modeling, and we're making a big investment in that. We have what's been code named Oslo, and talked a little bit about it on our Web sites and our blogs, which is this model-driven development platform. It's actually taking the kind of models that you're seeing arising in specific domains, like software management in System Center, or your data design over in SQL, or your process activities over in BizTalk and saying, we need to take all these domains and be able to put them into one model space. In fact, we need to let people create their own domains that aren't just isolated, but that exist in this one modeling space. And that's what Oslo is about.
In some ways it speaks to the dreams that people have had for many decades about a repository, but it goes beyond what those ideas were, because of this richness of modeling, including the declarative modeling language. So this is something that's been coming along, we've been making great progress. The next milestone for us will be this fall, when we have the professional developer's conference. And in that timeframe we expect to put out a customer technical preview, a CTP of the Oslo work.
So, again, I think that's a very key building block, because modeling is what's going to take all of this richness, including services, data models, special things that are in your domain, the kind of applications you build and bring those together in one rich framework. It's been a long time coming from the industry, but I think we've got the right approach to that. So definitely, application development, you can be more ambitious, you can take on new and different things.
Robotics Demo: Microsoft Robotics Developer Studio
What's an example of some new application areas? Well, there are many. One of my favorites is this idea of robotics. Now robotics is at a very early stage, almost like the PC industry itself 30 years ago, where you didn't have common tools, things were doing things in a different way, and we think that can change. We think something fantastic can come out of this, and of course, what we bring to it is a desire to build the software tools, and software platforms that can make this happen.
So let me go ahead and invite Tandy Trower who runs our robotics group, he actually founded it, evangelized it, has a lot of passion for this, have him come up and talk to us about what we're doing.
TANDY TROWER: Thank you, Bill. It's a pleasure to be here. (Applause.)
Well, Bill, you've mentioned it just precisely correctly that robotics looks an awful lot like the early PC days. You know, if you look at -- you remember back in those days the engine of the business world was the mainframe. It was expensive, it took up a lot of space, required specialty operators, and was in no way really considered a personal type of device. And then things changed.
And in the same way robotics today has come out of that, is evolving out of that same world. Today, where we see robotics -- it's been popular for the last 20 years -- is in the industrial area, where again the equipment is big, it's expensive, requires specialty type of operators.
But we're already starting to see the emergence of a new generation of robots that are starting to move out of that area. You can see them already in the case of like smarter cars or smarter appliances, or even in the area of things like automated vacuum cleaners or the wide variety of toys that are out there.
But what I get really excited about is the generation of robots that we see evolving and starting to emerge right now, which are based on PC-based technology that have the same kind of capabilities that we see on the PC in terms of processing capabilities, as well as Wi-Fi capabilities.
BILL GATES: Well, as you get that kind of PC platform, it's almost like it's just a rich set of peripherals, and all the kind of software development opportunities are there like they were for the PC.
TANDY TROWER: Exactly, and that's why we launched -- as you know, we launched Microsoft Robotics Developer Studio as a special development toolkit that would enable people to develop applications more easily, that would help allow the emerging industry to bootstrap itself and provide a catalyst for more applications.
To show some of those applications, the platform of what we think is possible with those kinds of applications, based on this PC technology, I've invited some friends out here to come up on stage with us.
So, I'm inviting out the U-Bot and Patrick Deegan from the University of Massachusetts at Amherst. It's a part of Dr. Rod Grupen's Laboratory for Perceptual Robotics.
Since Steve couldn't make it with us today, we thought we'd provide a good substitute.
ROBOT: Developers, developers, developers, developers, developers, developers; developers, developers, developers, developers, developers, developers, developers.
BILL GATES: Good; we've got the Ballmer-bot pretty excited here. It's an amazing looking robot. It's just balancing itself, and fantastic.
PATRICK DEEGAN: Yeah, what you see here is the latest in robotics technology. The Ballmer-bot features a dynamically stable mobile base, a rotating torso, and two dexterous arms. This makes it so that it's even able to throw eggs. (Laughter.)
The robot also includes a 2 gigahertz dual-core Intel processor, 2 gigabytes of RAM, a six-gig hard drive, 802.11n Wi-Fi, and an LCD touch screen. Altogether this gives Ballmer-bot almost unlimited capabilities.
And to power this robot we're using Microsoft Robotics Developer Studio. Robotics Developer Studio provides us with a runtime that helps us coordinate our balancing and our motion. It also helps us with coordinating with a good model for composing software components.
It's also enabling us to develop new applications much faster by drawing upon the ever-growing library of services we've developed as we add more functionality to the platform.
We're also looking forward to developing applications on the U-Bot 5 that will transfer easily to new and different hardware. This will save us many months compared to development we've done in the past, due to standardization and hardware abstraction.
TANDY TROWER: Now, Patrick, have you been able to use the simulation application that we have included in Microsoft Robotics Studio?
PATRICK DEEGAN: Yes. Since we've only developed a limited number of these robots, we also have built a simulated model of the platform for use in Robotics Developer Studio simulation applications, so we can have more people develop and do productive work without having to run on the physical robot.
TANDY TROWER: You know, and Bill, speaking of simulation, I wanted to remind everyone here that Microsoft has launched a new competition that everybody here could participate in. It's called RoboChamp, and it's a series of competitions that will feature a number of different events. There will be an urban challenge like DARPA had, only a virtual version of that. There's a search and rescue simulation. There's a Mars rover, there's a maze; there's quite a wide variety of things.
But what I think people will find most exciting about this simulation competition is the fact that they can actually participate virtually, and win real robots as a result of through this program.
If anyone here is interested in finding more information about that, there actually will be a RoboChamp booth here at the event. Also people can find out information at Microsoft.com/robotics, or going to the RoboChamp site at www.robochamp.com.
Hmm, looks like the Ballmer-bot has something for you, Bill.
BILL GATES: This guy is pretty dexterous. I think he's handing that to me. Let me take a look.
TANDY TROWER: I wonder what it could be.
BILL GATES: It could be a message of some type. No, goodness, it's my Xbox Live lifetime subscription.
TANDY TROWER: Congratulations.
BILL GATES: Steve is so generous.
TANDY TROWER: That's great. (Applause.) I hope I get one when it's my turn to go. (Laughter.)
Well, thank you, Bill, for the -- (Laughter.)
BILL GATES: It's amazing to see how this is coming together, where you're taking the frontiers of development and advanced concepts like the programming model you've got and the simulation, and letting people explore the new frontiers. I think this is a real breakthrough, and we're on the verge of something exciting in robotics. So, thanks, Patrick, for coming and bringing the Ballmer-bot with you.
PATRICK DEEGAN: Thank you, Bill.
TANDY TROWER: Thanks, Bill.
BILL GATES: Thanks, Tandy. (Applause.)
ROBOT: Developers, developers, developers, developers, developers, developers; developers, developers, developers, developers, developers, developers, developers, developers, developers! (Applause.)
BILL GATES: Well, so we've done a quick tour of the different layers and the neat things happening there. It really comes back to the key things about this industry from the very beginning, which is that by having platforms that are very low cost and very high volume, and having the right kind of tools, we unleash a level of creativity that even surprises us in terms of what gets done. Whether it's doing specialized applications, whether it's doing productivity things that sell in the hundreds of millions, amazing advances will continue to take place. It's this dialogue of how do the tools and platforms improve, and then seeing the neat new things that really drives the very rapid innovation.
Microsoft is very committed to developers. It's been the center of the company and always will be, and we appreciate your support. Thank you. (Applause.)
SOMA SOMASEGAR: Bill, ready for some Q&A?
BILL GATES: Excellent.
SOMA SOMASEGAR: So, we are glad to have some of Bill's time here to do an open Q&A. I think there are four microphones lined up on the aisles here. If people can line up behind the microphones if they have a question for Bill, Bill would be glad to take those questions and answer them. We've got about 15, 20 minutes to do this Q&A here.
As people start to line up, Bill, we did ask for some pre-questions, and I have one question with me. Let me get started with this.
What is the future of Visual Basic? That's the first question.
BILL GATES: Super. Well, Visual Basic has been an incredible success for us, and something we've got a long term commitment to. Its ability to let you add in controls and have those rich libraries really brought it to the mainstream of building rich visual applications.
We took a great step forward as we moved that into the .NET world and put it on that shared runtime, but we also continue to do advances that are unique to VB itself. Some of the ways we've connected it up to LINQ; it's got a different style, different flavor, and that will continue to improve, and so that whole base of applications is very important to us.
We've also connected Office, and now we'll be connecting SharePoint up to that as well. So, through all our different development experiences VB plays a very central role.
SOMA SOMASEGAR: Okay, great. Let's go to microphone, to the gentleman there.
QUESTION: Well, thank you for inviting us here, and it's been a wonderful conference so far.
I'd like to ask a question. Do you have any plans to continue the famous top 10 lists? I haven't found it in the last couple of years.
BILL GATES: Well, I think actually comedians popularized that more than I did, and we've sort of in various events, some of which I've been at, we've done take-offs on that. I think it's sometimes a good way to be self-effacing about some of the things that haven't gone perfectly in the industry or things that Microsoft has done.
So, I think it's a good format. We wouldn't want be too predictable in always using that, but I'm sure we'll use that. And if you've got suggestions that belong on our top 10 list, please send them in.
SOMA SOMASEGAR: Let's go to microphone one there.
QUESTION: Hi. I'm Bill King from Bright Planet.
I have a question. It's a development question. I've been a Microsoft developer for about 20 years now, and I've embraced the Visual Studio paradigm, and especially with storing everything in a source code repository like SourceSafe, and now with Visual Studio Team System. But I've run into an issues being a SharePoint developer where I have -- I no longer have the option to take my work and put it into a source code repository, because everything goes into SQL Server, but there's no history maintained and things like that. I was wondering what you're planning on doing to address that.
BILL GATES: Yeah, when we started application development on top of SharePoint, it really was focused on fairly small applications, very simple things, kind of workflow where you were in the hundreds of lines of code, not often thousands and certainly not tens of thousands.
As SharePoint has caught on and become this standard tool that's used for the Web sites throughout a company, the external Web sites, the central Web sites, all the way down to the personal Web sites, the kind of logic people are connecting up to SharePoint is becoming full-blown very rich applications.
So, the need now to take and say, okay, when I'm working in SharePoint I can connect over to Visual Studio and have the applications stored there, that's something that we need to support.
Today, as you say, it can only be stored -- you have to manually move it into the SharePoint store. So, you don't have the same rich representation that we have over in that Visual Studio world. So, it's a natural evolution for us to connect up SharePoint to Visual Studio.
Really I can't emphasize enough how important SharePoint has become as a platform inside companies. It's what we wanted and pushed for, but it's in the last two years that it's gotten to that level, so now the connection makes sense.
SOMA SOMASEGAR: Let's go now to microphone four there.
QUESTION: Hello. My name is (Ahmed Sous ?), and I'm from Progressive Insurance.
I have a question related to your voice user interfaces. What's the plan, what's Microsoft -- does Microsoft have any plans for providing tools for creating voice user interfaces?
BILL GATES: Yes. Microsoft Research, going back a long time, was doing voice work, and we've had various development kits that we've put out that provide for voice recognition capability.
We continue to update those. We have a product called Speech Server that people have built applications around where you can call in, say, and ask about your insurance balance or your claims report or something like that, and the Speech Server actually can respond to those things.
So, we have a very rich set of speech recognition libraries. Those get richer and richer all the time. We also have very good tools where you can train the system in the kind of words that are used in your domain. That's what we've done. We had our Speech Server product, and then we bought TellMe. They came with a whole database of the kind of things people say when they want to refer to the name of a business, and so have that database. But for some of the domains you'll want to build up your own database and do those training things.
So, yes, the Microsoft runtime includes a very rich speech SDK and a way of connecting that up to that speech can be used in the general development platform.
QUESTION: (Off mike). Are you going to integrate those tools with your Visual Studio tools?
BILL GATES: Yeah, we've been -- there's various XML representations, including voice XML that we support.
Our whole thing has been to say that when you're interacting, it's not just speech with nothing that you can look at. We wanted a model that was rich enough to say, as I talk, I can see things on the screen, and more and more with phones or connecting voice up to your PC, it's not just speech by itself, it's speech and the screen. That's why we decided to take the XML for speech stuff to a new level and really say, as I'm speaking I want it to show me what it thinks it recognizes or be able to give a response where I ask for a list or the movie times or things. On my mobile phone I don't want to sit there and wait, if I can avoid it, and have it just read out the list to me. I want to say, you know, what are the movie times and then just look and have it be right there on my screen.
So, we've done some new things in the speech-related XML to support that visual and speech type interface, which people in the past have not thought about that; they've just thought about the old style phone that didn't have any screen at all.
SOMA SOMASEGAR: Let's move to microphone three now.
QUESTION: My name is (Muktu, Muktu Venkatarahman ?). I work for (National City Corporation ?). It's a pleasure and honor to talk to you, Bill.
In today's presentation we saw quite amazing things, the present visions and the future visions of Microsoft.
The question that I have is more generic. If you look at the present world and its setup, there are major problems around areas like global warming or rising oil prices. When it comes to the rich Internet content and documents and information that is exchanged in the present world and some of the future visions that we saw here, and an interesting article that I read a few months ago that comes to my mind is about Internet meltdown, because of the risks and things that are involved around the contents that are exchanged, some of the things even Soma talked about, if you have content exchanged via lower bandwidth connections and so on and so forth.
Is Microsoft doing anything in particular about addressing the contents exchanged, and especially around Internet meltdown in the coming years that has been forcing as one of the problems, but not necessarily given specific focus on?
BILL GATES: Well, there are several things there. Certainly the richness, the way we've stored data and do that in redundant ways means that the Internet is more robust today than it's ever been. That's critical because people are using the Internet now for things like patient records and keeping factories running and supply chains that are very important. So, this idea that we take the largesse we get from all these hardware advances and low-cost storage, and we create the redundancy that means the system has more resiliency, that is very important, that's stepping up to the level of needs that's there.
In terms of the Internet bandwidth, I'm not someone who thinks there's going to be any type of meltdown; that is, the ability to increase the backbone speeds and the various ways that the network connects, we'll be able to scale up with the increased demand that's there.
It's really video is driving a lot of that demand, and there will be some parts of the world where you won't be able to get high-definition video or you'll pay quite a premium price for that.
But if you look at the really utilitarian uses of the Internet, a lot of those can be done at fairly low bandwidth, even with a cell phone in a rural village in say Africa or India looking at the crop prices or your health records or getting advice and things like that.
So, we will have to start to think of the Internet as including parts that are not super high bandwidth and adopting applications for that, and then another part which is more in the rich world urban type area where you can assume that type of very high bandwidth.
We've always had a little bit of that with dialup, but now it's clearer. It's different geographies that bandwidths will proceed at different rates.
I definitely believe that what goes on with software in the Internet is the enabling set of tools that allows us to be optimistic that innovation will take food, supply limitations or energy environmental impacts or energy prices, and drive the scientific advances that will let us have the breakthroughs so that there aren't the shortages and high costs there. In fact, that's absolutely important to drive particularly the welfare of the people most in need.
Microsoft Research has an amazing set of relationships now with universities and others to make sure that we're providing the software tools for cutting-edge research, whether that's biology, taking genomic information that you want to model and look at in rich ways and use the database in various special ways or visualization platform.
On my college tour a few months ago, I showed how we're taking brain connection data and taking some of the visualization runtimes that Soma showed, and connecting that up. It's a Windows Presentation Framework type application.
So, we taking our expertise, what we're good at, which is software research, and then connecting out to that science community, I think that's the kind of foundation that means that people are vastly underestimating the kind of research that will go both into keeping the Internet robust and running well, and into the scientific advances we need for even basic things like health and energy.
SOMA SOMASEGAR: Great. Let's go to microphone two here.
QUESTION: My name is (Balo Halter ?). I see there is a lot of opportunities for developers in the health sector. What is the near future of Microsoft in the health sector?
BILL GATES: Well, I totally agree with you that the health sector is a huge opportunity on a global basis. The amount of money being spent on health keeps going up. The need to look at that data, both at a personal level and at a society level and understand how drugs are working, and be able to model more in advance what drugs may have bad interactions and who they're appropriate for, even matching in some cases to the genetic data we have about people to know about those interactions; so immense opportunity.
Our main role for health care development is the horizontal work we do, where we provide the tools that you use to solve particular health problems. We actually do have a group under Craig Mundie that is doing specific health development. We have a platform we call Amalga that takes data within the hospital and brings it together, lets you visualize that in a rich way; we have some applications.
And then we have what's probably most interesting for developers is a thing called HealthVault where you can take data from different applications and store those in a way that the patient has the ability to authorize the information to be shared with various providers or shared with their relatives and integrated together. So, even things they acquire themselves, like their exercise data or heart rate and things go into that HealthVault store, and only they control how that access works, because the privacy issue is a big one, and it could actually hold back a lot of this development if we don't have the software foundation for it.
So, we're doing some particular things there, because I'd say it's one of the biggest areas of opportunity, but our biggest thing will be the horizontal things you saw today, and how you use those for health care applications.
SOMA SOMASEGAR: Great. Let's go to microphone one there.
QUESTION: Hi. Good morning. I'm interested in knowing about the Fast search acquisition, and when we can expect to see some of that really built into the technology stack for developers.
BILL GATES: The whole idea of search, whether it's at the desktop level or the business level or the Web level, has been very explosive, and we were very excited -- it was really our SharePoint team did the acquisition of Fast. They did high-end enterprise search.
The boundary between sort of text indexing and structured database indexing, historically those were two very different things where you indexed documents and you indexed databases. Now a lot of the exciting action is sort of at the intersection where you take structured data sources like a product catalogue or a price list of the Active Directory and text type sources like your documents, and by seeing the information that comes from both domains, let people navigate information in a rich way. The Fast people had built a platform that really allowed for that.
What you'll see at first is Fast is an extension of SharePoint that you can buy the Fast type server and do the development there. Then you'll see us take our SQL work and the Fast work and really bring that together where you'll think of it as Fast, but it's built on top of SQL, and so their rich text understanding goes together with our rich database platform, and that's just available to developers like all those SQL things.
So, first in SharePoint, and then -- and by itself as a development platform, and then the roadmap is to bring that together with SQL.
QUESTION: I'm (Sheila Shovelin ?) from FedEx.
I have a question. You mentioned modeling tools as being a focus. Is there any effort being made to couple with the initiatives of the object modeling group?
BILL GATES: Yeah, which standards is object modeling group in? OMG, is that the --
BILL GATES: UML, okay.
QUESTION: Like the class diagrams you have in Visual Studio, they're not quite UML.
BILL GATES: Right. Yeah, we'll have additional support for UML in Visual Studio 10 for the specific modeling tools that are there. Then as we move forward and take the modeling platform to the next layer, we'll get even more ability for you to create your own models.
So, you're absolutely right that the modeling world is fairly disparate today. Even at Microsoft our people who do our business applications have some of their modeling environment. Excel in a sense is a pretty limited modeling type environment.
The thing that we've recognized is that by bringing those things together we can actually enable new things like what you do across the lifetime of an application. And underneath these models we actually use UML.
We think it's very rare -- a very rare person would actually want to look directly at the UML because it's so kind of abstract, but underneath, both in terms of exchange with other people's products and some of the exchange we're doing between our own products, we do have UML based subscriptions of these models.
I'm not actually a UML expert. Hopefully, we have some breakouts where we can get more into that -- okay, I guess (Brian Harry ?) will do that, where you'll get more of a sense of this modeling roadmap, and how we connect up to all the modeling standards.
SOMA SOMASEGAR: Great. Let's go to microphone three here.
QUESTION: Hi. (Marshal Rosenstein ?) from ASE Technologies.
You've probably heard about the hundred dollar laptop initiative at MIT. I was wondering, in your charitable work do you have any plans for innovative use of Microsoft technologies to assist with that, and also how can I volunteer?
BILL GATES: Well, Microsoft has done a lot of things to take technology and get it out as broadly as possible. One of the best projects along those lines was taking all the libraries in various countries and making sure there was a great PC there connected up to the Internet with the latest software. We put 70,000 PCs in U.S. libraries. We did it in Canada and Chile and Mexico, and now we have five more countries, and that actually is a joint project between my foundation and Microsoft. The foundation funds the hardware, Microsoft comes in with the support and the software. And that means any kid who can get to a library can get to the Internet, and it's been fantastic to see how well that's been used.
Now, taking that down to the individual level, that certainly is a dream. It's a dream we share with the OLPC project and others is to get that student tablet device to be low-cost enough.
There are always issues about the hardware tradeoff. They announced just in the last few months that they'd be supporting Windows as one of the software packages they offer.
The complexity of actually delivering into these developing countries in terms of the training, the maintenance, getting the network ready, many projects, not our libraries project, but many of them have been kind of naïve about what's really required. You do the big announcement, but then go back a month or a year later and see how many people are really using those things, what about the network connectivity.
So, this is not a super easy thing. We have a whole project group that's focused on getting computing out to the what we call bottom of the pyramid, the 2 billion people who today don't have that access.
Now, some of that will be in a more creative form than just a PC. We'll run on OLPC, we'll run on different low-cost machines. Intel has a thing called Classmates that they've done a good job getting the price down.
For some of these environments it will be more the cell phone is your first computer. And our lab in India has done some brilliant work looking at how cell phone access and video type capability, even just DVDs taken down to the village level, can empower people in new ways.
So, I'd encourage you to look at the Web site that has the work of this Microsoft Research group where they've put out proposals and had a lot of people participate.
So, yes, I'll get lots more time on ideas on how technology can help not just the richest half of the people but the poorest half. That really is the primary focus of what my new activities will be.
SOMA SOMASEGAR: Bill, we are running out of time here. So, we probably have time for just one more question. So, we'll take the last question here from microphone two.
QUESTION: Thank you. My name is (Mark Donahue ?). I'm from General Mills.
My question is regarding Win Forms and Web applications. With WPF and Silverlight it feels like those two environments are being merged together. Do you foresee a point where there will be no distinction any longer, and if so, how soon would that happen? Do you have any thoughts?
BILL GATES: The answer is yes and no. If the question is, will WPF be a perfect superset of Silverlight, then the answer is yes, that you'll be able to do amazing things in Silverlight, but there will always be things that you can do in Windows Presentation Framework that you can't do in Silverlight.
Why is that so? Well, it's so because with WPF we get to assume we have the full power of the PC; we're not just running in a browser environment.
So, take things like 3D type things, virtual world type things, take things like ink recognition or playing video back at arbitrary speeds. WPF will, because it can connect in to all of Windows, expose those services and let people do new things.
Now, the Silverlight experience, as you saw, has gotten -- is going a long way and it will do some neat things. So, if you want to do reach type presentation, we say Silverlight is the best way to do that.
We need to keep the Silverlight download to be fairly modest. So, if you think of what that will be versus the entire Windows environment, we have a much bigger runtime to call on. So, we're not saying that those get absolutely merged, but we will have exactly the right relationship. And even as you're in Visual Studio or in the Expression tools, you'll be able to say I want to author for the Silverlight piece and to let you know that if you're sticking to the things that work in that world.
So, Silverlight will probably have almost everything WPF has today, but WPF will keep getting richer and richer as we go forward.
SOMA SOMASEGAR: Okay, thanks, Bill. Good to have you here.
BILL GATES: Thanks. It was a lot of fun, and thank you all for coming.
SOMA SOMASEGAR: Thanks. (Applause.)