Sticking with what you know
Pick a new tool, or stick with what you know?
I recently got the opportunity to build a backend API server from scratch. My background is primarily in JavaScript, particularly Node.js and React. I’ve gone through so many iterations of ECMAScript over the years, so things have definitely evolved but it’s still JavaScript. On the backend, I’ve done Express and Apollo GraphQL. While I love GraphQL, it would be overkill for this project right now I think.
So I had a choice, just use Express, or explore new options? I kept seeing great things about Fastify, so I wanted to pursue it a bit (also looked at Koa, Feathers, etc.). It’s interesting. I definitely see how in the long run it will make things more nicely laid out and easier to reason about. However, I need to build stuff fast, so it’s time to keep it simple and build with what I know. I always love to learn new things, but that will be another day. If I ultimately wanted to really learn a new backend, I’d be doing golang, but that’s a much larger jump.
(It also helps when your fellow engineering colleagues say “You know you should just go with Express”.)
Besides, I have to learn mobile app development as a part of this anyway. That’s already new enough.
One more thing on keeping it simple. Express is kind of the epitome of that in a lot of ways. It’s been around for a long time. It doesn’t change a ton. It’s very minimal. Maybe others are even more minimal, but I know where the gotchas are with Express. And sometimes, that’s half of the problems you run into when building new things.
What do you think? How do you make the decision on building with what you know versus what you’d like to learn?