“yarn install," I imagine myself saying to him a tad defensively. “It’s absolutely critical to maintain dependencies. You can’t live without it.”
I see him staring back at me impassively, saying nothing.
“TypeScript,” I offer. “JSX too. You don’t know about either of these yet, but trust me, they are incredible time-savers.”
Silence. I’m beginning to feel uneasy.
“Babel?” I say almost sheepishly. “Webpack?”
His face is impassive, save for the single tear that slowly slides down the side of one cheek.
“ESLint!” I shout. “Prettier!” I’m aware of the shrill edge creeping into my voice, but I can’t help it. I’m beginning to feel desperate.
“Thirty minutes?” he whispers, his voice nearly inaudible.
“Relay Compiler!” I plead. “Look, I know that Jest has its own completely parallel build toolchain that is unrelated to production, but it’s a really handy, popular tool!”
He glances down at his watch, shakes his head, and turns away from me.
“Why can’t he see it?” I think to myself. Of course, each little tool we use in our projects these days comes with its own small overhead, and yes, they come with their own configuration mechanisms, and no, they don’t always play nice with each other and cause you to lose a day here and there untangling them from each other, but surely he can see the value in them can’t he?
Unfortunately, the dispute between us can never really be resolved to either of our satisfaction and the reason why is that we’re both right.
From my perspective in 2022, I can plainly see all the clear wins that things like TypeScript and JSX offer, not to mention modern comforts like an established testing framework that Jest provides. But just as relevant to that class of time savers is the feeling of fleetness that Node imbued. And that's his point: how many hours – no, days – have I spent waiting for the code to build? I’ll never get those back.
Or perhaps TypeScript? Same.
Linter? Formatter? Yup.
Bundler? Task Runner? Test Framework? Language Server? Check. Check. Check…. and let’s see… yup, check.
It even comes pre-rolled with a cross-compiler to turn scripts into platform binaries, and there’s more pieces of the SDK puzzle being added to it every day.
As a result of all the wins baked in, working on a Deno codebase feels nearly frictionless. The time between when you clone a repository to when you’re running tests or even starting it up is barely noticeable.