JAKE: I had this experience at work once
where I was leaving work.
I had my headphones in, I was listening to some stuff.
And I went to the bathroom.
I went to the urinals, because I needed to do a wee.
And--
PAUL: Thanks for that update.
JAKE: And as it was happening, I moved my hand,
and I knocked my earphones.
PAUL: No, no, no.
JAKE: Yeah.
You know what's coming, right?
And it was just like this slow motion of them falling.
And there was peoples at the urinals next to me,
so I couldn't do anything about it, right?
PAUL: You didn't knock it into--
JAKE: Well, no, no.
Well, if "Ghostbusters" taught me anything,
don't cross the streams, right, is the key rule.
No, I couldn't catch it.
But once they landed in there, they're ruined, right?
PAUL: Yes.
You're not going to shove those back in your--
JAKE: So I just carried on.
And it was just this really depressing moment
where I just continued to urinate on my earphones.
PAUL: How is this in any way related?
JAKE: Because that reminds me of so many websites.
I've been being reminded of that moment
when developing so many websites.
And it's because if something like
that-- when you're developing for i6, it's like,
why even try at that point?
It's already been pissed on.
They're already ruined, so why not just carry on?
Just to carry on.
PAUL: Just make it.
JAKE: I still think the web has the simplest Hello World,
right?
It's just doc type, Hello World, and now you have a web page.
It's all you need.
PAUL: Or is it?
No.
JAKE: Yes it is.
PAUL: No it's not.
No, because we've made it impossible, frankly.
JAKE: We haven't made it impossible.
PAUL: Yes we have.
To get going with the web, first install NPM.
Then probably install Bower.
And then you install Gulp or Grunt or both.
And then download all the modules you need.
And then you wrap bizarre things like [? Watcherify ?]
around Browserify around BaileyFY.
And then stand on one leg, face due east
and then, and only then, are you good enough
to build for the web.
JAKE: What you're talking about there
isn't building something for the web,
it's being excellence to the web.
It's making the web really good.
And I know that's different.
OK, go on.
PAUL: Because no.
Because every single tutorial, when
you get past their little world, it's going to say,
in order to proceed, you're going to require these tools.
You're making it sound like there's
a kind of on ramp, where we gently go,
I know you've got this far with the web,
but now you need to just ease across to these tools.
Oh, and they're lovely and easy to work with.
No, no, no.
We just go, to begin, first to invent the universe.
I do get it.
And that like, I don't want to say that the tools are bad,
the tools the wrong.
But I am concerned that the next generation of developers
is going to get somehow left behind.
It feels like we're not taking enough care over that journey
that people are going to naturally have to go through.
I saw this with Flash, actually.
When ActionScript got so advanced,
and the tooling got so advanced, that it was just a brick wall.
And one of the great strengths of Flash
is that it had all these designers coming in early on.
People who were naturally, sort of inclined to code.
But they started to dabble, and then the dabbling
became good and professional.
And then before you know it, you've
got these people who would have never described themselves
as coders, doing these amazing things.
And they bring diversity.
They bring interesting things.
JAKE: This is not a new problem with the web, though.
You go onto Stack Overflow, and you
find the question of how do I hide an element on the web.
And the answer is wow, it's just a single line.
And that single line uses--
PAUL: jQuery.
JAKE: jQuery!
Absolutely, it does.
And so we're just kind of switching out
jQuery as a prerequisite for something on NPM now.
[INTERPOSING VOICES]
PAUL: No we're not.
No, because with jQuery, at least I can go there,
and I can hit a big download button.
And I can get jQuery.
I can include it with a single line that
says source equals blah to the jQuery, and then off I go.
What we're talking about is the fact
that you have to first of all get all these command line
tools.
And you have to go crazy over this whole pipeline
before you even are able to get to Hello World.
We can't forget that Hello World experience,
because that's how people get started.
If not, we run the risk of being-- essentially
making an SDK for the web.
JAKE: I think you've forgotten about the main problem
with this.
And it's now like if we want people
to be developing for the web, one thing they have to learn
is Git.
PAUL: I don't think that Git is a big deal, actually.
You don't have to.
JAKE: Are you sure you're not just
forgetting how difficult the learning curve was.
PAUL: My Git workflow is typically to type tower,
hit Enter, and then use a GUI.
JAKE: I still think you need to understand
how version control works.
Not just normal version control, but Git version control,
where it's all-- you can re-base.
But even if you amend the last commit,
it's actually creating a new commits,
because are mutable things.
People need to understand that, just to start with the web.
PAUL: [WHINE] They don't have to.
Again, you could download jQuery.
Just download, right?
JAKE: And this is what we need.
PAUL: Go on.
JAKE: No.
Exactly what you say.
Is when someone has a Git repo with a library or something,
there must be a download link.
Even it's just linking into the source, a single source,
or in a disk folder, like a build version.
There should be a click there that someone
could copy and paste that JavaScript
and now they're good.
PAUL: Right, because if you don't
want to go in for any of this, and you just
want to use this library, there is a better way here.
Where you can include in all the workflow and do that.
And it is a good thing and a professional thing to do.
If you just need it, go to the disk folder, get the thing,
use it, smile a happy smile, and that's your day.