JAKE ARCHIBALD: And we're seeing a lot of frameworks
now that they are moving to a model
where they could do server rendering as well.
Or what's the term for it that makes data [INAUDIBLE]?
PAUL LEWIS: Oh, isomorphic JavaScript.
JAKE ARCHIBALD: Is-- isomorsic.
Iso--
PAUL LEWIS: Isomorsic?
JAKE ARCHIBALD: Is-- is-- is--
PAUL LEWIS: [INAUDIBLE].
JAKE ARCHIBALD: [STUTTERING] Uh, a few too many of these.
PAUL LEWIS: [CHUCKLES] Isomorphic.
JAKE ARCHIBALD: Isomorsic JavaScript.
PAUL LEWIS: Come on, now.
Come on.
JAKE ARCHIBALD: I can do this.
Isomorphic.
Yay.
PAUL LEWIS: Yeah.
JAKE ARCHIBALD: So isomorsic JavaScript--
I can barely still say it.
So isomorsic--
PAUL LEWIS: Oh, come on now.
Seriously.
JAKE ARCHIBALD: OK, OK.
PAUL LEWIS: One more.
JAKE ARCHIBALD: Here we go.
Isomor--
[MUSIC PLAYING]
I bought a PS4 recently.
I've been going on about it.
And I was looking at some of the literature that comes with it.
One of the big things that they advertise
is that, hey, did you know that new in the PS4
is you can, while you're downloading
level one of the game-- well, as soon as level one is
downloaded, you can start playing it
even though levels 1 to 99 are still downloading.
PAUL LEWIS: Wow.
JAKE ARCHIBALD: And that's what I was thinking of.
Wow, this is the PS4.
This is the absolute height of technology.
But the world's been able to do this for 20 years.
PAUL LEWIS: I think there's a lot of skill, though,
in dividing up your web app into things
that need to be there in the initial burst,
and then things like the level one stuff,
and level 2 through 99.
I still think that's much too difficult for us
to get our heads around.
It takes a lot of planning.
And it's OK if it's just sort of a one-person thing, where they,
like, I do the design, I do the development,
I do everything myself.
But if you're not that person and you've
got a big team, having everybody think
about what is level one, that's really hard.
Because you've got to understand exactly how the web gets
built before you can get there.
JAKE ARCHIBALD: But the benefits are huge.
On this blog post I did about progressive enhancement,
someone, an author of one of these big web frameworks--
PAUL LEWIS: Who shall not be named.
JAKE ARCHIBALD: We won't name them.
But they bombed the comments with like, well, this
is nonsense.
My framework is excellent.
I looked at the documentation for their framework, which
uses the framework as an example of the--
PAUL LEWIS: [INAUDIBLE].
JAKE ARCHIBALD: And on 3G, their time
from request to some content on the screen is seven seconds.
PAUL LEWIS: Ooh.
JAKE ARCHIBALD: But even with a full cache on a fast as you
like connection, it's still three seconds,
because they're CPU-bound.
I know, right?
It's just like-- and as soon as I
saw that, I was just like, win this argument, then.
I can do this with data.
And it was just normal content.
I mean, there was a few JavaScript things,
like open this, collapse that.
You could do that all after the fact.
PAUL LEWIS: So I guess this comes back
to the whole-- like, Twitter did this years ago, didn't they,
where they went, hey, we've shifted to client side
and everything is awesome.
And then they went, actually, doing
what the web was doing, which is serving some HTML over the wire
in the initial request, that's where the cool stuffs are.
JAKE ARCHIBALD: Yes, this is my progressive enhancement
rant, clearly, right?
But what was it?
It was like a six times speedup they saw so that--
PAUL LEWIS: I don't know.
I don't actually remember.
I know they did say, we've gone and done it
because performance, yeah.
JAKE ARCHIBALD: But then, to be fair to frameworks,
like, I do like how they're stating
to go with this server-rendering approach,
what they call isomorphic.
PAUL LEWIS: Yes.
You got it right.
JAKE ARCHIBALD: I got it right this time.
PAUL LEWIS: Yeah, every time you say it, it's like [MUMBLING].
JAKE ARCHIBALD: [MUMBLING] But that's-- this feels like
the right approach.
I feel like it's--
PAUL LEWIS: Really?
JAKE ARCHIBALD: It's a Band-Aid over the solution,
over the problem of slowing everything down.
PAUL LEWIS: Right.
They made this problem, right?
This whole thing was avoidable if you just
did what we did, right?
JAKE ARCHIBALD: That's it.
By leveraging good caching, first render stuff, and service
worker, your performance problems are solved.
[MUSIC PLAYING]