Your Framework is Dead; Long Live Your Framework
Let me preface this with the fact that I am primarily a Rails Developer. Inherently this typically means I have a lot of respect for David Heinemeier Hansson (DHH) both as an engineer and as a person. That being said, a few months ago I saw him perpetuate an ongoing issue in the developer community and it made my heart sink a little bit.
Ass In Chief at NodeSource, ladies and gentlemen 🙄 https://t.co/7dt0J4QpyR
— DHH (@dhh) November 28, 2017
To understand this tweet you have to understand the climate of the Rails community at the time, and really, currently still. Many have claimed that both Ruby and Ruby On Rails have been on a downward spiral towards obsolescence largely because of a lot of the “new hotness” coming out in the javascript world and partly because of ruby’s supposed performance issues. Shortly before this tweet a major code camp dropped rails from its curriculum, and there have been a few other snags for the ruby community as well. So ruby developers found themselves in a very similar position PHP developers have been in for the last 5 to 10 years.
I contend that DHH, although I feel he probably should have thought a bit before pressing that tweet button here, isn’t the problem. Hell, Joe McCann isn’t the problem here either. I honestly think the guy just chose a poor time to make a tone-deaf joke without really understanding how sensitive the RoR community was at the time. The problem is software developers generally seem to adopt some form of superiority complex in reference to their language or tools of choice. This is not a new thing. Think back to the days of Emacs vs VIM, or even further back to the days when you were judged based on the Linux distribution you chose. We devs have always been fanatical about the tools we choose to do our jobs.
I think its important for us as developers to form opinions about frameworks, languages, and tools. There is nothing wrong with enjoying what you do. However, I think it is equally important to remember that others may have different opinions than you do and, contrary to what you may believe, that does not make them wrong.
When beginning a project the most important thing to consider when choosing a tech stack is what is the right tool for the job. Now, there are a lot of implications there. You have to consider if a particular framework is appropriate. You wouldn’t use Vue to build out a REST API for instance. Are you going to be hiring a team to help with the project? Then you have to consider the availability of developers familiar with the framework you’re using. Are you on a tight schedule? Then you need to consider which framework will be the quickest to implement and iterate through. There are a lot of factors and each project is different. At the end of the day, you have to pick the right tool for the job… period. That may mean you find yourself leaning more towards a framework you’re not overly familiar with or more towards a framework that is “dead”.
The polarity and rejection of those that have different approaches to a particular problem get us nowhere as a community. I would argue that what it does is prevents a die-hard fan of a particular framework from ever wishing to experience anything outside of their chosen fandom. We need to spend less time worrying about the popularity toolsets that we use and more time concentrating on building the internet and making it bad ass.
So, to summarize, whether you’re a PHP developer, a Ruby developer, a Java developer, or a Node developer, we can all agree on one thing; we love what we do. We are living in an unprecedented time where deploying a website is one CLI command away, and there is always something new to learn or some amazing problem to solve.