“What tech stack should I use?” is easily one of the most divisive questions you can ever ask a group of developers. If you look at social media, communities and YouTube video comment sections there are dozens, if not hundreds of arguments, debates and “my tech stack is better than yours” playground taunting every single day.
It feels very much like the old “tabs vs spaces” debate (wars you can still find being fought in some places) but on steroids. It’s weird.
While I have my preferred tech stack, I’m not here to tell you why you should use it. I’m here to tell you why it doesn’t matter.
Mostly.
If you’re a web developer, you have a tonne of technologies available to you… and if you’re working in the Javascript world, another 7 JS frameworks have probably been released in the time it’s taken me to write this sentence.
There’s PHP, Ruby, Node.js (Javascript), .NET, Python… Perl if you really enjoy making your life difficult. All of these, and a bunch more, can be used to write code that’ll serve web pages to a browser. Javascript is the current hot topic for building front end code that provides users with a rich experience, but this obviously sits upon HTML and CSS.
Within these are frameworks and libraries that are designed to do one thing: Make your life as a developer easier, and make it faster to build a project.
If you’re a game developer, desktop software engineer or embedded systems guru you’re probably using things like Java, C++, C, .NET.
Data processing and analysis? Python, Rust, R.
There are options galore - and everyone has their own opinion. It’s like going to buy your first car - so many choices, and if you ask for advice you’ll get subjectively opinionated responses. The salesperson is going to say anything to sell the car, and friends, relatives, work colleagues… well they’ll all say you should go for this, that and the other based on their own experiences, likes and dislikes.
Sound familiar?
Don’t get me wrong - you absolutely NEED to ask some of these questions because if you have no experience to lean on how do you even know where to begin? Just be mindful of stripping the subjective opinions from people’s advice, and stick to the facts.
So why doesn’t the tech stack matter?
I said it doesn’t… mostly. Let me start with the “mostly”.
All languages have a common goal - to take your inputs, convert it into something the computer can understand, run that code and return an output. However, some languages are much better than others at certain tasks. If I wanted to build an embedded application C or C++ (being compiled languages) are likely the way to go, whereas PHP or Ruby just wouldn’t work - they’re not compiled, and need runtime binaries to translate the code on the fly.
Rust and R are good languages for large data processing because they are insanely fast at running code.
So from that perspective, your tech stack group is largely going to be determined by the work you are doing. Realistically, it’s the only time the actual stack you use will actually matter.
I work predominantly in the web and web applications space, specifically with PHP and Javascript. Because of this, there are a colossal amount of options - frameworks, libraries, practices, configurations… you could be going for days researching the options alone.
If you’ve done your job right, neither the client nor the end user should be able to tell what a project is coded in (see where this is going?) A project built in React should function in just the same way as VueJS. A page or app should work the same way if it was built using the Laravel PHP framework, or the Ruby on Rails framework.
The reality is that where the end result is the same, the choice should be based on your experience and the ability to persuade the business that should they need to, they can hire more developers.
Everybody has their own preferences - it would be really nice if, for a change, we could just all get along!
What do you use then, and why is it better?
I have spent almost my entire 20+ year long professional career rocking the PHP boat. I love it - it’s versatile, it gets the job done and is the predominant server-side language used for websites and web applications. It’s also massively improved from the PHP 4 days and these days it’s packed with some awesome features and functionality.
I started using PHP before MVC frameworks were a thing, so I remember the days of various include_once()
statements all over the place - glad to have left those behind! I started out using CodeIgniter, then I built my own MVC framework, then I found Laravel at version 5 and have stuck with it since. (If you get the chance to build your own framework - even if it’s only basic - I recommend it. It teaches a lot about how a framework actually works.)
For front end, I’ve gone from the old days of styling using tables and sliced images, to CSS, to the Bootstrap CSS framework. I now mainly use TailwindCSS, but occasionally work with Bootstrap on some projects (mainly existing projects, or when a client would prefer it.)
And for web applications I’ve gone from standard HTML to jQuery, to today’s modern frameworks. I can work with React, but my main go-to is VueJS. Combined with the InertiaJS routing library, it makes building applications that utilise Laravel for the server-side lifting a lot easier and faster than it otherwise could be.
So for programming and particularly for new projects, I mainly use the stack commonly referred to as “VILT” - Vue, Inertia, Laravel, Tailwind. Why is it better? Because I said so… ;) Jokes aside, though, it’s a great stack to work with and there are plenty of people out there who are also versed with the stack for resourcing.
Does that mean you’re only open to working with the VILT stack?
Absolutely not, it’s just my preference, and if you have a greenfield project you want me to work with you on, it’s the stack that’ll get the quickest results from me.