DHTML was totally rad, like how the Budweiser frogs were rad. In the late 90’s you really couldn’t do much of anything on the web except add 88x31 buttons and build with 1x1.gif spacer tricks. But then Dynamic HTML came out in IE4 and a whole world of hover animations, mouse pointer effects, and pretty much nothing else were possible. It was really cool.
Please don’t hurt my feelings
Quick disclaimer: I’ve built things primarily in Ruby the last decade, and I still love Ruby (and in fact, During’s backend is a Rails GraphQL API-only app, and I couldn’t be happier about that). I’m definitely not a Fancy Programming Language PhD person who has lots of Facts and Reasons behind language design and stuff. I just like building things. So if this post gets you real antsy about Something Holman May Have Gotten Wrong, well, you’re probably right. Like most bright-eyed Rubyists, I’m writing this post about feels rather than reals.
One of the things I kind of rolled my eyes at in the last five years was Node itself… specifically its ecosystem. You know all the jokes by now: there are five hundred thousand packages to capitalize the first letter of every word, and each of them have about fifty hundred thousand dependencies, each of which is in turn has about one line of code.
I had vague feelings about this being weird from a security/performance/whatever perspective, but generally from a building perspective every time I looked into starting a new app there were millions of permutations of packages and libraries you could use to stitch together your stack. Cool, lots of freedom, I get it, but remember: I still think Rails is cool. Hell, I was one of the huge +💯s on the infamous DHH commit that added
Things have changed. I’ve happily joined the React bandwagon, and that solved a lot of problems I didn’t even know I had (more on that in a few). But one of the things that’s really jazzed me up with regard to the ecosystem question is Create React App. CRA is a Facebook-supported open source project that debuted last summer that kind of gives you the framework of an app, getting you started quickly with React and with suggested paired libraries.
I found CRA fairly mind-blowing, because it took care of all of these fairly answerable questions for me: how do I bundle my code? How do I structure my code? How do I do hot code reloading (which is a great name for a band)? How about code splitting? How do I set up testing? How do I work with Babel, whatever the fuck that is? (Just kidding. I know what it is by now. It’s terrifying, that’s what it is.) These are all answerable questions, but I just don’t have the time to spend months and months getting to know all the options, trying them out, and getting them all to work together. CRA has best-in-industry people like Dan Abramov doing all this crazy shit for me.
What’s more, updates are great. It’s just a
yarn install away. A few months ago I basically got Service Worker support for free. It’s getting me into techniques that I haven’t even needed to learn yet (but would). It’s neat.
Okay, so as a Rubyist I don’t really get to be all high-and-mighty too much anymore. Rails ain’t the hottest shit on the street anymore, our performance was never really great, and lol, the language still hasn’t even moved off of Subversion. But one thing I’ll still love is the syntax. The language feels so much more freeing than anything else I’ve tried. It’s, well, beautiful, at least in my mind.
Prettier, if you haven’t heard of it, is awesome. A screencast says about a billion words:
It’s basically like
Much in the same way I love
gofmt, I love it in spite of whatever syntax changes it makes. In Go, for example,
gofmt makes it really easy to not care that I’m actually using tabs instead of spaces, which is wrong. But all Go code is now the same consistency in syntax now because of it, so it makes that horrible action totally bearable. With Prettier, I don’t have to care about the semicolon debate, or really have to care about how I type anything at all, really. Actually, Prettier’s made my code far, far worse, because now I don’t even really bother to indent lines or put parenthesis around things anymore; I just cmd+S in Atom and I’m good. Give me a whiteboard hiring test now and I’m totally screwed (not that I wouldn’t be anyway, but I’d be screwed even more now, I mean).