PHP vs Node.js: Which is better?

JavaScript has been around a long time and has always been at the forefront of making things happen. That is, on the front-end – handling everything browser-side. For back-end, doing the heavy server-side stuff, we used PHP. Even on some of the most popular websites worldwide. Meanwhile, Node.js has really overturned the old way of doing things. So now it’s PHP vs Node.js – who wins?

The story of Node.js and PHP

Many wonder why JavaScript was trapped in just front-end. It led to Node.js and the framework which allows JavaScript to not just run client-side, but everywhere. In this ideal world, developers could use a single language, both when programming client-side and server-side. In fact, Node.js has really taken off for a variety of reasons. And if you develop, you have an enormous amount of choices of platforms including the ultra-popular Angular JS.

PHP has also seen a huge amount of development with speed being one of the greatest benefits. At version 7, PHP has come a long way with JIT compiling a particularly popular feature of the later versions of PHP. Basically, PHP can now deliver just as quickly as Node.js and there’s also HHVM with hash which supports really cutting-edge programming techniques.

As always in technology, it’s not easy to decide what will lead the future. Sometimes there is a place for both competing technologies, sometimes it’s Betamax vs. VHS: only one will survive. But right now, we take a look at the situations where PHP serves you better, and point out the use cases where Node.js is a better choice.

Pro of PHP: Code and content together

As much as projects have different requirements for efficiency of code, logic and planning, it stays true that splitting the logic layer from the content layer is a wise choice. But do you want to spend time doing so? A PHP advantage is that it makes it easy to quickly add logic in the middle of HTML content. You can just trigger some logic by picking out a few markers in the URL, and tweak your content accordingly. Job done. And with some websites, that’s all you need.

Pro of Node.js: Everlasting power of MVC

A complex site with lots of logic snippet dispersed across pages can be difficult to manage. With Node.js you need to act in a more structured way (Model-View-Controller model). But with a complex application, structure is better for everyone. Node.js prompts you to lay code out in a way that is easy for you to maintain. And easy for a new project team member to understand. Yet, planning always takes time, and this structured approach might not be ideal under all scenarios.

PHP vs Node.js: Having variety against being up-to-date

Experienced programmers will know that an established code base is both a blessing and a curse. On the one hand, PHP provides you with a wide selection of libraries and frameworks, so you don’t have to write thousands of lines from scratch: almost every imaginable necessity has its implementation in code. However, this huge code base is not necessarily fresh or relevant. In the world of fast-moving web apps, this can be a liability.

Node.js, in contrast, offers a code base which is aware of the latest developments in web architecture. Though you may find fewer completed code chunks those which you do find will be more relevant. Besides, with Node.js you’ll find coding from fresh easy and quick because of its design. It fits into current development models, including the push for clients to do the heavy-lifting.

PHP vs Node.js: Simplicity but also flexibility

Though we’re currently on PHP 7.0, the initial purpose of PHP was simply to serve as a connector between HTTP requests and a server database. Considering how capable a database can be, this simple layer of basic functions and a couple of variables is often all that you needed. In fact, for a lot of use cases, all you need is that thin layer of PHP, and that’s it.

JavaScript, however, gives you more flexibility and the opportunity to pull in libraries by means of jQuery. It’s so powerful that you can shift functions around as if they were objects. Besides, Node.js is a modern language and despite some frustrating aspects also offer some really useful features, including the much-loved closures. So still PHP vs Node.js, but let’s keep going.

PHP vs Node.js: Growing code or multiple languages?

PHP code is expanding, but Node.js opens the doors to many languages. Many PHP developers have yearned to be able to do more with PHP than simply pull content from a database and present it in a tidy way. In a way their wish has been granted: you can now use HHVM (open-source virtual machine) to do much more than you could before, including the use of annotations and lambda expressions. Even if you are restricted to using HHVM for your code this is not so much of a problem as HHVM is actually very fast.

But why restrict yourself to HHVM when Node.js gives you what is literally dozens of options. With Node.js you can cross-compile so many languages that it really opens a world of opportunities. Whether you prefer C#, Lisp or other languages that could even include BASIC or, if you must, Pascal – there’s no arguing, you have choices. The fact that so many languages can be cross-compiled to run in Javascript is a huge advantage in many situations.

Client-side code using Node.js

Downside

It’s true that some websites don’t need to execute any code on the client side. They simply use PHP to generate HTML from a database and get done with it. This is especially important when pages are rendered by mobile phones with small brains. Because you don’t want a code-heavy client side that gets bogged down with a slow mobile processor. Besides, simple HTML is less likely to lead to glitches.

Upside

Yet there are advantages to keeping some of the workload on the client side. And Node.js is simply more efficient, especially in terms of server usage. You send less data over the internet because there is less HTML mark-up. And you don’t need to submit a huge chunk of HTML code every time a little bit of data changes. AJAX takes care of all of this. This way of coding is ultimately  useful if your website is very data-driven, and requires more interaction from the user.

Database Queries: Advantages for both PHP and Node.js

If you’re familiar with and love SQL, PHP could be the best option for you. PHP was built closely to MySQL and databases similar to it such as Percona or Drizzle. Besides, you can easily connect to other SQL database from Oracle or even MS. Simply by making some basic changes to the code you use. Because SQL and the SQL code is so universal, it makes it really easy to work with databases and PHP.

