I did NOT say Node is better than PHP

Reflecting on my most popular article

Photo by Marc-Olivier Jodoin on Unsplash

I wrote an article in October about my journey as a developer. In that article I explained why I felt that shifting from PHP to Node.js was the right choice for me. I have to say I was surprised at the feedback I got. And how popular that article has been.

I appreciated the supportive feedback, but this seemed to be in the minority. Most of the remaining feedback was about how I was wrong and that PHP met all my needs. (Awesome, good to know someone could determine ALL of my needs from a single article.) Some of it was more technical and explained in some detail how I didn’t really solve my problem as many of the same issues existed in Node as well. (I do enjoy a good technical discussion, and respect the intent of those commentors.) Some of the feedback was “great, yet another PHP is dead article that is obviously wrong cuz PHP is still here” (it is NOT a PHP is dead article).

I took offense at a couple of the comments, but after a few deep breaths decided to let it be. One thing I’ve learned in my 20+ year career is that these religious wars never have a winner. (See Vim vs Emacs). The discussions can be entertaining, and even educational. But in the tech world there is rarely a single “right” answer.

You see, each developer’s path is personal and unique. The projects we take on, the languages we learn, the directions our interests take us, and more. These all lead to a unique journey. Of course there are many similarities in our journeys. Those similarities are what bind us as “developers”.

If we all try to build a content management system with PHP, we will all be faced with similar problems to solve. From that comes some common techniques. And conforming to best practices/techniques is a recipe for fewer problems in the long run. BUT, that does not mean that technique is absolutely the best solution in all cases. The CMS we are all building may not look the same at all. Maybe I want my system to be very portable (USB style), while you are working on a system for your business that will only ever reside on a single server. That single difference defines different needs for how we store the data. And how we secure our systems. And how we process the data. That single difference shows that we are taking different paths to arrive at our own solutions. The important thing is that both paths are absolutely valid.

It is this type of differences that lead me to Node.JS. My work got more and more isolated from web development. I needed to process the data independently from how it was displayed in a web page, and my data was not always in a typical RDBMS database. For me, I hit a point where using PHP was not the right answer. While PHP can be used at the command line, my experience says there are better ways. Node.js is a happy middle ground between the Web development world, and the lower level C/C++, Python, Java, etc. worlds.

With Node I was able to focus on the domain specific issues faster without worrying about presentation, or how the web server was configured. I didn’t have to work within the confines of a CMS tool or a comprehensive framework. And because I am very comfortable with JavaScript I was able to skip past a large number of the language idiosyncrasies. As my Node apps became more complex, I of course encountered more complex uses of JS. And limitations. In some cases, I may need lower level languages yet — perhaps Python or C.

For me the barrier to getting started with my projects was much lower with Node than with PHP. Not because there is anything inherently wrong with PHP, but more due to how I work and the nature of my work. Simply because my personal journey took me down a path that may not be the same as other web developers.

Still I find it entertaining to hear the feedback that my experience (and successes) were “wrong”, and that my article was hog-wash because I did not present a compelling enough argument to convince EVERYONE. Interesting feedback considering my intent was only to post what worked for ME. I thought I had made that clear in my post, but I guess I have some work to do in this area.

If you are a newer developer, there is much to be said about conforming to the “norms”. But once you get comfortable you need to recognize there is more than one way to accomplish a goal and the norms do not always apply.

The languages we choose can be very powerful, but they should never be used as a hammer. That is, use the right tool for the job. If you are doing a ton of complex file management on a Linux system, perhaps a Bash script is better/easier to maintain than writing a PHP solution. Too often we developers use the “tool that we know best” as the hammer to solve the problem.

I look forward to the responses to THIS article. I’m sure at least one of my statements is “wrong”.

In the meantime my journey has led me back to lower level Linux management, and creating custom installation USBs for custom hardware. I make more pay now than I did as a PHP developer. So I’m content at the moment. Your journey may of course be different than mine.

Thanks for reading my ramblings.

Technology enthusiast

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store