Tweet this Episode

MJS 034: John-David Dalton

Today’s episode is a My JavaScript Story with John-David Dalton. JD talked about his contributions to the JavaScript community like Lo-Dash, Sandboxed Native, etc. Listen to learn more about JD!

[01:15] – Introduction to JD

JD has been on JavaScript Jabber. He talked about Lo-Dash.

[02:00] – How did you get into programming?

First website

This was when JD was a junior in high school. Then, he got involved with a flight squadron for a World War 1 online game. They needed a website so he created a GeoCities website for them. That’s what got him into JavaScript. He’d have to enhance the page with mouseover effects – cursor trail, etc.


From there, JD started created a Dr. Wiley little-animated bot that would say random things in a little speech bubble with the HTML on your page like a widget. He also passed an assignment turning a web page into an English class paper. He used to spend his lunch breaks learning JavaScript and programming. He also created a little Mario game engine – Mario 1 with movable blocks that you could click and drag and Mario could jump over it. That was back with the document.layers and Netscape Navigator.


JD wanted to be an animator in animation so he started getting into macro media flash. That led him to ActionScript, which was another ECMAScript-based language. He took a break from JavaScript and did ActionScript and flash animations for a while as his day job too.

PHP and JavaScript

JD started learning PHP and they needed to create a web app that got him right back into JavaScript in 2005. That was when AJAX was coined and that’s when Prototype JS came up. He was reading AJAX blog posts back then because that was the place to find all of your JavaScript news.

JS Specification

JD remembers being really intimidated by JavaScript libraries so he started reading the JavaScript specification. It got him into a deeper understanding of why the language does what it does and realized that there’s actually a document that he could go to and look up exactly why things do what they do.

[06:45] – What was it about JavaScript?

JD has been tinkering with programming languages but what he liked about ActionScript at the time was it is so powerful. You could create games with it or you could script during animations. He eventually created a tool that was a Game Genie for flash games that you could get these decompilers that would show you the variables in the game, and then, you could use JavaScript to manipulate the variables in the flash game. He created a tool that could, for example, change your lives to infinite life, grow your character or access hidden characters that they don’t actually put in the game but they have the animations for it.

JD was led to a page on the web archive called Layer 51 or Proto 51. That was a web page that had a lot of JavaScript or ActionScript snippets. There were things for extending the built-in prototypes – adding array methods or string methods or regex methods. That was how JavaScript became appealing to him. He has been doing JavaScript for almost 20 years. PHP also made him appreciate JavaScript more because, at the time, you couldn’t have that interface.

[09:30] – Lo-Dash, Sandboxed Native, Microsoft


Eventually, JD grew to respect jQuery because I became a library author. jQuery is the example of how to create a successful library. It’s almost on 90% of the Internet. He likes that right now but before, he was a hardcore Prototype fanboy. He didn’t like new tools either. He liked augmenting prototypes but over time, he realized that augmenting prototypes wasn’t so great whenever you wanted to include other code on your page because it would have conflict and collisions. Later on, he took Prototype, forked it, and he made it faster and support more things, which is essentially what he did with Lo-Dash.

Sandboxed Native

JD created something called Sandboxed Native, which got him into talking on conferences. Sandboxed Native extends the prototypes for the built-ins for your current frame. It would import new built-ins so you got a new array constructor, a new date constructor, a new regex, or a new string. It wouldn’t collide or step on the built-ins of the current page.


After that, JD ended up transitioning to performance and benchmarking. That landed him his Microsoft job a couple years later.


John-David Dalton

Charles Max Wood



Subscribe by Email

[activecampaign form=29]