Transcript from the "Introduction" Lesson
>> Kyle Simpson: Welcome to Digging Into Node. In the year of 2019, which is the year we're currently recording this, this is the ten-year anniversary of Node.js being released. I'm actually really excited about that. Because I was at the conference in Berlin in 2009, JSConf EU in Berlin in 2009, when a relatively unknown Ryan Dahl stood up and introduced this thing called Node to the world.
[00:01:40] Because it means a lot of different things to a lot of different people. And anecdotally, to frame that, I wanna talk about what I was doing in late 2008 and early 2009, prior to Node coming out. I had been, at that point, a developer for about a decade, about ten years or so, eight or nine years, I guess something like that.
[00:02:21] And at the time, I was still dealing with having to write back-end code in one of those languages for wherever I worked, but begrudgingly so. I would do the bare minimum on the server, and then try to bootstrap as much of it as I could in the client.
[00:03:38] And I had that sorta metaphorical jaw drop moment, like you've gotta be kidding me. I'm doing all front-end stuff, and yet I've gotta work with the back-end? How ridiculous is this premise? And so I didn't read that book. [LAUGH] I asked a co-worker to make me the two empty files.
[00:05:51] And a front-end developer can't touch them without going into all of this ridiculousness. Why isn't the stuff that relates to the front-end adjacent to the front-end? Why isn't it nearer to the front-end? And in fact, why isn't it using Web-friendly technologies? Why is it that we're building these systems that are very stratified, where 90% of everything that needs to get done happens in this back-end, and the back-end choice entirely determines what you can do in the front-end?
[00:06:21] I had a job, remember I said I had a job at a Python Django shop one time. And I remember building this front-end piece. And we had this page, it was an admin portal page where there were a bunch of settings, a bunch of check boxes. And I remember wanting to submit, in a form submit, wanting to submit all of those check boxes, or maybe they were radio buttons or something.
[00:06:45] I think that maybe they were radio buttons, but radio buttons or check boxes, submit a bunch of these things. And if you know much about how you can do that in forms, you can actually submit it as an array of values, an array of true falses from HTML post.
[00:06:58] And that's obviously the most natural thing. Embrace what the HTML does, just doing a form post and post these things. Well, no, no, no, that's not gonna work. Because our Python Django routing thing, it doesn't know how to handle arrays of values. So I had to go do all of this ridiculous extra work on the front-end to generate actual unique names for every single one of those elements.
[00:07:25] So that everything that came through to the server was uniquely named, so that their routing system could handle it or whatever. It's that kinda nonsense. Why do we bastardize what we're doing on the front-end because of some constraints on the back-end? This never made any sense to me.
[00:07:39] And so what I began to formulate were these thoughts like, we need something in between these two.