So you don't know anything about PHP as all of Shaw's claims are completely false. I've use both languages and the only reason I might pick Node.js is simply due to it's high performance in processing network requests or because it's async. So let's break those claims down:
- Node.js development environment is not any less complex than PHP. In fact, with the amount of npm packages you need to run your applications I would say it's more complex. Have you ever taken a look at `node_modules`? It's size is measured in GB and it contains hundreds of packages. You do need an HTTP server with your PHP, granted, but that just means you don't have to install that Apache or Nginx later on to proxy your node.js app
- PHP doesn't need separation between front- and back-end. It works with both. PHP can print HTML and I remember that's the reason it was invented: to serve webpages. The fact that he immediately jumps to claim you need a separate front- and back-end application means he's claiming that all front-ends should be written using React, Angular, Vue or some other JavaScript UI framework. They don't need to be.
- I don't know what "Node.js only requires installation on the server" means? It makes no sense. He develops Node.js apps on his computer without Node.js?
- Separation of concerns and lower coupling is something that can be achieved on a code level by actually recognizing what those patterns mean and applying them. The fact that he claims that means he's only ever used out-of-the-box-ready frameworks that already contain those patterns and has never actually studied or applied them himself. You can achieve this very simply by using layered architecture, for instance. Even the MVC pattern touches on separation of concerns by containing a presentation, application and business/persistence layer. And lower coupling is such bullshit. With node.js you're basically married to all those npm packages you install and if one of them disappears, then what happens? Well, some of us remember the deployment disasters that occurred. Lower coupling can be achieved by abstracting away concrete implementations so your app is more modular. I assume he's simply referring to code coupling, not infrastructure level coupling like databases etc. and even those can be abstracted away to some degree.
- Node.js uses Apache/Nginx proxy.. I assume he means that he just starts his app and creates a proxy to localhost:3000 or smth. Sure, you need a bit more configuration with Nginx or Apache to run your PHP app in production, but at most that's 100 lines of configuration. Not a big deal. And depends on the application.
- "Node.js makes it easier to find a suitable package" - I would not say that's a good thing. That simply means you will never learn how to program those things yourself because you just google a package and install it, without actually understanding what it does. Like I said before, Node.js modules folder size is measured in GB, not kb, which to me is not a very good thing. When you're an experienced developer, using those packages can save you time and that's what they are for. You can use Node.js to create application for rapid prototyping, but you should exercise some constraint before putting those packages directly to a production application.
That was a bit of a rant. There are multiple comments on Shaw's article about his claims, which I call utter bs. It was clearly meant to antagonize people and he succeeded in doing so, thus gaining more reads, but in the process he's putting out false information out there which some people will take as an absolute truth.