[MUSIC PLAYING]
LAURENCE MORONEY: Welcome to Coffee with a Googler.
Today I'm meeting with Alex Danilo
to talk about web standards and why they're so important.
ALEX DANILO: So [? LoMo, ?] so tell
me, with all these interviews and stuff,
have you actually learned anything useful?
LAURENCE MORONEY: Have I learned anything useful?
Wow.
Certainly I've learned how hard it can be in a studio.
No, but seriously.
It's been really fun to chat with a lot
of different and various Googlers from around the world,
and from different things that they do.
Like, I had Josh Gordon on for one episode where we
spoke about machine learning.
And machine learning is something
that I've been trying to study, and having
a lot of trouble with.
ALEX DANILO: It's complicated.
LAURENCE MORONEY: It's really complicated.
And my math days are like 20 years behind me.
And one of the things that Josh spoke about
is, like, how he's teaching machine learning, and trying
not to be so mathy about it.
And that really helped.
And we had Ankur Kotwal on a recent episode.
And he was talking a lot about Google Maps and Santa Tracker,
and a lot of behind the scenes of Santa Tracker and the stuff
that he built. And I learned how important it is
to have a good project manager.
You'll have to watch the episode to see what we mean about that.
ALEX DANILO: Cool, I'll watch it.
LAURENCE MORONEY: And I was actually thinking about you
the other day when I read this quote.
And it was-- I'm paraphrasing, I may have it wrong.
But it was something along the lines of,
like, the great thing about standards
is that there are so many of them to choose from.
And I know you're working on standards.
Was that an Andrew Tanenbaum quote?
ALEX DANILO: It was.
That was his quote.
Yeah, definitely.
LAURENCE MORONEY: Now you're working on standards,
and you're working on web standards
in particular for Google.
And it's like, well, what's the status of the web today?
How are things going with the web,
and how are things going with standards?
ALEX DANILO: Well, that's a great question.
There's a lot of activity in standards.
I mean, there are multiple groups.
There are multiple working groups, as you know.
Personally, I'm working on the HTML standard at the moment.
So I'm helping edit the spec with a bunch of colleagues
from other companies.
And the way I kind of view it is standards
are really important, because without standards, things
don't work right.
If I write a web page and I just bash the markup together,
it might work in my browser, but it
won't work in other browsers.
And the way it works across browsers
is through standards, right?
So that the browsers implement the same thing.
And if I implement my page adhering to the standards,
it will work everywhere, right?
LAURENCE MORONEY: And it's important to get things working
the same way everywhere, right?
I remember the old story about-- wasn't it like a Mars mission?
Where the Europeans measured it in metric,
and we measured it in imperial.
And instead of landing, it went splat.
ALEX DANILO: Slammed in the planet.
All over.
Same thing happened quite a long time
ago with the Fortran program as well.
Where it was like people decided to use Fortran for one
of the space probes in NASA.
And somebody put a comma where there should have been
a full stop, or vice versa.
The probe went flying off into space
because it had a variable that wasn't being used.
It was just [INAUDIBLE].
Now the space program doesn't use Fortran anymore.
LAURENCE MORONEY: Is that why?
ALEX DANILO: Well, probably that.
LAURENCE MORONEY: So what have they switched to?
ALEX DANILO: Most likely Ada.
LAURENCE MORONEY: OK.
ALEX DANILO: That is a military standard, in fact.
So standards are important from a lot of different aspects.
Just for developers, you kind of think, yeah, great.
Why have them?
Andrew Tanenbaum's right.
There's a zillion of them out there.
But a perfect example is in the old days of the railroad,
back in the 1800s or whatever it was,
there were competing companies building their own railroad
tracks, but they were different widths.
So you get to the state border, and you
wouldn't be able to continue with the train
because they didn't have a standard gauge.
Hence, they brought in a standard gauge.
LAURENCE MORONEY: I see.
ALEX DANILO: So it's the same with the web.
We define a set of standards.
Every browser vendor builds those standards
into their browser.
So when I build for the standard,
I can expect it to work everywhere.
And if it doesn't, it's a bug.
LAURENCE MORONEY: Right, so you don't
want to be that train that fits one
railroad, but not the other.
ALEX DANILO: Exactly.
LAURENCE MORONEY: So what exactly does your role entail?
What are you doing?
ALEX DANILO: What we're doing-- well, what I'm doing
is basically working with a bunch of the other folks
in the HTML group.
And we collate all the changes that people submit to us.
Like the working group works together,
but it's an open development process.
Like for example, if you're a web developer
and you come up with some brilliant idea
that you want in the spec, you can talk about it.
You can bring it to what we call the web incubation community
group.
You can work on the kind of idea there.
Develop it.
And then if becomes kind of stable,
we'll pull it into the standards.
So as editors, it's our job to write the words,
put it into the spec, make sure it's testable,
and it will go through the process
and eventually become a real browser feature.
LAURENCE MORONEY: HTML5 was the most recent big spec
that everybody's been hearing about.
What's next?
ALEX DANILO: Well the next is 5.1, which
I'm working on at the moment.
And 5.1 is kind of interesting.
It's a refinement of 5.0 in many ways.
There are a number of new things,
and there are a number of things being dropped.
One good example of a feature that's being dropped
is called request autocomplete.
So that was a feature for payments on the web, which
was great on mobile devices.
And it shipped in Chrome, so it's
shipped to stable browsers.
However, the uptake by the community and developers
has been really low.
So we're like, well, other browsers aren't doing it.
This is not a feature we would want developers to try and use,
because it's just not prevalent everywhere.
So we're pulling it.
So 5.1 will actually make us a bit closer to reality.
That's kind of a big aim for 5.1.
LAURENCE MORONEY: Right.
Now given that we're moving more and more mobile,
and we're moving more and more towards apps instead
of desktops with browsers, and our internet information
access is coming through apps, what impact
is that having on standards?
Are standards becoming less important?
ALEX DANILO: I think standards are
important for different reasons.
Like the app thing is important in its own right.
But we've kind of seen a huge wave
of adoption of the app stores, and the all this sort of thing
in Google Play, etc.
However, the way I look at as a more web-focused person
is that apps are great.
Like, I've written apps myself.
But there are something like 2 million-odd apps in the store.
So if I want to find something, the discovery
is really, really difficult, right?
The story of discoverability in apps is terrible.
And I can only install a few on my phone, right?
You're really lucky to install 100.
And so, from the point of view of usability,
I'd only install apps that I really, really need,
that I will use every day.
If you switch back to kind of the web focus, with the web,
you can basically go to this site and that site.
In fact, you can go to millions of sites
without installing anything on your phone.
You just go through the browser.
So the beauty of that is that I can go-- well today,
I'm going to go to this shopping store, use their site,
buy their stuff.
And tomorrow, I can go to this other store,
and I don't have to clutter my screen with the little icons.
LAURENCE MORONEY: Right, I see.
And you can even do things also.
You can put a link to those stories on your home
screen anyway via that website.
ALEX DANILO: That's right.
In fact, we have installed a home screen.
Chrome has a feature-- in fact, many mobile browsers
have the same feature-- where if you visit a site a few times,
the browser goes, hey, you like this thing.
Would you like me to stick an icon on your home screen?
And if you say yes, it'll put a little icon there.
And then from the user's point of view,
the next time they click on it, it just looks like an app
to them.
So they can't actually tell the difference
between an installed app and just a website.
LAURENCE MORONEY: So browsers are effectively becoming
more app-like in some ways.
Or sites on browsers.
ALEX DANILO: They are.
In fact, modern browsers-- like when
you're talking about standards-- I'll just rewind a little bit.
If you run back, say, 10 years, there
used to be a standard called WAP.
LAURENCE MORONEY: OK, I remember WAP.
ALEX DANILO: You remember WAP.
See?
A lot of people remember it.
I won't talk about some of the quotes
about WAP, not here anyway.
But WAP was a standard, and it shipped
on a ton of mobile devices.
Like hundreds of thousands.
And even millions, sorry.
So that standard lasted for quite a while.
But it was really primitive.
It was geared to the mobile devices of the time.
Fast forward 10 years.
We're in the smartphone era, where the thing in your pocket
is like a supercomputer from a long time ago.
And the browser is full-featured.
It's as powerful as a desktop browser.
And so the shift to mobile is not just
a shift into new styles of browsers with new capabilities,
but the power there gives you all this stuff
that we didn't have before, that you usually
associate with native apps.
Like, for example, accelerometers.
You have the device orientation API.
So it can flip my phone around, and actually
play a game with a ball rolling in my browser.
LAURENCE MORONEY: Yeah, nice.
ALEX DANILO: Another feature that we
brought into the standards is the battery API.
So from a web page, I can actually
detect the status of my battery.
So I can choose to throttle back if I
know I'm not on the charger, and stuff like that.
So the capabilities coming to the browsers
are getting closer what's available to native app
developers.
But this is all coming through standards development,
and not through some kind of proprietary edition.
LAURENCE MORONEY: And I assume, then,
if I'm building according to those standards,
it's going to run on the browser on multiple platforms also.
ALEX DANILO: That's right.
LAURENCE MORONEY: So I don't need
to build one app for Android, one app for iPhone,
and one app, maybe, for other platforms.
ALEX DANILO: Exactly.
That's the beauty of the web.
You build it one place, and it runs on all the devices.
No compilation necessary.
LAURENCE MORONEY: Very cool.
Now one of the things that-- it's
been a few years since I was a web developer, I'll admit.
But one of the things that, when I was building the web,
it was like I had to have standards not just
the back of my mind, but I had to have standards
at the front of my mind.
But sometimes, it felt like somebody
was imposing a way of doing things onto me without being
part of my natural workflow.
Now do we have tools or things that will help developers
through that, and help developers
so that they can make the most of building to standards?
ALEX DANILO: There are quite a number of tools.
One of the things of developing the standards
is that we have to build tests.
These days, when we bring in a new feature,
we have to prove that it's testable,
and we have to write the tests.
And so part of that is also the W3.
So you have a site called validator, [? dot ?] W3.org.
And it's an online validator, where
you can put your mockup in, and it will check it for you
and tell you if you're adhering to the standards, which
at least saves you time as a developer.
They have a bunch of other tools that check success.
They also check mobile sites that will actually
render in different screen sizes,
and give you the result so you can see
what your site will look like.
So there are a lot of things like that.
There's also a community effort called Test the Web Forward.
LAURENCE MORONEY: Oh, Test the Web Forward.
ALEX DANILO: Test the Web Forward.
So this was started a few years ago.
And what it is is it's kind of bringing the developer
community together to multi-day events where we sit around
and we write tests for browser features,
specifically testing things that don't work across the browsers.
So the whole point of a test is write it
like this works in Safari, this doesn't work in Chrome,
or something like that.
So these tests are built. And we've
run them in Paris, I think in San Francisco, in Tokyo,
in Sydney.
All over the world, right?
And this is kind of a grassroots effort
to make the browsers more compatible.
And the more compatible the browsers become,
the easier your life is as a developer.
LAURENCE MORONEY: And the easier life is as a consumer as well.
ALEX DANILO: Absolutely.
LAURENCE MORONEY: So you don't have any of that differences.
So one of the things, then, is how about Google?
We do have some developer websites, right?
ALEX DANILO: We do.
We have web fundamentals, which contains
a lot of great guidance.
There's quite a lot of focus on mobile.
What to do for mobile.
But just general web development stuff.
So there's a lot of resources like that.
And of course, Google sends engineers
to all sorts of standards bodies.
I work with the Chrome engineers.
Part of my role is not just working with the HTML committee
and the group doing the editing, it's also
talking to Chrome engineers and getting their feedback,
and saying, hey, guys, this is broken.
Or hey, this would be a cool feature to implement.
And part of that's a two-way street, right?
It's not a one-way conversation.
LAURENCE MORONEY: Cool.
Well, we're just about out of time.
That was awesome.
I've learned so much.
And you've convinced me to look more into the web.
ALEX DANILO: Web is great.
LAURENCE MORONEY: It's great.
I know it's great.
But you've convinced me more looking at web mobile apps
as well, instead of just building native apps.
So thanks, Alex.
So you have any questions for me,
if you have any questions for Alex, just
please leave them in the comments
below, and be sure to subscribe to the Google Developers
channel.
Thank you.