Developer’s Dilemma of Choice

Published on 9/9/2024


As bright and motivated teenager beginning my journey of self teaching myself programming, every single youtube video and blog post that I ingested was telling me one of the two things:

  1. Learn Python and everything you can about big data
  2. Learn Javascript and React so you can get a job

Several years later and even into my current professional career, I’m learning that knowing React didn’t have as big of an impact on my career growth as I was fed to believe when I was younger. Sure I maybe should have learned Python and data analytics so I could be a bit more comfortable financially but at least I clawed my way out of using React… right?

I’m Being a Bit Dramatic

React may not be the soul crushing white triangle cult that some on social media may make it out to be, but I do believe that there is a very strong presence online pushing for people to learn React. Which is for good reason! React and it’s co-existing meta framework Next.js are consistency at the top of every developer survey for most popular framework and highest user growth.

Being the most popular framework, and having the highest amount of growth simply means that you have the largest available developer community. Having that community and support available behind you with a familiar technology is very important, and it would be a disservice to not mention the amazing people that make it work. However from an outside perspective looking in, I can’t help but notice some of the issues that the are developers facing within this ecosystem.

The Overwhelmingness of Choice

An issue I see among many developers is that there are often so many options within React to solve a specific problem they are having, and having that many choices can be quite anxiety inducing. Take global state management for example - within React you can reach for Redux, Recoil, MobX, Jotai, Rematch, or any of the others from the extensive list. Some would say that useContext does it just find but are you really going to submit yourself to using that?

Now take another framework like Vue where it’s common practice to default to using Pinia for global state management. A few years ago the answer would’ve been Vuex, but both were developed internally by the Vue team and have amazing qualities in their own ways. I’ve been developing with Vue for nearly three years now and I don’t know if I could even make up the name of another one.

The Freedom of Choice

A large chunk of my professional career has been focused in the Laravel and Vue ecosystem, where a lot of those common development choices are made for you. Authentication, database interaction, data cacheing, state management, webhooks, and more. However I have been more recently working with a more full-stack TypeScript application built using SvelteKit, which I have found to be a sort of middle ground between these two development philosophies I find myself in.

I’ve surprisingly found myself enjoying the process of debating between the libraries I wanted to use to handle form validation. This is coming from Laravel where the built-in form request validation classes handle all the validation rules I could need, as well as mapping those errors in a developer friendly format for the client side code. Setting up and configuring Zod within my project itched a part of my development brain that doesn’t get scratched too often.

Problem is I haven’t shipped any of that code into production… all of the SvelteKit projects I’m working with in production all had pre-existing architectural patterns that were carefully setup for full-stack development. Skill issue? Maybe, but needless to say I think that having to bog yourself down in development decisions is not worth it when you’re just building something cool.

Embrace the Ecosystem

Do I see myself ever willingly going back to working with React? Probably not. Is it still a great option for developing software? I don’t know, is Vercel paying for this? No matter how you decide to build your next project, I suggest that you enter it’s ecosystem with open arms and learn about how to do things the Laravel way, or the Vue way, or even the React way.

Too many times I see YouTube videos and blog posts with the title of something like “[insert great open-sourced framework here] Tutorial for Javascript Developers.” While it’s important to draw comparisons to a familiar technology when learning something new in development, I feel it can be equally, if not more fulfilling to learn the best way to develop and build within your surrounding environment.

These frameworks and tools are built by amazing people and have been used by so many people who have paved the way for design patterns, there’s a reason that they work in the ways that they do.

Well What Now?

In the end, my journey through various frameworks and technologies has taught me that there’s no one-size-fits-all solution in software development. While React was once hyped as the must-learn tool for career success, I’ve come to appreciate the structured simplicity of frameworks like Vue and Laravel, where many decisions are made for you, allowing you to focus on building. However, I also recognize the value in having the freedom to choose, as I’ve discovered with SvelteKit. The key takeaway? It’s not about the specific tools you learn, but about finding the balance between creativity and productivity, and ultimately using the right tool for the job at hand. Whether you’re navigating through a sea of options or enjoying the comfort of predefined paths, the most important thing is to keep learning and adapting as the industry evolves.

Riley Edward.

© 2024. All rights reserved.