JSON is not a bad alternative, however, as this too has a wide spread of databases it is compatible with. If you’re thinking of non-SQL databases for your application JSON can turn out to be quite a good solution. Though you can match JSON with PHP too, the similarity between JSON and JavaScript makes it great in a JavaScript environment.

It’s all about speed – but which?

Often there is a trade-off between the speed of writing the code, and the speed of an application executing. This is definitely the case with PHP and Node.js, with PHP being incredibly quick to put together. With PHP you don’t need a compiler or any JAR files. And PHP is an excellent choice if you need a working project really quickly.

On the flipside, PHP code doesn’t execute that quickly. In contrast, Node.js is code that executes smoothly and quickly reducing the load requirement on your server. You also get access to callbacks, which wastes less time when you try to deal with multiple different threads. You’ll spend more time coding and compiling with Node.js. But your code will be more optimized in the end.

PHP and Node.js Ecosystems

Finally, one distinction between Node.js and PHP that is worth keeping in mind is this: Node.js has a single code base. While there was a split in Node.js a while back, the group behind it has, for the most part, stuck to its guns and provided developers with the consistency they need.

However, the ongoing activity around PHP has benefits. Competing spur frameworks and libraries of the different teams want to add more useful features and improve performance. Zend and HHVM are both excellent projects. But there is a risk that, in the long-run, you’ll end up developing code on a code base that is relegated to the ash heap.

PHP and NodeJS – Supported Technologies

Node.JS PHP
Content Management Systems Apostrophe2, PencilBlue, Enduro.Js, Ghost WordPress, Opencart, Drupal, Magento, Joomla, ModX
Model-View-Controller frameworks Express JS, Sails JS, Koa JS Zend, Laravel, CodeIgniter, CakePhp, Symfony
HTML templates Mustache, EJS, Jade, Embedded JS Smarty, Twig, Blade, Volt
QA Jasmine, Protractor, Casper JS, Phantom.JS PHPUnit, Dusk, Codeception, Selenium
Caching Redis, Node-Cache Memcache, Redis
Rest API Restify, Loopback RestClient, Guzzle
Horizontal Scaling Amazon Elastic Beanstalk Varnish, Amazon Elastic Beanstalk
Profiling Internal profiler XDebug, Blackfire, XHProf

What’s great for both Node.js and PHP?

Plesk Onyx Hosting Platform

We realize that there are advantages to both languages. So we offer you the ability to host code in both PHP and Node.js, with hosting features tailored to each. Let’s have a look.

Node.js

Node.js has really gained enormous popularity within a short period of time, and with good reason. JavaScript itself is so widely-used and well-understood, making it an excellent way to start building a new code base. Node.js is a great way to build lightning-fast web applications. We can help you run Node.js applications easily and with high speed, offering the following hosting capabilities:

  • You can add Node.js to an application by just a click or two.
  • Plesk lets you easily manage your live Node.js applications, including starting and stopping (or restarting) and also editing config files and installing NPM packages. Our Onyx hosting platform really offers it all.
  • Plesk Onyx for Linux also allows you to install different live versions of Node.js in the same instance, for additional flexibility.

Find out more about how Node.js works on Plesk Onyx

PHP

Plesk has always offered support for PHP. This reliable language has been around for a very long time and is the basic building block for millions of web applications. We offer a top PHP hosting solution, including the following features.

  • Onyx supports multiple PHP versions out of the box, just pick your preferred PHP version when you install.
  • Standard PHP handlers are automatically configured for you.
  • Alternatively, pick your choice of PHP version and handler, making available to your customers only the versions you choose.

7 Comments

  1. Thank you for an article! In your opinion, which language is better for streaming apps development? In this article, it is mentioned, that Node.js is preferable to PHP https://softmedialab.com/blog/nodejs-vs-php/ As you support PHP, maybe you have another point of view

  2. Very interesting article.

    I think your points are valid.

    In any case the decision should be taken by reading articles like yours. Because in some cases PHP might be good and in some other projects Node.JS might be the better option.

    Especially if the solution needs to be highly scalable and should execute fast, then Node is a good approach.

    In my opinion in 95 percent of the cases PHP might be enough. Because the requirements might be not that high (only a few hundred web visitors an hour, etc.).

    Thank you again for your article.

    Kind Regards
    Sascha Thattil

  3. Good article. However, some more things should be informed to readers e.g. code can remain manageable in PHP if the application is properly taken care by the architect. See the example of Magento – a vast list of modules, though manageable at any point.

  4. Thanks for sharing this. I’ve been trying to learn a little PHP. Great post for me and people who already use other languages like asp or asp.net and want to explore PHP. This is very helpful. Keep on the great work. I just want to say that there is no need to dive too deep in PHP if you don’t want to. A versatile coder can just pick what they need for a particular scenario.

  5. which uses less memory in the browser though? probably php..
    i feel that modern websites tend to be more boggy, if you dont have alot of RAM

Add a Comment

Your email address will not be published. Required fields are marked *

GET LATEST NEWS AND TIPS

  • Yes, please, I agree to receiving my personal Plesk Newsletter! WebPros International GmbH and other WebPros group companies may store and process the data I provide for the purpose of delivering the newsletter according to the WebPros Privacy Policy. In order to tailor its offerings to me, Plesk may further use additional information like usage and behavior data (Profiling). I can unsubscribe from the newsletter at any time by sending an email to [email protected] or use the unsubscribe link in any of the newsletters.

  • Hidden
  • Hidden
  • Hidden
  • Hidden
  • Hidden
  • Hidden

Related Posts

Knowledge Base