orchestrate-scott-motte

Scott Motte (@scottmotte) is a hacker who works with a number of different languages. Node.js has been a recent favorite, which is why I asked him to share his thoughts as a guest on our Voices series. He’s a Developer Evangelist at email company SendGrid (where we previously worked together). He’s often introducing developers to new technologies and good community practices. He touches on both in the following discussion.

OK, first off, you love Node. Why?

JavaScript is what I like to call an artist’s language. I use the term loosely, but many of the JavaScript developers I know are much more artistically inclined than the python developers I know for example. JavaScript has so many quirks and so much freedom, that you can write it in very different styles. At the same time it is a great beginner’s language – it’s easy to start adding numbers, combining strings, and alerting things on the screen. I like things that are both easy to begin and you can optionally go very deep with. Node brings that to the server side.

And I like that Node does that because ultimately it brings new people to the server-side world. It brings beginners and it brings artists. And that diversity is good.

If someone is brand new to Node, how do you suggest they get started?

Create a hello-world app using the Node.js web framework express. Literally, follow the first section guide here. You’ll very quickly – more than any other server-side language – having a working website.

Should I use a Node framework? If I use one, which do you recommend?

Yes, use expressjs as a beginner. Use hapijs intermediate and higher.

You maintain the SendGrid Node library. Any tips for someone writing an API client in Node?

Document your methods in the README as you build. And use another library’s repo as an example to more quickly set your own up. This is a good example of that.

You’re also a pilot. See any similarities between flying and coding JavaScript on the server?

A bit. As a pilot you’re often consulting checklists – it’s part of the culture. You run through a checklist before you take off, you run through one before you land, you run through one before you taxi to the runway, and many more. I run through a checklist before I deploy a new version of a node library up to npm. This is really attributable to any language though.

If anything, I’d say the biggest insight I see between JavaScript and piloting is actually a dissimilarity. In flying, one mistake compounded on another can quickly compound onto more, and you can kill yourself. In JavaScript, you spend most of your time messing up, then adjusting, then messing up. So have fun, experiment with JavaScript, mess up some things. Hack. I think you’ll fall in like with the language if you do.