|
Remarks by Bill Gates, Chairman and Chief Software Architect, Microsoft Corporation
Microsoft Mobile Developers Conference 2004, VSLive! San Francisco 2004 and SpeechTEK Spring 2004
San Francisco, California
March 24, 2004
Watch Bill Gates' Presentation
Watch a video of Gates' speech (available through June 24 from ftponline.com). You can also view the PowerPoint presentation that accompanied Bill Gates' keynote:
Download Microsoft PowerPoint 2003 viewer. |
ANNOUNCER: Ladies and gentlemen, please welcome the president of Fawcette Technical Publications Incorporated, Jim Fawcette.
JIM FAWCETTE: Hello, good
morning. Welcome to
all our VSLive attendees, to our
Microsoft Mobile DevCon
attendees, and to the AVIOS-SpeechTEK
attendees. We've
had to pull of a lot of things, and
required a lot of
cooperation from many teams and
companies to bring all
this together. But I think we have a
very ambitious
conference that will give you a unique
view of technology
from the data center all the way out
to the hand-held.
We're pleased to have Bill Gates,
Chief Software
Architect for Microsoft, returning to
lead our keynote
today. Many of you saw Bill on
Valentine's Day 2001
introduce VisualStudio.NET. That was
a very exciting
event. This one, that's something to
set a benchmark for,
but I think this one may challenge it.
We have a keynote
packed with lots of product demos.
So, I'll be very
brief.
I need to thank a number of
partners, though. First,
the Visual Studio Team that we've been
working with for 15
years, the Microsoft Speech Team,
which will be showing
you Speech Server 2004, and of course
the Mobile DevCon
Team. Also, our platinum sponsors, H-
P, Intel, Microsoft
MapPoint, Motorola, and Symbol.
One logistics note, after this
keynote, you can split
up into your individual areas. The
speech people will go
across the street to the Metrion to
see Kai-Fu Lee's
presentation on Speech Server. Mobile
sessions are in
another area in this same building.
And the .NET Day will
continue in here.
So, let's get on with it, we have a
great feature
packed keynote, and let's start the
conference.
(Applause.)
ANNOUNCER: Ladies and
gentlemen, please welcome
the chief software architect for
Microsoft Corporation,
Bill Gates.
BILL GATES: Thank you.
Thank you. Well, I'm
excited to be here today talking to so
many developers
about the next generation of
applications. The success of
computing, the success of our
industry, the success of
Microsoft, all of these things have
been driven by new
applications, and new applications
come because we have
powerful tools and platforms. The
advances taking place
in each of those areas is more rapid
today than ever
before. And so, today we want to
touch on the kinds of
applications that are going to come
out of it.
Over the decades, there have been
various things that
have really limited what applications
can do. In the
1980s, memory size, the processor
speeds, really made
things tough. We were stuck with
character mode
interface. We couldn't do very big
applications. And
applications were pretty simple as a
result of that. By
the end of that decade, though, we
started to get some
powerful machines, and that's where
graphics came in.
In the next decade, we didn't have
the machines
connected together, and year after
year we'd say, well, is
this the year that the network, is
this the year that it
will explode into critical mass? And
certainly in the
late 1990s, with the technologies of
the Internet, that
happened. Today, we can think of bits
flowing essentially
between any intelligent device on the
planet to any other
intelligent device, and that's a
phenomenal foundation
that has us thinking about the kind of
applications that
we can build.
But there are still some very key
limitations. When we
think about software talking to other
software, the
protocols, the way that data is
represented, it's only now
in this decade that the XML schemas
and the Web services
protocols that allow any piece of
software to connect up
in a rich way and exchange meaningful
information
reliably, transacted securely, only
now are the pieces
coming into place. And it's very
timely because the
number of applications that have
immense value,
applications around e-commerce,
workflow, these require
that kind of foundation. And so
there's investments
across the industry in developing
those standards and
developing the platforms that deliver
on software
connections. At the same time, of
course, we have quite a
variety of devices being connected up
to the Internet, all
the way from the watch-type device,
like the SPOT watch
that I have here, smart cards, pocket-
sized devices,
phones which are getting richer and
richer, even things
like digital cameras, GPS locators,
all now being
connected up, then mobile personal
computers, all the way
up to the large servers, that can run
the most demanding
applications.
So we won't have many different
networks, the TV
network, the voice network, the data
network, all of these
things will be the same, and they'll
be driven by rich
applications. Even things like the
set-top box and the
videogame, those platforms will come
together, and your TV
screen will be connected the same way
that your PC is
providing a seamless experience there.
So with all these different
devices, that's a lot of
complexity. And so people have to
create their own
protocols, create their own run times,
they won't have the
time to focus on the application
functionality. So, the
power of the platform, both the
standards across different
platforms, and the power of the
platform itself has to
step up to this new level.
Now, before we focus on that, it is
important to
remember that Moore's Law-type
improvement is giving us
headroom. Even though we have had
powerful PCs for a long
time, the increase in power is letting
us be more and more
ambitious. Moore's Law rate of
improvement exists not
just in processor speed, but also in
storage capacity. In
fact, that goes even faster. The
speed of optic fiber
connections go up at sort of the same
exponential rate.
The world of processors, we're at this
nice milestone
where we're moving up to a 64-bit
address space, that's a
substantial increase, it ought to last
us quite some time.
And for the first time, we can say
that the servers, the
industry-standard servers, are not
only the best in price
performance, but they're the best in
terms of absolute
performance, and that's true across
many types of
benchmarks. And so we're seeing the
migration away from
the lower-volume, higher- priced
servers on to the
industry-standard servers. And
there's a lot of
simplification that comes from that,
because the
mainstream tools, the mainstream run
times are available
with the Windows platform on the
server.
Things are being connected up
wirelessly. This is, of
course, an explosive area. WiFi being
something we'll
have in all our mobile devices, the
arrival of some other
wireless technologies over the next
years, so-called
"ultra" wideband. For extremely high-
speed connections
that provide USB or 1394-type
performance, but on a
wireless basis. Over long distances
the arrival of WiMax
will give us easier broadband
capability, being able to do
that at low cost, and finally get that
to be pervasive,
and something we can assume, even for
people who are
connecting up from home, not just
connecting up from
business.
The actual PC itself is becoming a
phenomenal device.
We have to think about the large
screen size, and the fact
that people want to have lots of
different information up
there. The way we manage Windows, the
way we do our
interfaces, has been affected by the
fact that large
displays are getting very inexpensive
there. Not only do
we have clock speed increases, but
we'll have multiple
core devices. So thinking through how
we can take
advantage of the thread parallels, and
that those cores
essentially give us free execution
speed there, that's a
very, very important technique.
The graphics processors are
exploding in power. And
that's partly why in the next major
update of Windows,
Windows "Longhorn," we're doing a lot
in the presentation
system that fully exploits what's
going on with those
graphics processors. So a lot of
hardware innovation, no
slowdown in this at all. In fact,
everything we can dream
of in terms of hardware power we're
getting.
A good illustration of that is that
this watch I'm
wearing has literally 10 times the
power of the original
IBM PC. We struggled mightily to get
a basic interpreter
and Fortran and COBOL running on that
original PC. Well,
here we have 10 times the RAM, 10
times the clock speed,
and we can download these .NET
applications. So whenever
you come up with some new viewing
idea, whether it's
sports viewing, weather, financial,
whatever is
interesting, you simply use the
wireless network and
download those programs into this
device.
A real theme today is having a
common set of
development tools for all types of
applications, making
the same tools be able to target the
different devices,
and different classes of applications,
and bringing those
things together, so that it's not like
you have to pick
different tools for different things.
Now, I said that
we're connecting things together,
connecting hardware and
software in some pretty rich ways, and
we've had some
breakthroughs in that. In fact,
they're kind of exciting
enough that we've thought about
putting together an
advertisement that shows how, really,
we're going to get
all of these things to connect
together.
So I'd like you to look at this ad,
and let me know if
you think it's ready for prime time.
(Video segment.)
That was exciting. So the theme is
seamless computing,
having the information available
through these rich
applications, connecting the hardware,
connecting the
software, and having powerful
visualization. These are
the broad themes that our record level
R&D budgets are
going after. In fact, our R&D budget,
as it's increased
over the years, is actually now the
largest of any
technology company, substantially
larger even than IBM,
who is the traditional leader. Yet,
in our case it's all
focused on software and focused on a
uniform software
environment. That's because the
opportunity we see to
drive forward seamless computing,
including the things
we'll talk about today.
The focus today is going to be on
how mobility Web
services, speech and location type
capabilities are going
to come in and be aspects of
applications. Yet, that can
be done using the same tools and
languages that people are
familiar with, without saying, okay,
you have to go off to
a new world and give up some of the
things you had before.
In fact, as you move up to the new
versions of the tool
you just get a more powerful
environment.
Building applications is harder
today than ever before.
You've got the existing code to worry
about, you've got a
requirement for many applications that
they run 24 hours a
day very reliably, and so you have the
whole boundary
between the developers, and the
operational environment,
and how information flows back and
forth between them.
There's a lot of existing code. Not
that many
applications are completely from
scratch applications.
And so connecting up to those things
is very difficult,
and the expectation for quality is
very high. Then of
course we've got the security
challenge, people trying to
find any exploitable thing in the
application, to either
bring down the Web site, or to
propagate code that does
malicious things. So it's harder than
ever to develop
applications. And it's really up to
the tools to help
make sure these things aren't
overwhelming and don't slow
down the progress in terms of great
applications.
So Visual Studio is our answer to
this, the commitment
to have a tool, the commitment to work
with developers,
that's been key to all the successes
Microsoft has had.
In fact, today in the Wall Street
Journal it's talking
about a presentation that Jay Allard
is giving today at a
game developer conference, saying we
just want to have the
common tools between Xbox development
and PC development,
that's all extensions to Visual
Studio. Likewise, for
mobility and speech, it's extensions
to Visual Studio.
When we talk about connecting
things, we're talking
about not just the hardware
connections, but connecting up
to these different applications. And
that's where Web
services come in, not that you have to
build applications
anew around Web services, although
we're very excited
about that, but rather than you can
even wrap existing
applications in Web services, and have
them participate in
an integrated environment. So a lot
of our work has gone
into those Web services standards. A
lot of our best
people, a lot of cooperation with the
relevant companies
in the industry, making sure those
protocols are just like
the Internet protocols, that is, they
are standard across
the different systems. People will
compete on whether
they implement those in a low-cost,
easy-to-develop way,
but the actual base Web services
protocols will not be a
point of differentiation.
As we move Visual Studio forward,
the next major
version is called Visual Studio 2005.
Some of you have
probably heard that referred to as the
"Whidbey" version.
That's the code name. This is very
major release for us,
and there's quite a few themes. Web
services is certainly
probably the top theme here. For the
first time, making
it really straightforward to write
those Web service
applications. There's a lot in
productivity that we've
done. XML is finding its way in, of
course, related to
Web services as well, finding its way
in as a tool that
we're using, and something that we're
very rich in dealing
with.
For many common scenarios, we're
making application
development require half as much code.
And, in fact, in
the history of programming
development, it's really only
advances that reduce the amount of
code you need to write
that are relevant. Reusing existing
code, expressing
things in a higher-level way, that is
the fundamental
metric of advance that we have here,
and this is a big
part of that.
We do integrate in support for
connecting applications
up to Office, connecting up to SQL
Server, even to the
version that will come out about the
same time as this,
which, again, has a major theme of XML
and Web services.
And here for the first time really, is
device development,
letting you target phones, PDA-type
devices. That's all
built in.
So this tool is central to our
strategy, and in fact,
you could say it's the third pillar
going along with
Windows and Office. There's a lot of
language innovation
here for Visual Basic users, probably
the thing that
they'll be the most excited about is
we've brought back
edit-and-continue, which has been
highly demanded, let's
say. (Applause.)
We've also got a lot of extensions
to languages,
generic iterators, in C# the partial
types, new
overloading, C++ we have templates
that include the CLR
capabilities. We have new libraries
like stl.net library,
and there's a big feedback loop that
takes place here that
drives our priorities in terms of what
we want, what you
want to see in this tool, and
therefore what we build into
it.
I mentioned quality and security is
a very particular
focus here, certainly for Microsoft
that's been our top
priority, even more than the new
features we're doing, the
development of "Longhorn," all the
things about isolating
networks, so that malicious code can't
spread and do bad
things, that's been a huge effort.
And the Visual Studio
group has participated in that. In
fact, as part of our
security effort we've invented a lot
of tools that look at
code and examine it, statically, for
certain types of
flaws. So we're using that ourselves,
it's called
PREfast, and we decided wow, this has
been so effective at
finding flaws we actually need to get
it out for
developers. So this PREfast
capability will be built into
the Visual Studio product. In fact,
it's a very sensible
thing, if there's development patterns
that might be in
error, you can put in recognition
rules in those, so
extend it into your application domain
to find an even
broader set that we preprogram it to
find.
We have security capabilities,
like, if you're
developing an application that you
don't want to force
people to be in admin mode, you can
ask the development
tool to run in a way that it will
error-out anything that
doesn't work in normal user mode. And
there's big push
for Windows applications to make sure
they don't require
administrative mode. There's the new
managed APIs,
there's new compiler switches to
generate code that is
immune from certain types of attacks.
So I would say a
substantial number of features related
very specifically
to the quality and security
initiatives.
Now, another thing that is a very
big deal for us is
the idea of feedback from users.
Software has changed
from being something that the user
gets the bits, and they
just use those bits in isolation, to
something where they
get the bits, and, as they use the
software, any feedback
or problems with that software get
relayed to the software
developer, and then updates of a
certain type can be sent
out on an ongoing basis.
This paradigm is a very is a major
shift in terms of
software. We saw it at first in terms
of simple crash-
type reporting. Windows XP and many
of our other products
have this ability, if something hangs
or crashes that you
optionally can send that report back
to us. Well, in
terms of analyzing problems in device
drivers, problems in
third-party applications, and how they
interact with the
system, where fragility is, having
that database has been
a phenomenal thing.
We are also extending it. Take,
for example, Help.
Office 2003, when you type in a help
string, if you're
offline of course it goes to the local
help, but if you're
connected it goes up to our Help
information that we store
on our servers. And so the Help is
way more extensive,
and we can update it on an ongoing
basis. And then we ask
people to rate whether the Help was
what they wanted, if
it solved the problem they were
interested in, and so, on
a monthly basis, we're reviewing those
ratings, and we're
offering those Help topics, and we're
actually taking the
boundary between the Help world and
the Knowledge Base
world where people analyze technical
problems, and really
breaking down that boundary so that
Help queries can get
you the latest information based on
the version of the
system and things that you might be
interested in.
And so, connecting up applications
to these reporting
databases. That's something that we
want to make easier
and easier in the tool. We think
every application, no
matter where it runs, the developer of
the application
should have this type of information
available to them,
corporate applications, mobile phone
applications, it's a
real philosophy that is pervading the
platform and the
tools, and that I think really
strengthens how usable
applications will be.
Visual Studio 2005
I've talked a lot about Visual
Studio 2005. We're very
excited about this. And I think the
easiest way to
understand
some of the improvements is to see
them in action. So let
me now ask Jay Roxe to come out and
give you a glimpse of
some of
the neat things that are in this next
tool release.
(Applause.)
JAY ROXE: Thanks, Bill.
Good morning. I'm very excited to
be here today to
tell you about Visual Basic 2005 with
its renewed focus on
developer productivity. As we go
through this demo,
you'll see how we've made it easier to
develop
applications, debug them, and deploy
them, with a greater
than 50 percent reduction in code in
many common
scenarios. We'll take care of the
nitty-gritty in an
enterprise scalable fashion, and leave
it to you to handle
the real thinking about the
application that you're
building.
So, let's dive into this demo. The
Consolidated
Insurance Company is building a claims
processing
application that will be used by its
adjustors in the back
office. It will need to display
things like a photo of
the accident, a description of what
happened, and some
information about the client. In true
Julia Child
fashion, I've pre-baked parts of the
UI, and we're going
to go in and finish it up. This data
sources window is a
new feature in Visual Basic 2005 that
provides a holistic
view on my application's data. If I
come in and say, add
new data source, you can see that I
can add a connection
to a database or Web services, as I
would expect, but
something that's new in 2005 is the
ability to treat a
business object, an object that you
may already have
written, as one of your data sources.
We'll automatically
examine the public property of this
object, and infer a
schema of it for you. So, if I select
object, and I just
take Consolidated claim object, which
is just all of the
information that I have about a given
claim, you can see
that I've automatically generated a
schema over here, and
I can now choose how I want to display
that in my
application. By default, I get a
data-grid view, but I
think for this app it makes a little
more sense to have a
detailed view. So, I can just drag
that in, and it will
automatically build the UI, including
the navigation for
you.
Now, if you're binding against the
database, we know
where you're getting the data from.
However, developers
store objects in many different
places, so you need to
write just one line of code to tell us
where to get that
information. So, I will just go ahead
and set the data
source here. And what this Get All
Claims method is
returning is a generic collection of
claims, generics are
a new feature in 2005 that makes it
easier to build
strongly typed methods and objects
such as this
collection. Visual Basic is going to
support both the
creation and consumption of generics.
So, something the developers have
told us is that they
love the breadth and scope of the .NET
Framework, but the
size can sometimes be a little bit
intimidating. And one
of the ways that we're addressing this
in 2005 is with the
My option. You can think of My as
being your speed dial
into the .NET Framework. With things
like My Computer
providing access to the file system or
the printers; My
Application providing versioning
information; you can get
user information, resources, settings,
and a lot of things
developers use every day when building
their applications.
So, what we're going to build here is
a quick print
preview. So, I can say, My Computer,
printers, and use
the default printer.
Now, another way that developers
write code, and I know
I do this when I'm writing something I
haven't done
before, is go out to the Web, find a
snippet of code, copy
and paste it into their applications,
modify it a little
bit, and use it. How cool would it be
if the IDE
supported that for you automatically?
Check this out. If
I come in, I can say "insert snippet,"
you automatically
have access to a library of snippets
for things like
accessing data, working with forms,
working with XML, and
we're going to ship more than 500 of
these snippets. More
importantly, however, we've made it
easy for you to define
your own snippets that you can use in
your applications,
share with people you work with, or
share with the larger
community of snippet authors out on
the Web.
So, Consolidated Insurance has
defined a template that
they use for their simple reports, and
I can come in here,
and as you see all of the areas that I
need to change to
have this make sense are highlighted
in yellow, and I can
simply tab between them. OK, that's
all the code we need
to write for this application. But,
before we run it,
let's take a step back and think about
what we just did.
With one drag and drop, one line of
code, one use of My,
and one code snippet, I've just
completed what previously
would have taken me dozens, if not
hundreds, of lines of
code. And this just goes to the
increased focus on
developer productivity.
So, if we go ahead and run the
application, as this
comes up, you'll see that hydroplaning
is a condition that
can occasionally cause a driver to
lose control of their
vehicle. We'll give this just a
second to finish
building. OK, if it was ready we
would have shipped it
already. OK, there we go. So, you
can also see that our
dedicated Consolidated Insurance
claims adjustors are on
the scene before the accident has even
finished happening,
so that we can get all of the
information that we need
about this accident.
The other thing you'll notice is,
this Windows Form
Tool Strip, which is a new control
that makes it easier
for me to build a professional Office-
like UI. So, we'll
come over here and run the print
preview, ooh, I hate it
when that happens during one of Bill's
demos. Okay, what
this is, no reference exception, this
exception assistant
is actually a new feature in Visual
Basic "Whidbey." It
gives me detailed information on what
the exception was
that occurred, and how I go about
fixing it. So, what I
need to do is come up here, and assign
it a value, and
I'll just take the current value from
my claim data
connector, drag the cursor back up,
and for any of you who
just missed that, I just edited
running code. Ladies and
gentlemen, edit and continue, the most
frequently
requested feature in Visual Basic is
back in 2005.
(Applause.)
OK, so now we've finished writing
the application, and
our next challenge is to actually go
deploy that
application. We made tremendous steps
in this direction
in 2002 when we introduced Xcopy
deployment, and solved
this problem of DLL hell. We're
taking this one step
further in 2005 with Click Once which
will automatically
deploy not only My Application, but
also its prerequisites
with the simplicity of Web deployment,
yet the richness of
client deployment.
So, I can come in here, I say
publish, and I can choose
where to publish. In this case, I'll
publish it to the
Consolidated Insurance Extranet, make
it available online
and offline, and Click Once is going
to automatically
build the deployment page for me that
will deploy not only
the Consolidated applications but also
any of its
prerequisites, such as the .NET
Framework.
Now, we've deployed over 80 million
copies of the
Framework, but this is a great way for
ISVs and other
software providers to ensure that the
Framework, and any
other prerequisites are available on
their customer's
machine. So, with one click, I can
deploy the
application, verify the requirements,
and install the
application and run it on my user's
machine.
So, what have we seen in this quick
demo? We've seen
how we've made it easier to develop
applications with My
and Intellisense code snippets, to
debug those
applications with the exception
assistance and the oft
requested and now returned Edit and
Continue, and then to
deploy those applications using Click
Once. And all of
this with more than a 50 percent
reduction in code in many
common scenarios. This is not only
the most powerful
version of Visual Basic ever. It's
also the most
productive. You'll be getting copies
of this. I'd
encourage you to install it, try it
out, you're going to
love it.
Thank you very much.(Applause.)
BILL GATES:
We're moving towards a first-half
2005 release of the
Visual Studio product, and as we move
towards that, we've
increased the number of resources that
go with it, the
add-on things, the community outreach
is part of this. A
new element to this is that we'll have
releases on an
ongoing basis. And, in fact, here
tomorrow you'll have
the latest release, that will be
available to all of you,
of Visual Studio. And we really want
you to both try it
out and give us your feedback. So as
we move to get this
thing final, it will have exactly what
you're interested
in.
Mobile Space
Let's focus a little bit on the
mobile space. The
mobile space is one of the most
exciting new arenas for
applications. When people develop
applications today they
want to have access on a mobile device
for some of the
information coming out of that
application. And
initially, the development environment
for mobile
applications was very, very different
from classic server
or PC-type applications. We want to
make sure that not
only can these applications be rich,
but that they fit in
with the code that's running in the
other environment. In
fact, we'd like to make it just
trivial to say, OK, let's
target some of the output of this
application to these
devices.
Now, this is very tricky, because
there (is) way more
variety on these devices than on the
personal computer.
For the PC we've abstracted a lot of
things, so that
applications don't have to think about
keyboards or screen
resolution nearly as much as they
typically had to do on
the mobile devices. Yet, the mobile
devices are getting
to be so popular that people want to
overcome that.
The Web service focus that I talked about earlier is applicable in this space, as well. In fact, we had a major announcement last year with Vodafone about creating an association of people to really define exactly what Web service calls would look like for the mobile space, location information, authentication information, billing information -- in fact, we want those Web services calls, where it's appropriate, to be the same in all different device environments.
We are also participating in providing Web services for mobile devices with a thing we call the MapPoint Location Server. This came out last week in its final version, and it lets people, companies who have mobile workers actually be able to take the GPS data, and send that out to a Web service, and we give them a map, and distances, and all the type of geographic information that they might be interested in. And we're working with a lot of the mobile providers so that those APIs work through their devices, for example, Sprint and Bell Mobility are saying to their customers, if you have those mobile devices, then this kind of mapping information can be tracked very straightforward, and fed into other applications. So the location capability is coming into this mobile environment.
The pocket devices, phone and PDA,
really the trend is
to have the best of both together.
The phone is no longer
just a voice-only device; more and
more it has that rich,
color screen. A PDA is no longer a
disconnected device;
more and more it's got the ability to
make calls and
connect up to wireless data networks.
In many cases that
will be both the wide area data
networks, 2-1/2 G, or 3G
networks, but also increasingly you'll
have WiFi
connectivity built into the device, as
well. So it will
be able to connect up to whichever
network is available,
whichever one provides the best
bandwidth, and economics
there. So the boundaries of what
these devices look like
is not they're not as separate as
they used to be. In
fact, there's phenomenal innovation in
this, as we see
this grow.
Now, a lot of the excitement here
is not just in the
United States. In fact, some of the
leading trends in the
use of these devices take place in
Europe and Asia. And
that's where we see a very strong
demand from developers
to make it easy to do very, very rich
applications. We
are just one of the software platform
providers, of
course, there's companies like Nokia
and Palm and others
building software for these devices.
But, we, in this
area as well, have a very high level
of investment, and
have a lot of momentum. We've got 37
different people
building hardware, 50 different
operators.
In the Pocket PC space we have, by
many measures, the
largest share. The Smartphone space,
a growing share, and
particularly if you take the
enterprise market, where we
are actually a leader already, where
people want corporate
applications. The kind of development
tools,
manageability, alignment with the PC
platform has allowed
us to lead in that space, which is
actually for many of
you the greatest opportunity space
that's out there.
There's a lot of industry
initiatives bringing the
protocols and Web service approaches
to be not only common
within the mobile industry, but common
to the non-mobile
world, as well. And so we're members
in Open Mobile
Alliance, GSM Association. Recently
there was an
announcement between ourselves and
some other key
companies about having a domain name
that will let you
know that a site is optimized for the
mobile experience.
And yet, having that site connect up
through all the
normal Internet standards. So we're
very excited about
that. We have gotten quite a bit of
application
development going on, but those
developers have told us
some things they want to see to make
it even easier to
build these applications.
Now, we update our mobile platform
every year, and so
the mobile platform for this year is
the 2003 platform.
We're actually doing an intermediate
release now that we
call Second Edition, that has some
additional
capabilities. This has to do with
getting the screen
capabilities, very rich, simple screen
capabilities,
including change in the orientation,
supporting high
resolution, getting those things to be
standard, so VGA-
type capability, the QVJ-type things.
So we'll have more
device innovation, we'll have
different form factors.
In fact, a good example of a device
that's using these
capabilities is this Motorola MPX.
Let me just go over
and get this. So one way you can use
this is just flip it
up and use it like a phone. And you
can see, you've got a
keyboard here that's got the typical
numeric capability,
and you can see the orientation makes
sense for that. But
the way Motorola has designed this,
you can also open it
up this way, and of course you see the
software
automatically can tell which
orientation you're using the
screen in, and so now you have,
essentially a full key
board, a small keyboard, for entering
messages, and
interacting with the applications. So
this is a device
that, is it a Smartphone, is it a
classic-type phone? It
really blurs the boundaries, because
it provides a lot of
the benefits of both types of devices.
So we're excited
to see the Motorola breakthrough, and
we've done a lot of
special software work to make sure
that we take full
advantage of that.
In terms of new things for
developers, there's a
compact framework, a lot richer. The
managed APIs are now
letting people get at telephony,
there's camera APIs,
there's sync APIs, location APIs,
really having just high
level calls that let you get at
everything that's
available there. Another big focus
for us is this mobile
to market, making it easy for people
to find applications,
and now connecting that up to a
billing platform, as well,
so we can make it so that people can
sell those
applications, as well.
So just to give you a sense of
where we're going with
Smartphone, and how this mobile
market change will create
new opportunities, I'd like to ask Ori
Amiga to come up
and give us a look at Smartphone
innovation.
(Applause.)
ORI AMIGA: VisualStudio.NET
2003 already has
great support for building managed
code applications targeting
the Windows Mobile platform
today. And with the .NET
Compact Framework already being in ROM
on every single
Pocket PC, and Smartphone 2003 device,
there's really
never been a more exciting time to be
a mobile developer.
So what I'd like to show you today is
some of the
remarkable innovation we've been doing
on the tools, on
the platform, and our mobile to market
program to really
make it easy for developers, easier
than ever, to build,
deploy, and even sell your
applications.
So let's go ahead and take a look
at my quite active
blog site. And what I thought we'd do
today is jazz it up
a little bit, build a mobile blogging
client for my Smart
phone from scratch, so we can create
live blogging entries
here at MDC.
In Visual Studio 2005 I'm going to
go ahead and create
a new project. We'll do this in
Visual Basic, and call it
My MDC Blogger. We're going to target
the Smartphone
platform and leverage some of the rich
Windows Mobile APIs
for camera, location, even Web
services to build this
application. Notice the gorgeous
designer we have in the
IDE, you can view the form factor that
you're going to be
targeting. We have great customizable
skin support, and
the exact same beautiful design
experience you expect on
the desktop.
Let's go ahead and title our form.
We'll call it My
MDC Blogger again. Notice I have a
device control toolbox
that has all the relevant controls for
the platform I'm
targeting. We'll drag a picture box,
which we'll bind to
the camera in a moment. I can add a
label, which is where
we'll put the location information,
about where this photo
was taken. We can label it, My
Location. I can use the
menu editor to create Smartphone menus
in the designer.
We'll make a blog it menu. We can
make a photo menu. And
we're almost done. Let's go ahead and
wire these up and
get ourselves a little more real
estate here.
Now, I can type in the three lines
of code it takes to
get an image from the camera object
but, instead, let's
use our beautiful VB Snippets feature
and insert a Capture
Photo snippet. I can also insert a
snippet to get
location. Notice, two lines of code
to get an image from
the camera, put it in the picture box,
one line of code to
get a location sensor, one line of
code to get an address
report.
The last thing we'll do is put this
information up on
the screen. And that's it. We're
almost done. Finally,
let's go ahead and wire up the Blog It
menu. I've gone
ahead and created earlier a wrapper
component that uses
Web services to talk to my blog
server. And so we'll go
ahead and use that. The add entry
method, call it My MDC
Blog, and we can say I am blogging
from and add our
current location, and we also want
picturebox1.txt. There
we go. Go ahead and hit build, take a
look at our output,
build succeeded.
So, what you've just seen, in less
than three minutes
we've built a Smartphone application
from scratch, added a
couple of controls using rich Windows
Mobile APIs and
built it. Now, many of you know that
building your
application is only half the battle,
the real challenges
out there are on packaging, and even
selling your
applications. So, let's take a look
at some of the future
investments we're making to simplify
and really help you
sell the applications through multiple
channels.
What we have here is a preview of a
future version of
our Windows Mobile Developer Portal,
so in our Mobile to
Market Program, an ISV will be able to
submit their
application into a hosting service and
have it
automatically be available through
many of our
distribution partners such as AT&T
Wireless, for example,
or Handango, CellMania, or any other
mobile operator
distributor or OEM.
In the submission form, I can title
my application,
give it a description, indicate which
platforms I'm
targeting, even set it retail price,
in our case I think
$9 is a bit high for two minutes worth
of work, but that's
probably OK. I can go ahead and
browse and find the
application I want to upload to the
site, in this case a
CAB file, precreated with Visual
Studio that has our
application in it.
When I click the Submit button,
this application gets
submitted into our back-end service,
and on the other side
of this transaction, the mobile
operators, such as AT&T
Wireless in our example, can make a
decision on which
applications they want to make
available on their network
and to their end customers.
Now, once we get a submission
confirmation, we can go
ahead and switch over to our device,
there it is, and
we'll take a look at the end user
experience of how you
get this out onto your Smartphone. On
my Smartphone, I'm
going to go ahead and launch the
mobile catalogue. Notice
from the branding on the device, we've
been working
closely with AT&T on this, an end user
can go to their top
downloads and initially see a cached
version of all the
applications available on the hand-
set, so they don't have
to continuously go up and hit the Web
site.
When I hit refresh, we're going to
make a secure Web
service call, and download any updated
content which may
be available. So, notice my MDC
Blogger is not on the
site, and I can get some additional
information such as
the size and the cost. In one step, I
can download and
purchase this application, and the
beautiful thing here is
that as an ISV, you can sit back,
relax, and wait for the
checks to show up in the mail as we've
been working very
closely with our partners to deliver
an end to end
solution.
Our CAB file has been installed.
We can now go back to
our Start menu and launch our
application, and create my
first blog entry. I'm going to go
ahead and click the
photo button. The camera is going to
come up and take a
photo of this great car I have on
stage, and we'll give it
a second or two, we'll get the
location updated from the
location center, and then I'm going to
go ahead and hit
the Blog It button.
While we wait for the blogging
entry to be submitted to
my site, let's switch over and take a
look at our Pocket
PC, which has a reminder about the
keynote. Interesting.
Well, I guess we won't be taking a
look at our Pocket PC
since it's decided to remind me that
I'm in the keynote.
But, instead, what I will tell you
about is some of the
great support we've added in Visual
Studio 2005 to help
you build applications which target
multiple phone factors
available through the new Windows
mobile devices. We've
made it easy for you to build a single
application that
runs on the Smartphone and Pocket PC,
a single package
that can deploy and run on both, an
application that can
automatically adapt from landscape to
portrait mode into
VGA resolutions, et cetera, all from
the IDE and all with
a very little amount of code required.
Looking back at My Blog site, hit
Refresh, and here's
the blogging entry that came from my
Smartphone with our
image and the location from the
device.
(Applause.)
What you've seen today is that from
scratch we were
able to build a new Smartphone
application in Visual
Studio 2005, to use Visual Basic and
the rich Windows
mobile client APIs to do location,
camera, photo capture,
as well as Web service calls, to use
Mobile to Market to
package, sell, distribute our
application to our clients,
download it, install it, purchase it,
and even use it all
in under 10 minutes.
Thanks very much.
(Applause.)
Speech Server
BILL GATES:
Well, let's talk about speech.
Speech has been a holy
grail for a long time in computer
interaction. Obviously
speech would be immensely beneficial
to have as one of the
ways of interacting with the computer.
And this is a
problem that very smart people have
been working on for
decades. And, in fact there has been
substantial
progress. The requirements in terms
of the low error rate
are very demanding. Humans are used
to other humans, who
are extremely good at recognizing
speech. In fact, as
we've worked on these problems, our
respect for human
recognition has simply gone up and up.
But, there's a
progression here of lower and lower
error rates, what
you're seeing is from 1993 out, our
projection into the
future, what the machine error rate
will look like. And
of course, the human error rate is way
down there, a very,
very low error rate.
There are two things that humans
are particularly good
at, compared to computers; one is
understanding the
context, that is knowing if there's
any ambiguity, by
knowing who they're speaking to about
what, how to resolve
that ambiguity, and doing that just
subconsciously. And
the second is being able to eliminate
noise. If you
compare computers to humans in a
noise-free environment,
the differences is much smaller than
this. And so a lot
of the advances have to do with being
smarter about
context, and doing a better job with
noise elimination.
And so together, bringing all the
different advances
together, including the hardware
capabilities that are
helpful here, we're bringing the
machine error rate down,
and bringing that into the mainstream.
Now, one thing, this is showing the
toughest problem of
all, which is general dictation, where
you can use an
extremely large vocabulary. Already
today, if the
vocabulary is limited to a particular
domain -- asking
about directions, or directory, or
weather, or travel
flights -- the error rates are very,
very low. And so the
barrier there has actually been the
difficulty of creating
applications describing what the
domain is, and connecting
it up with that computer code. And
the Speech Server that
we're announcing, and shipping this
week, is about
eliminating that problem, making it
easy to write server-
based, voice recognition for domain-
specific grammars, and
taking the extra effort to do that on
top of building a
classic application very, very modest.
Again, the
philosophy is, same tools, Visual
Studio, the same
platform environment, the .NET
environment, that we're
bringing there.
Now, Microsoft is very committed to
speech. We see
this as something that over the rest
of this decade will
simply become more and more
mainstream. The mobile phone,
you've seen all these different
keyboards that try to make
it easy to put information in, those
will exist, but
speech is preferable when it can be
recognized. Even on
the PC itself, the combination of
keyboard, pointing
device, and speech will be part of the
interaction
technique there. We also believe that
you can't just have
the world of speech synthesis and
interaction, and the
world of the keyboard-screen, you want
to bring these
together, so that even if your input
is speech, that the
output can often be on the screen.
So, for example, if you want to
look at your voice
mail, you shouldn't just have to
listen to audio, you
should have the screen show you that
menu, and all the
information, and you can easily select
that. So the
screen and speech should not be
separate worlds. And many
of the architectures for dealing with
speech applications
acted like it was separate from
screen-based interaction.
Speech run times have to be very
low cost, it's our
traditional approach to take a high-
volume, low-cost
approach to these things, and we've
got to have examples
of where these speech applications are
doing some super
things. We do have a standard called
SALT, that describes
how to embed grammar and speech-type
information into
normal XML expressions. The model
here is this Web-based
.NET architecture, the Visual Studio
environment, and a
very simple integration there.
This is a diagram on top of our
standard Windows
Server, you run this speech server,
called Speech Server
2004, which is just coming out now,
and that has the
application logic, and the speech
processing, and then it
can connect you, through general
telephony, or through the
Web, as well, and the data is flowing
back and forth to
this ASP.NET application. Making the
economics of this
very, very inexpensive has been a
critical thing to us.
And working with partners who do the
telephony connection
piece has been very, very important,
as well. And so over
the last nine months we've had betas
of this out, gotten a
lot of feedback. In fact, I think the
excitement level,
the progress people have made in
building applications
with this beta has been as strong as
any new beta product
I've ever seen.
Speech really is something people
believe in. They've
seen a lot of optimism, they're
wondering when it comes to
the mainstream, but now we're seeing
for a certain class
of applications, it is in the
mainstream with this
software release. So to give you a
look at this, and
including how the development has been
made pretty simple,
I'd like to ask Richard Irving, a
program manager in our
Speech group to come up and show you
Speech Server.
(Applause.)
RICHARD IRVING:
Thank you. All right. We've seen
some great stuff so
far. I think we saved the best for
last. I'm going to
show you how to leverage
VisualStudio.NET, and your Web
development skills to speech-enable
ASP.NET applications,
using Microsoft Speech Server 2004.
The scenario that we
saw earlier on was an internal
application that
Consolidated Insurance deployed for
its claims adjusters
to track -- to file and track claims
on behalf of their
customers. Of course, Consolidated
Insurance also has a
customer sevice Web site, to allow the
customer a certain
set of functionality. So we're going
to take a look at
that application before we dive deep
into the code. There
we go.
So here we have the Consolidated
Insurance customer
self-service Web site. I'm going to
go ahead and type in
my claim information, so that I can
log onto the site, and
check the status of the claim that Jay
was working on
earlier. Now, I can see that the
claim has been
processed. The claims adjuster has
updated with some
information on what the damage is, and
they've actually
assessed a value of $2,400. now,
because they've assessed
that value, I can take action on this
claim directly from
this Web site. I can choose to have a
check sent to me,
or I can choose to get it repaired.
Now, I'm going to go
ahead and get it repaired, and when I
do that, I get a map
and a listing of repair centers within
a given search
radius. And of course, I can change
the search radius
from 5, 10, 20 miles, and the list
will update
dynamically, and then I can choose
which repair center I
want to take my car to.
So this is all really standard
stuff. Right. I mean,
you guys have built this stuff before,
you've used this
stuff before, you know how to do this.
Well, Consolidated
Insurance wants to extend the reach of
this application to
the most pervasive device in the
world, the telephone,
using speech technology, and Microsoft
Speech Server 2004.
And I'm going to do that right now.
We're going to start in Visual
Studio.NET. This is a
development environment you guys have
all come to know and
love over the last few years, and I'm
looking at the
Consolidated Insurance Web project
right now. I'm on the
status page, I can see basically the
design time view of
exactly what we just saw through the
Web browser. I've
got my standard ASP.NET controls in my
Web control toolbox
there. I've got some controls already
on the page, and
I've got some data sources. My data
sources of available
repair centers, and the claim data
that I'm binding to
this form.
Now, with Microsoft Speech Server
2004, you get a set
of tools that are seamlessly
integrated with
VisualStudio.net that make it very,
very easy to speech
enable your ASP.NET applications. The
first thing that I
notice when I have it installed is the
speech Web control
toolbox. And this is really neat, it
gives you a set of
standard ASP.NET controls, but to
manage the speech
interaction in the application. These
controls work, and
behave, and are configured the exact
same way that you're
used to with the standard ASP.NET
controls, but of course
they're doing speech.
Now I want to start building out
this actual the
speech-enablement portions of this
applications. And of
course, I've got a couple of things on
the page already.
So before we dive into it, let's just
review real quick
what's on the page. I have here a
call-management
control, which is going to pick up the
line and start
executing the application when it
detects an incoming
call. I'm going to say hi, greet the
user, get their log-
on information, look up the claim,
read them back the same
sort of detailed information that I
got on that Web site,
and then I'm going to ask them if they
want to have a
check cut, or if they want to get the
car repaired. Now,
if they want to get it repaired, I
need to give them that
exact same list of available repair
center, except over
the phone using speech. Now, to do
this, there are three
concepts that I need to get familiar
with, because over
the phone, obviously, there is no
graphical interface. So
there's three concepts that I need to
get used to. One is
the dialogue, or the conversation the
system has with the
user. This is your presentation
logic, right. That's how
you think of it today. That's how you
can keep thinking
about it with building a speech
application. the next
thing, in that conversation the system
is going to be
asking questions of the user, it's
going to be saying
things to the user. These things are
called prompts.
And, of course, I need to define a
list of things the user
can say, constrain it just a little
bit, and we call that
grammar.
Now, one of the really neat things,
talking about these
speech Web controls, one of the really
neat controls we
provide is this data table navigator
control. And this
data table navigator control, when
bound to a data source,
will automatically generate all
elements of that
conversation based on the data I bound
it to. So I'm
going to go ahead and use this data
table navigator
control to present the user with the
list of available
repair centers. And I'm going to
customize it in a couple
of ways.
The first way I'm going to
customize it is to bind it
to the repair center data source that
you saw on my Web
form, and I'm going to extract these
two columns, the name
of the business, the basic
coordinates, so that I can send
it off to the MapPoint location
server, and calculate the
distance, calculate the available
repair centers, so that
I can provide relevant information to
the user.
Now, technically, once I do this,
and I provide I
specify a place to store the user's
selection, I'm done.
I don't actually have to go any
further. I can hit apply,
dismiss this dialogue, run it right
now, and it will work,
but I really want to show you these
tools. So I'm going
to go out on the edge here, and I'm
going to start
customizing a couple more things.
I'm going to customize what the
user can say to the
application. Now, again, we
automatically generate these
commands, or what the user can say,
based on the data that
we're bound to. But, I can also
customize it. So I am
going to customize the words that the
user can say to
indicate their selection in a list.
And I'm just going to
set this up here by specifying a path
and a rule, and a
grammar that we'll customize in just a
second. I just
want to prepare the control for this.
Then the last thing
I'm going to do to the control is
provide a really natural
sounding voice to this application.
And again, I'm just
setting this up, and I'm going to do
the full
customization in just a second. So
we're done.
Again, I can build, I can run this
right now, and it's
going to sound great, but we want it
to sound even better.
And I want to show you the rest of
these tools. So I'm
going to customize the commands that
the user can say to
the application, and I do this through
the grammar editor.
This is a really cool, really sexy
tool that allows you to
design the flow and the layout of the
user's input into
the application.
I can see here, I already have a
couple of items in
this list. The user can say, OK, yes,
or select to
indicate their selection, but I'm
going to go ahead and
add another phrase, because I think
it's most natural for
a user to say, when they're in the
middle of a list, to
say, that one to indicate their
selection. So I'm going
to add that to the list, and that's
all I needed to do.
The things that the user can say, the
input to the
application is now fully customized.
I'm going to hit
save, and I'm done, and I'll overwrite
that. So I'm done
with that.
Now, the last thing that I want to
do is provide a
really natural sounding voice to the
application. You
guys have heard the synthetic voices
before, text to
speech, all that sort of stuff, and I
can use that. I can
use that in my application, and that's
functional. But I
want a really natural sounding voice,
and I can do that
with Microsoft Speech Server through a
tool called the
Prompt Editor. And this allows me to
insert recorded
files or recorded sounds that I might
have a professional
voice talent recording in a studio,
import this into this,
and then I can dynamically mix and
match these sounds at
run-time to provide the most relevant
prompt to the user.
So, I'm going to go ahead and
import a couple of WAV
files associated with that list of
available repair
centers. And let's see how that
sounds. It sounds great,
that sounds awesome. That is the
exact experience that I
want to give users in this
application, I want them to
hear her voice, I want them to be
guided through this
application, and that's how I do it.
Now, I can go ahead and build this,
and I have a couple
of options available to me. I could
just hit Run in
Visual Studio.NET, and what I get with
Microsoft Speech
Server is a simulation environment to
run on my developer
workstation that simulates what it
would be like to run
this application on the server. So, I
don't need any
additional software, or any additional
hardware to license
on my developer workstation. I can
just hit run. This is
also an ASP.NET application, so I
benefit from Xcopy
deployment. I can just copy this out
to my Web server
and, bam, it's deployed, I can use it.
But I want to give
you guys the full Microsoft Speech
Server experience, so
I'm going to go ahead and make a call
to a server that we
have running to this very application
and let's see what
happens.
VOICE: Good morning, and
welcome to the
Consolidated Insurance Automated Claim
Processing Center.
First, I'll need to get your claim
number, if you don't
know it, please say "help."
Otherwise, please speak or
type the number now.
RICHARD IRVING: 1M24R.
VOICE: Great. I heard
1M24R, is that right?
RICHARD IRVING: Yes.
VOICE: OK, please wait
while I look up your claim.
Thanks for waiting. Your claim is
for a total of $2,400, please say
"check" to receive a check for this
amount, or state "repair" and I'll
help you find an appropriate service
center.
RICHARD IRVING: I would like to get it repaired.
VOICE: OK. I can help you find the closest service center. Do you want me to search within five, 10 or 20 miles of the address on your policy?
RICHARD IRVING: Ten miles.
VOICE: OK. I've found three centers within 10 miles, Contoso Auto Service is six miles from you. Northwind Import Cars is two miles from you.
RICHARD IRVING: That one.
VOICE: Got it. Northwind
Import Cars, I have sent the details
to the e-mail address we have on file.
Can I help you with anything else?
RICHARD IRVING: No.
VOICE: Thanks for calling Consolidated Insurance. Good-bye.
RICHARD IRVING: Thank you.
(Applause.)
All right. So that sounded pretty good. Thank you, I think it's absolutely awesome as well.
So, now, remember, I speech-enabled an existing ASP.NET application, this is fully integrated,
right, so I should be able to log back on to the app, and see if maybe the status has changed with what
I did over the phone. So, I'll log back on, and there we go. The car is in repair as indicated by my
conversation with the application. My options are disabled, and once it's done being repaired, I'll
probably be able to log back on, check on the status again, and anything else that Consolidated
Insurance wants to allow their customers to do.
So, hopefully what I've been able to show you here is how you can leverage your existing skill sets,
your existing infrastructure investment, to extend the reach of your applications to 2.2 billion
phones, 2.2 billion phones, using speech technology and Microsoft Speech Server 2004.
Thank you.
(Applause.)
BILL GATES: That's a huge range of different scenarios. We think that this new speech
capability will be used for, ranging from healthcare, we saw insurance, customer relationship
management, even internally in Microsoft when somebody wants to call up and get directory information,
we now have the Speech Server being used for that with a very high degree of accuracy.
One application that was very exciting to me, it was done on the beta, was done by the New York City
Department of Education. This is the largest school system in the U.S., over a million kids going to
school and a $6 billion budget. They have a lot of information, 1,200 schools, 80,000 teachers, and
they want to make it easy for parents to know what's going on, things like did the kid go to school,
what kind of grades did he get, and they really can't afford for transportation or scheduling or other
information to have lots of people sitting there manning some call center answering these questions,
schedules change, things parents might want to know about. So they built a Web application, and that
was a .NET application, very straightforward and very successful, but it was only accessible to
families that had computers with Internet access. So, they came to us and a key partner we have called
Intervoice, and said, could we take this application and extend it out so that people could dial in on
the phone? And this is because the majority of parents for this particular school district did not
have computer access. And so between Microsoft and Intervoice, we took the application, and it was a
very straightforward thing to do this extension, and so now it's up and running in the New York City
School District. So you wouldn't think of them as the cutting edge, state of the art customer, and of
course they had to do it with tight budget constraints, and yet with the new platforms that all became
practical.
We've got about a thousand applications that have been written as part of the beta test, and that's
been part of the refinement capabilities. And so I think we can really say now that speech is starting
to move into the mainstream. Kai-Fu Lee, who runs our group doing this work, of course, will be giving
a keynote across the street at 11, and that really will get into more depth. It will give you a sense
of why we're so excited about this.
Let me just say briefly where we go from here, we talked about Visual Studio, mobility, and speech, and what's here in the near-term. We don't see ourselves backing off in terms of our large scale R&D investments in these areas. We think they're all key areas. Of course, there will be a lot of feedback on the things that we're doing through our community process that will help guide us, but in Visual Studio we see that the XML data model, there's a lot more that can be done, user interface, rich animation, a lot more that can be done. Mobility, getting these media experiences in there, dealing with the device form factors so that the full range between the phone and the mobile PC we can share code across those. The network support, giving us new opportunities, having data and voice connections simultaneously is very key if you want to be interacting with speech and having things come up on the screen. And speech itself, well, of course the idea is to not only do server based speech, but to bring our speech recognition for larger and larger vocabulary sets, down onto the phone itself, and onto the PC itself. We will have a speech dictation application.
In fact, just last year as we were making progress on this with one of our speech researchers over in China, where the keyboard is relatively more difficult to use, there was proposed that there would be a runoff between the keyboard use and speech recognition, and so they got one of the best trained typists in the country, and the speech recognition was better in terms of getting the full accuracy rate of entry type measurement versus the keyboard. And so, that's just a milestone, but eventually we'll think of the PC and the phone as devices that we can talk to, and talk to not just within a limited domain, but talk to in very broadly, even say dictating documents of any type.
A lot of investment to be made there, we've been investing in this area for a decade before we get the problem completely solved, and I'm sure that's another decade of work, but lots of milestones that will let you take those improvements and build applications around them.
So, in conclusion, the seamless theme describes a lot of what we're doing. It describes the importance of software in terms of getting things to work together. The idea of software talking to software through Web services, and our commitment to that as an industry standard, I hope that's coming through in everything we're doing from our initial work around XML to the protocol standards that we're making available, to the interoperability testing with all the other vendors. The mobile space is a very important space, one that we're quite committed to, and seeing some great results. These natural user interfaces, of course, we've always dreamed about those, and it's great to see that it's becoming real.
And all of this in summary, I think, creates opportunities for developers, and so I'll be very excited to see what each of you can do, taking the new tools and new platforms, and building great applications.
Thank you. (Applause.)
|
|
Related Links
|