Need advice about which tool to choose?Ask the StackShare community!

Node.js

188.4K
160K
+ 1
8.5K
PHP

144.3K
81.1K
+ 1
4.6K
Add tool

Node.js vs PHP: What are the differences?

Introduction

Node.js and PHP are two popular programming languages used for creating server-side applications and websites. While they both have similar capabilities, there are several key differences between the two.

  1. Execution Environment: Node.js is an open-source JavaScript runtime environment that runs JavaScript code on the server-side, while PHP is a server-side scripting language. Node.js allows developers to write server-side applications using JavaScript, which is traditionally used for client-side scripting in web browsers.

  2. Concurrency Model: Node.js uses a single-threaded event-driven architecture, which makes it highly scalable and efficient for handling concurrent requests. It can handle a large number of concurrent connections without blocking, making it suitable for real-time applications. On the other hand, PHP follows a traditional thread-based model, where each request is processed sequentially.

  3. Performance: Node.js is built on Google's V8 JavaScript engine, which compiles JavaScript into machine code, resulting in fast execution. It performs well for applications that require high levels of concurrency and responsiveness. PHP, on the other hand, is an interpreted language, which can sometimes result in slower performance compared to Node.js.

  4. Community and Libraries: Node.js has a large and active community of developers and a rich ecosystem of libraries and frameworks. It has a wide range of modules and packages available through the Node Package Manager (npm), which makes it easy to find and integrate third-party libraries. PHP also has a large community, but the ecosystem is more fragmented, with multiple frameworks and libraries to choose from.

  5. Syntax and Learning Curve: Node.js uses JavaScript, which is a widely-used programming language known for its simplicity and versatility. If you are already familiar with JavaScript, learning Node.js will be relatively easy. PHP has its own syntax and features, which may require some learning if you are new to the language.

  6. Host Environment: While both Node.js and PHP can be run on various operating systems, PHP is often associated with the LAMP (Linux, Apache, MySQL, PHP) stack, while Node.js can be used with different web servers or run as a standalone server.

In summary, Node.js is a JavaScript-based runtime environment that excels in scalability and performance for concurrent applications, while PHP is a server-side scripting language with a larger community and a more traditional approach to web development.

Advice on Node.js and PHP
Needs advice
on
LaravelLaravel
and
Node.jsNode.js

I would like to share my stack in Web/Mobile application Development for Mid Sized Applications.

Project-1 : Laravel + jQuery + Android Java + IOS Swift

Project-2 : Node.js + React + React Native + Electron.

This is my current Stack, Can you comment on my selection and add your thoughts if my choice is a perfect match? Thanks

See more
Replies (2)
John Clifford de Vera
Software Engineer at CircleYY · | 6 upvotes · 335.6K views
Recommends
on
Node.jsNode.js

I would say go for Node.js since you probably would only build a REST API that would talk to the frontend and some communication with the database.

On the other hand, Laravel is a much heavier framework that follows MVC pattern. Since you don't need the V in the MVC of Laravel. You can go for a straight Express that just handles the API request and return a response.

See more
Nathan De Pachtere
Fullstack Developer at Alpsify · | 3 upvotes · 340.1K views
Recommends
on
FlutterFlutter
at

Hello Varun S,

Project-1 : If the Laravel part is an API, you should check Flutter or Quasar Framework for your frontend in order to reduce the development time and process.

See more
Needs advice
on
Node.jsNode.jsPHPPHP
and
PythonPython

Hi, I have a project on my mind, and I need some help. First of all, I know it is all about personal preference, but I am a beginner in the back-end part. So, I am trying to figure out which language is better, for example, for user authentication and interaction between the users. Also, I don't know which framework is better for this work. My first thought was to use PHP, but after some research on the internet, I'm leaning towards Laravel. I will be grateful if you have some advice for me.

#newbie

See more
Replies (7)
Recommends
on
Node.jsNode.jsPHPPHP

First thoughts: * As a beginner you need to understand concepts first, all languages out there are great, each has it's own philosophy, each is better suited for a specific situation. Learn concepts first, do something, then you will understand the differences between them and why one should be chose over another for a task * As a project manager you want your project to come to an end. You will get lost in all the different solutions out there (and it's good), but don't get lost too far. Very often I see people getting lost in those debates and never achieving things, like someone writing a book that would still be choosing the font 6 months after (we've all done that it's ok, but we have to realise it)

Chances are your project can be equally good on any different stacks. I heard an interview of someone from Uber who said something like they started with python, went to node, went back to python and went to go, and with micro-services now they can have all of them all-together.

Last remark: from what I know Laravel is a framework for PHP, so it IS PHP. Just like Symphony for PHP, Express for Node.js, Koa for Node.js, Flask for Python ...

Now to answer your question :

  • PHP has a big community, it is great and easy to start with, and you will definitely will learn real object oriented structure
  • Node.js has a big community too, don't worry finding help will be as easy. It is less easy to start with but in my point of view it is a lot easier to keep on going with it on a long run. Why ? Because it's very easy to run a new project, and it executes javascript. How is it good ? Because chances are that your front will also be using javascript (React.js / View.js are crazy good). Thanks to that you will be able to master the language better because you will use it all day (and at first mastering one language is more valuable than barely knowing two) and you won't have to switch languages in your head when you code. And communication between front and back will be in json ... Which is crazy close to javascript.

Alexander is right, if you go with PHP take your time first to do things by yourself like building your own MVC, the benefit is huge and the risk is to never really be able to understand what's happening on a deeper level. (at some point you can switch to a framework though). He's also right on choosing a strongly typed language, problem is javascript is not. This is why, if you choose node, when you start being confident, add typesccript.

Hope it helps, good luck

See more
Octavian Irimia
Recommends
on
PHPPHP

Short answer, if it's a web project (and I guess it is) go with PHP and you can integrate NodeJs services later.

@adzaria (Ezra Fayet) gave a great answer and I'd like to emphasize the first part: As a beginner you need to understand concepts first. For me that means to understand the web, how servers and requests work, APIs and few others.

Now, I'd like to add few things so, this is the long answer:

Why PHP?

  • Everyone knows about the community - PHP is way older so you will find lots of resources and I am not only talking about learning - also lots of helpful tools and packages
  • PHP is great for OOP - not perfect, but with PHP7 got great - and if you are a beginner you want to know good OOP for your future. Let's say JavaScript's OOP is a bit strange; I will not get into details but, let's say "it's not by the book". You can still learn JavaScript for your front-end

Why not Python? Python got popular because of AI - don't use PHP for AI and don't use Python for web applications. I can elaborate a lot here but I guess you get the point.

Why not NodeJs?

  • NodeJs got popular because of sockets - and it works great, but as a service
  • Try to find a good and affordable hosting for NodeJs. How about for Python?
  • I would not ignore the security issues that it had and could appear. PHP is older and, therefore, wiser :)

Now, about a framework... is this a learning project or something that you need to do fast? My advice is to start a small project and not use any framework. However, you can use packages and inspire from a framework's architecture - Laravel is a good role model.

Why not start a big project? You will get distracted, get into details and product design stuff and get scared or border and abandon it. For your project you need an MVP - list of minimum required features that you put on paper - that you will complete. After that you can improve.

Good luck!

See more
somes kumar k
Member Technical Staff at Manage Engine, division of Zoho Corp · | 3 upvotes · 358.3K views
Recommends
on
Node.jsNode.js

you can choose Node.js Here are my points

Node.js is build over chrome’s v8 and its works on non blocking io. Node.js have huge community and great packages (npm) to help you out in most cases and makes development faster Node.js has been adopted by many multi dollar company Hope this helps😊

See more
Recommends
on
DjangoDjangoPythonPython

I have used Laravel, but with Django you can develop faster, as authentication and admin panel are configured out of the box. It users SQLite by default and you won't have to worry about the database in the begginning

See more
Recommends
on
Node.jsNode.jsPHPPHPPythonPython

You cannot choose between Python | PHP | NodeJS Since they are entirely for Different purpose.

In Bird view

Python - Large Scale Projects and if you want a job in big IT company.

Node.JS - Huge computing projects and if you want job in Silicon valley startup.

PHP - Cost Effective and If you want start a business in near future.

See more
Tarun Batra
Senior Software Developer at Okta · | 2 upvotes · 346.7K views
Recommends
on
DjangoDjangoPythonPython

Python, PHP and Node.js all are capable of being used to create good complex software. There are many examples of similar applications built on all of them. If I have to pick one, I would say consider Python and Django. It is fairly easy to develop web applications on top of this stack. Scaling and maintaining the application should also not be a problem given a lot of resources are available online.

See more
Alexander Santos
Fullstack Developer at 3CON · | 2 upvotes · 354.1K views
Recommends
on
PHPPHP

The reason why i chose PHP is the amount of content you can find on the internet easily. As you quoted being a beginner, i think a more mature language would be better. And that's also another reason for following with PHP.

Python is simple and "mature", but it can be a bit hard to understand if you are a beginner. Python relies on heavy abstraction, and that's the reason behind it's simplicity. Python is an "easy to play, hard to master" language, i never recommend it to beginners. Also, one [maybe personal] reason why i don't like to use Python as back-end is: Python is very data-focused. So if your app has focus on business logic, Python wouldn't fit very well. And with that becomes an advantage, if your app has statistical focus, being data-focused or something like that, Python has huge advantage among all other languages due to many great tools the community has built.

About Node, it's like PHP, but less mature. It's as easy as PHP to find tools that can help you, for example, to abstract the database-connection's logic. But to find architectural-focused content, more advanced concepts, it's a lot harder. While that, Laravel's community, for example, has a lot of materials that involves those concepts.

Still, if you are really a beginner, i don't recommend using Laravel with PHP. Do things on plain PHP first, understand the reason behind using frameworks and Laravel's motivation.

Also, consider a strong-typed language first, those are considered more didatic, but less flexible.

See more
Muhammad Shaheer khan
Freelancer at Freelancer.com · | 9 upvotes · 631K views
Needs advice
on
DjangoDjangoMagentoMagento
and
Node.jsNode.js

Currently, I am a university student, and it is my second last semester with a major in Computer science. I want to start my career in full-stack web development. I know Python with Django + PHP with Laravel, and my focus is on learning MERN stack. I am a little bit confused as to which technology I should choose: Django or Magento or MERN stack.

#newbie

See more
Replies (2)
Recommends
on
ReactReact

I suggest you to go with MERN Stack (Mongo,express,react,Node). As you know python and django which is a plus point because you can use python and node as your backend and for front-end use react(easy to learn) and database of your choice.(Mongo or SQL)

See more
Moinul Moin
Recommends
on
Node.jsNode.js

GO For MERN Stack... brother

See more
Max Loua
FullStack Dev at Nouvelles Donnes · | 3 upvotes · 390K views
Needs advice
on
Node.jsNode.jsRailsRails
and
Rails APIRails API

Currently working on my company's new saas, the main goal is to manage content and user. I'm familiar with the rails framework and how it is easy to code and deploy. The thing is I'm the only dev on the project, and in terms of the tech stack, there is no preference. However, because Node.js is everywhere and there is enough dev on the market, I am stuck between choosing Rails or Node.js. I don't mind implementing Vue.js or React on the frontend, but I need a solid argument to explain to people that aren't necessarily tech-savvy as to why we should choose Rails over Nodejs.

See more
Replies (6)
Recommends
on
Node.jsNode.js

You are probably referring to ruby on rails for web development and nodejs for building the backend. Nodejs has frameworks such as express and next which not only provides a minimal code to build a backend but also gives the flexibility to try and experiment with the framework choices. For example you can have express framework + Passport for OAuth .... etc. The flexibility and the constant improvement of the language provides a good reason to opt for nodejs. Nodejs uses javascript which makes your code uniform when you are working full stack i.e react in front end and nodejs in backend.

See more
Recommends
on
Rails APIRails API

I'd use the following metaphor to non-technical people. Rails is like a prepackaged toolkit, which can get most of the common tasks done fairly with ease. Whereas, node.js with whatever backend framekwork of choice, is like a DIY toolkit assembled by mix-and-match different tools in a large tool shop. Of course, at times DIY toolkit can do better on specific tasks. Given that you are the only dev on the project, I'd assume that the resource is fairly limited. And looks like you are not building some next-gen super duper fast smart application. So Just go with the prepackaged toolkit then. Rails is a very opinionated framework, there're pros and cons to it. But thanks to that, many of the gems are coded with it in mind. For example, they are all designed with same naming convention. Many will work well together out-of-box, for example devise and cancancan. Besides, many stuff are built in the framework. For example, logging utility, csrf protection, session encryption, etc. Yes, many of those stuff may not be useful or necessary at the beginning of the project life-cycle. However, down the road, there is a good chance you will need some of those. And the moment you realize that you already have it, it's so delightful. In addition, it's usually easier to debug a rails app than a node app in my experience. Personally, the cases where I would pick node.js over rails would be projects either require a) high-performance, or b) certain core functionality that has been implemented by some node packages but not by any ruby gems. In term of performance, node has a clear advantage over any other major web frameworks, except the ones built with go. It's simply a language feature. Node allows developer to easily write code that runs db query, external api calls, or other stuff of that nature in parallel. And that is THE MOST COMMON performance bottleneck of web applications.

See more
Francisco Quintero
Tech Lead at Dev As Pros · | 4 upvotes · 335.9K views
Recommends
on
Rails APIRails API
at

Rails is currently a very mature and feature complete framework.

It's the ideal one if you're the only dev for your project because you get so many things already baked-in the framework that you'd only need to deeply care about specific stuff.

I won't say any NodeJS framework isn't good enough but in my experience with NodeJS frameworks you have to code a lot of the things Rails already provides. There's many people in Twitter and IRL asking for a "Rails for JavaScript" framework.

And you know? In the early stages of any project we have to validate it first with real users/customers. With Rails you can get to production real quick and fast.

I'm going to mention some of the features you get from day 1 when you run rails new app_name:

  • File uploading with Active Storage
  • Rich text editor with Action Text
  • Emailing with Action Mailer
  • ORM, migrations, validations with Active Record
  • Web sockets with Action Cable
  • Internationalization
  • Modern frontend stuff with Webpacker

and more.

The JavaScript community is on its moment, growing and gathering more people everyday but the Rails community is also a big one and there's always going to be a Rails developer to hire whenever you're ready to hire someone.

I suggest you to go with Rails because is a good choice, gives you less things to worry about and it's a very good and mature framework.

See more
Dan Pickett
Co-Founder at Launch Academy · | 4 upvotes · 335.4K views
Recommends
on
Node.jsNode.js

I hate to admit it, because I loved my time with Rails (and I still love the framework), I have a hard time justifying new Rails applications these days. Core team has made some tragic design decisions, and developers just don't perceive it as being "cool" any more. The latter is a terrible metric for which to base a technology decision, but I think you'll find it more difficult to recruit additional engineers if you choose Ruby on Rails.

Without knowing too much of the details, Node/Express (ideally with Typescript) seems like a better solution here, given you'll be building out the front-end in Vue or React. It might be worth looking at NestJS, as it's the closest I've seen to a well-formed opinionated framework on the Node side of things. We're also fans of Objection ORM.

I hope that's helpful!

See more
Jean-Pierre Pommet
Recommends
on
React on RailsReact on Rails

I need a solid argument to explain to people that aren't necessarily tech-savvy as to why we should choose Rails over Nodejs

Hi Max, it sounds like that you are proficient in both stacks and probably have a higher expertise in Rails (correct me if I am wrong) and since you are the only dev on a project, a good argument that comes to mind is probably the velocity and maturity (enterprise grade, battle tested in production) that Rails provide with proven success stories in the tech industry such as Airbnb, Stripes, Shopify to name a few. You can also make the argument that Rails is great to run the backend and React+Vue (and nodejs for tooling) is ideal for the front-end development (see or find companies example that use both). You can also build and show a prototype using both and share your experience which could help you find and forge the selling points to those non tech savvy folks, why not.

Eventually, are you going to have other developers on your project? if yes then you will need to take in account, onboarding and ramp up to contribution time when they are hired.

IMHO, I am not a fan of the debate Rails vs Nodejs, they are just tools at the disposal of the developer it's just a matter of figuring out what makes the most sense.

Let me know if you wanna discuss further, happy to help out!

ps: markdown preview on stack share... no good.

See more
Recommends
on
Rails APIRails API

Rails has advantages over node.js (specifically express) when working a more complicated backend. While Express has some speed advantages to Rails, this is mitigated if your software is more CPU intensive.

See more
Needs advice
on
DjangoDjango
and
Node.jsNode.js

I have learned both Python and JavaScript. I also tried my hand at Django. But i found it difficult to work with Django, on frontend its Jinja format is very confusing and limited. I have not tried Node.js yet and unsure which tool to go ahead with. I want an internship as soon as possible so please answer keeping that in mind.

See more
Replies (7)
Recommends
on
DjangoDjango

If you are currently not working my first suggestion is to study both the frameworks and get a good grasp of those. If you didn't get confident with Django in the first place you should reconsider going back and study more. Get a video course with some code-along and produce some simple application you can showcase on your interviews. If you already took a course take a different one. Another trainer could be more effective and you could experience something new with different excercises. There are lots of both free and paid courses out there. When you will get confident with Django get your feet wet with Node.js because it surely worth it. Node is very different from Django from some perspective, it looks more like an asynchronous version of Flask to me. Be sure to have a good knowledge of ES6 first, because it will be really useful to understand the Node best practices. Study as much as you can now if you are not working. It will supercharge you for the future...

See more
Max Musing
Founder & CEO at BaseDash · | 10 upvotes · 901.7K views
Recommends
on
Node.jsNode.js
at

From my experience of the early startup world, a majority of companies these days use Node.js. Python and Go are the next biggest languages, but significantly smaller than Node.

However, if you're having trouble with the front end aspect of Django, using Node probably won't make that easier for you. You'll have a lot more options between front end frameworks (React, Vue.js, Angular 2) , but they'll definitely take more time to learn than Django's templating system.

Think about whether you want to focus on front end or back end for now, and make a decision from there.

See more
George Krachtopoulos
Recommends
on
Node.jsNode.js

I had the same question myself a few months ago. I finally chose Node.js, and it was one of the best options I did back then. From when I started programming, I always believed that Python was for me the best language, secure and stable. However, it is not flexible for web development, there are more packages & libraries that are built and work only with JavaScript / TypeScript, and the community, resources & support is much bigger. I was also fascinated by the Django ORM, which I still am, & the admin interface. But those are things, that can be replaces by other tools, such as TypeORM, and the admin interface was not needed at all finally for my case. I know understand that Python is not the language that I should use everywhere and every time, but I can say that it is really good for algorithms, computer science, maths, statistics, analytics & AI. To be honest, I chose TypeScript (TS) with Node.js & Express, because it has auto-completion and "strict" code checking. I hope this helps you, and let you take a look at various aspects of choosing a programming language to work with.

See more
Yousuf Jawwad
Principal Software Architect at Breu Inc. · | 4 upvotes · 497.5K views
Recommends
on
JinjaJinja

Jinja is a template rendering engine and you will encounter some sort of template rendering engine in each language. Jinja is a pretty standard tool and almost every language has some sort of Jinja equivalent. Ruby has Liquid, Node has Nunjucks, Java has Jinjava, Go's default templating engine is easy to pick up if you know Jinja, Helm charts are easier to pick if know Jinja . So learning Jinja is a good thing.

See more
Recommends
on
Node.jsNode.js

I would suggest to go with js, it's the craze now when you enter into the stack it has variety of options and tools that you can adopt , and more than that the demand for js engineers is exponentially increasing and js can do magic in any type of application or architecture.

See more
Recommends
on
DjangoDjango

Actually, you could get very good solution with implementing BE and admin panel with Django and FE with React.js or Vue.js. it will provide you a pretty flexible and powerful environment.

See more
Recommends
on
DjangoDjango

If you already know some django stuff you should keep that learning path. And for the job if you really want an internship you should learn to make rest APIs using django or nodejs, and a front end that consumes those APIs using some framework

See more
Louai Hamada
Full Stack Web Developer · | 7 upvotes · 535.7K views
Needs advice
on
ExpressJSExpressJSNestJSNestJS
and
Node.jsNode.js

I'm planning with a small team to create an application which is a platform for restaurants. I'm on the backend almost alone currently. I'm going to use Node.js for that, and I'm very fond of TypeScript, and I worked before mostly with ExpressJS. The team may get bigger as the application becomes bigger and more successful, so I have the Scalability concern in mind now, and I was considering these options: 1) Use Node+Express+Typescript 2) Use Node+NestJs (which utilizes Typescript by default)

Option 2 is enticing to me because recently I came to love NestJS and it provides more scalability for the project and uses Typescript in the best way and uses Express under the hood. Also I come from an Angular 2 background, which I think is the best frontend framework (my opinion, and I know React quite well), which makes Nest feel familiar to me because of the similarity between Nest and Angular. Option 1 on the other hand uses Express which is a minimalist framework, very popular one, but it doesn't provide the same scalability and brings decision fatigue about what to combine with it and may not utilize Typescript in the best way. Yet, on the other hand, it is flexible and it may be easier to manipulate things in different ways with it. Another very important thing is that it would be easier in my view to hire Node developers with skills in Express than NestJs. The majority of Node developers are much more familiar with JavaScript and Express.

What is your advice and why? I would love to hear especially from developers who worked on both Express and Nest

See more
Replies (6)
Wender Machado
Full Stack Engineer at RG Sistemas · | 9 upvotes · 423K views
Recommends
on
NestJSNestJS

I highly recommend NestJS because:

  • It's a framework you already like;
  • Typescript is growing fast, being increasingly adopted in the community;
  • All layers are well defined, not needing to think much about the organization;
  • Great documentation;
  • Nest CLI increases the development speed and keep the pattern;

Only using express and knowing that project can grow, you'ill need to define the structure well so that it doesn't get out of control.

See more
Rhoger Anacleto
Developer at Magrathea Labs · | 5 upvotes · 423K views
Recommends
on
NestJSNestJS

Hi Louai,

I am quite sure that you know the answer to your problem. And I am here to help you to follow your arrow. I have worked with the most popular Nodejs frameworks and I can sure you that there's no stack better than NestJS (at all). Typescript is the best thing that happened with Javascript, this is a fact. Ans NestJS make a such wonderful job using all the best Typescript tools. NestJS is the most mature and organized API manager. Its modular dependence injection, the use of DDD, the solid idea of single responsibility, it's unit a and e2e testing support, its documentation is the most incredible work in the world of Nodejs. You won't regret choosing this framework, even if your application grows a lot. If you follow the documentation tips you will be able to create an amazing and organized application.

ps: I am not part of the NestJS team, I am just a guy tired of wasting time with dumb and bad Frameworks and its bad documentations. I find relief in NestJS with all the time it's saved to me, it helped me to improve my job and let me create great things with Nodejs.

See more
Recommends
on
NestJSNestJS

I would definitely suggest NestJs over other options because NestJs gives a lot of tooling. it would definitely suggest NestJs over other options because NestJs gives a lot of tooling & it gives a lot of functionality out of the box. If your team worked with angular 2+ then it will really easy to learn.

See more
Recommends
on
NestJSNestJS

First of all, my experience using either Node.js with Express or NestJS is not wide. I liked NestJS due to it's similarity to Angular, so when you know Angluar and like TypeScript you are going to love NestJS, it will be instantly very familiar and easy to use, it's adds a good structure to the project out of the box and well, it uses TypeScript, which is a more structured language - it's good for scalability. As for performance concern s - NestJS is based on Node, it just brings Angular's modular structure to it, so the question is more about how is the additional layer influences the performance - I cannot answer that.

See more
Recommends
on
NestJSNestJS

Hi, I'm in a similar position, but related to personal projects. After falling in love with few frameworks in the first day and rejecting them in day 2, I started learning nestJS last week. I currently develop personal side projects using cakephp, and I intend to migrate to nest + vue. This week I'm taking a nestJS course in order to be sure that this is what I want by praticing a little. If you didn't do it yet, I suggest you try to code a todo app or a similar example API using nest, so you can "feel" if this is indeed what you want to use in this larger-scale project.

Some of the characteristics that got my attention to nestJS are typescript, a lot of annotations/decorations, an oppinionated approach to organizing the project, nice documentation and discord, and it's evolution at npm trends shows me it's probably not going to vanish or get buggy anytime soon.

See more
Recommends
on
hapihapi

Have you checked out Hapi as an alternative? I'ts not Typescript by default though. If that doesn't seem too interesting, it sounds like you want to go with NestJS :)

See more
Needs advice
on
Node.jsNode.js
and
Spring BootSpring Boot

Hi, I am looking to select tech stack for front end and back end development. Considering Spring Boot vs Node.js for developing microservices. Front end tech stack is selected as React framework. Both of them are equally good for me, long term perspective most of services will be more based on I/O vs heavy computing. Leaning toward node.js, but will require team to learn this tech stack, so little hesitant.

See more
Replies (1)
Max Musing
Founder & CEO at BaseDash · | 10 upvotes · 541.2K views
Recommends
on
Node.jsNode.js
at

It's probably worth investing some time for your team to learn Node.js. There's very little overhead, especially with a framework like ExpressJS, so if your team is familiar with JavaScript it should be a quick process.

It handles I/O really well out of the box, and has a strong community with great open source libraries. Since you're using React on the front end, there's also some benefit to being able to use JavaScript throughout your stack.

See more
Needs advice
on
GolangGolangNode.jsNode.js
and
SymfonySymfony

I'm about to begin working on an API, for which I plan to add GraphQL connectivity for processing data. The data processed will mainly be audio files being downloaded/uploaded with some user messaging & authentication.

I don't mind the difficulty in any service since I've used C++ (for data structures & algorithms at least) and would also say I am patient and can learn fairly quickly. My main concerns would be their performance, libraries/community, and job marketability.

Why I'm stuck between these three...

Symfony: I've programmed in PHP for back-end in a previous internship and may do so again in a few months.

Node.js: It's newer than PHP, and it's JavaScript where my front-end stack will be React and (likely) React Native.

Go: It's newer than PHP, I've heard of its good performance, and it would be nice to learn a new (growing) language.

See more
Replies (1)
Max Musing
Founder & CEO at BaseDash · | 6 upvotes · 208.4K views
Recommends
on
Node.jsNode.js
at

Go with Node.js. There's something really satisfying about being able to use a single language across your entire tech stack. Especially once you integrate GraphQL, which is effectively JSON.

Your second best option is Go, but the ecosystem around Node.js is quite a bit stronger. This will play a big factor when you start building functionality like file management, messaging (especially in real-time), and authentication. The libraries and documentation are just stronger for Node.

See more
Adithya Shetty
Student at PES UNIVERSITY · | 7 upvotes · 18.4K views
Needs advice
on
FlaskFlaskNode.jsNode.js
and
PHPPHP

I have just started LEARNING BACKEND so which framework do you think is best to learn first(among flask, node.js and PHP) and use, and which backend programming language should I earn or is important? I have some prior knowledge in python and javascript.it would be nice if someone could point out the advantages of using one framework over the other.

See more
Replies (6)
Rafey Iqbal Rahman
Cofounder at Wanderloop · | 12 upvotes · 12.7K views
Recommends
on
Node.jsNode.js
at

Rule out PHP since you aren't familiar with it, and learning it would take much time since PHP has turned out to be complex lately.

Node.js vs. Flask

Node.js is your go-to solution for developing speed-intensive websites and applications (eCommerce stores, chatbots, etc.). Flask isn't the ideal solution. Django (another Python-based web framework) is better than Flask.

See more
Recommends
on
DjangoDjango

Hi Adithya! Actually, the honest thing is that we all try to follow the hot fashion of the day but that's kind of where people get confused because there are a lot of hot fashions around at the same time as well. If you ask a php expert, he would suggest just go for the php and if you ask someone from ruby language, they would say ruby is fantastic. And same is for python as well. Now Let's have a look at your first question about learning among flask, node and php and thing is php is not framework it is language. Flask is python based and Node is Javascript based runtime environment on server and is not a complete framework. So what I would say in this context is that one should not just jump into a framework directly. Rather playing with a language for couple of months is best thing. Second Question :"which backend programming language should I earn or is important". Answer is No Programming Language is Perfect.Some programming languages are good at one thing but they can be bad at doing something other. Like Speed, Performance, Integration with other tools, Security are the features some Programming languages handle out of the box but each has its trade offs. My advice would be Just pick any of these languages and you should be good with it until unless you stick with good programming style and keep improving yourself. And never switch too much between languages as you learn them, programming needs consistency. Some people try to learn everything at once and that makes people "Jack Of All Trade but Experienced in None". PHP has huge Internet Market Shares, Python is growing and fast, Node is more dynamic but its not framework (Node is JS runtime environment) so all these are good and bad at one or other thing.

Third Advice: " I have some prior knowledge in python and javascript." That's great then. If you already know Python and JS you can learn Any of between Flask and Node but what I have seen is that Learning curve of Node seemed bit steeper to me and it should not be case for you if it seemed to me. But for python I would rather say go with Django rather than flask.

Final Thoughts: Node isn't Framework so if you learn it, you will still have some further framework tools to learn to make a good rapid backend running Like Express or KOA or ADONIS etc. If you go with Flask or Django, they are sort of sufficient to make backend. If you got with PHP, You must go for Laravel because its huge and rapidly growing community now. And yes another options is Rails that is a culture and very mature framework. But kinda slow just my opinion. Moreover you can also look around a bit for what framework can give you more or rapid job if you are looking for a job in your area.

See more
Max Musing
Founder & CEO at BaseDash · | 4 upvotes · 14.3K views
Recommends
on
Node.jsNode.js
at

Node.js is the most popular of the three among modern tech stacks, and for good reason: it's simple, lightweight, and fast. Plus, being popular has its advantages: better documentation, libraries, and support when you get stuck (which you undoubtedly will as a beginner).

Pair it with ExpressJS for the best experience.

See more
Recommends
on
Node.jsNode.js

Learn JavaScript and master the programming concepts. Once you are familiar with the programming concepts such loops, variables, functions, OOP, etc.. you can easily pickup any programming language just by looking at their respective syntax. You can learn a new programming lanuage in just a few minutes. Getting to know the frameworks and libraries though is another story. Although, if you know what you want to build and its functional part, it helps speed things up developing PoC.

See more
Recommends
on
Node.jsNode.js

NodeJS with Typescript and Express/fastify is best to go for. Flask is really good framework and very easy to learn. But python has peroformance issues. For starters it should be fine but once you have to scale it will be difficult. NodeJS has really good performance and package ecosystem is really good. With typescript you can do static checking which will help reduce errors.

See more
Recommends
on
Node.jsNode.js

On language, such that both the frontend and backend developers in sync. Node is a performant,easy to learn and good community support.

See more
Tony Valdes Mendez
President at SmartBrite Technologies · | 3 upvotes · 335.6K views
Needs advice
on
LaravelLaravelNode.jsNode.js
and
RubyRuby

Hello... I hope everyone is ok amid today's global situation.

I'm trying to choose the perfect stack for a new mobile app project that resembles the super apps like GoJek & Grab.

I have gone to BUILTWITH and seen what their stack on all fronts.....however, and even though, they both differ from one another, I'm still looking for the perfect stack that will give us PERFORMANCE & SCALABILITY for years to come.

Your comments & suggestions are very important to us, so please share your thoughts.

See more
Replies (4)
Recommends
on
LaravelLaravel
at

We recommend Laravel over Ruby on Rails (Ruby) and Express.js (JavaScript/Node.js). We chose Laravel ourselves for our own internal software project, recently after comparing these same 3 software frameworks. In selecting Laravel, we chose to build our app using the software language PHP. PHP has the largest market share of all the web-based software languages (close to 80% of all websites use PHP). Also, Laravel is the fastest-growing software framework based on PHP making it a wise choice.

We also plan to integrate WordPress and WooCommerce later with our Laravel web-app. WordPress and WooCommerce like Laravel are all built using PHP. WordPress is the most popular Content Management System in the world. This will allow us to build out the front-end marketing website in WordPress. Also, we plan to offer subscriptions and sell products. For this, we will use WooCommerce. WooCommerce is the most used e-commerce platform in the world. We’ll be able to use our same Laravel developers to extend our app to WordPress and WooCommerce. By standardizing on PHP, we’ll be able to use the same software developers on all 3 platforms. PHP’s large market share will be an asset to us as we start recruiting talented software developers.

Lastly, we are gaining access to a fast-growing and awesome community that supports Laravel. Before we made our decision, I personally met Laravel’s founder Taylor Otwell along with several of his team members. After meeting with the Laravel team at Laracon US in New York City and learning more about the direction they are going with the framework, we’re confident we made the right decision.

To read the longer version of this answer where we go into more detail behind our recommendation, visit https://rackless.com/laravel-rails-expressjs

See more
Oded Arbel
Recommends
on
Vert.xVert.x

Before I recommend a tool, I think it is important to look at your requirements and capabilities - as you have looked at 3 very different tools: different programming languages, different implementation strategies and different target audience. It sounds like you don't already have a set of dedicated developers, so it is likely that your choice should be mainly driven by how easy it is to get developers that are familiar with the tools - so I'm going to list some considerations that I think you should review, starting with what I believe would be the most important for your bootstrap process:

  1. Mindshare: how easy it is to get developers that are familiar with the technology and can immediately start working on your project. This is definitely where Node.js shines - Javascript is one of the fastest growing languages and Node.js played a huge part in this. I would bet that wherever you are located, Javascript developers would be the easiest to come by.

  2. Fit for purpose: from your description we can understand that you are looking at a backend technology to implement some sort of REST API for a mobile app. The 3 different options you offered each fit on a different place on such a stack: Ruby is a programming language and not even a service framework - if you choose it, you then have to choose a server implementation and REST framework (and there are a lot, mostly as Ruby has a standard API for connecting a web server and application frameworks, and so this space has blown up) it used to be that Rails was the most popular, so you may choose that, but the interest in it has waned a bit in recent years; Node.js is a server framework, but it also has a dominant application framework called Express, that is geared well to your usage, so you'd likely work with that; Laravel is an application framework - it uses the PHP programming language, whose use has declined a bit in recent years, and was originally built for MVC type applications - though it has workflows for REST APIs and would probably work well for you as well.

  3. Scalability: while this is probably the least significant issue at the moment (when it gets to a point where the backend service is your bottleneck, you'd likely have enough resources for a rewrite), and also the most dependent on factors that you didn't specify and are hard to estimate (such as: session complexity; amounts of data; sensitivity to locality; sensitivity to latency), it is still worthy to address it. Unfortunately, I don't have any good news: Ruby is notoriously bad at getting the best performance (the current BKM for milking performance from a Ruby codebase is to run the app on the Java virtual machine); Node.js has severe memory limitations that will make it very hard to scale if your backend needs to do a lot of work (I have a very personal and troubling experience with this issue); and PHP has as many scalability optimization strategies as there are PHP developers (this is not a good thing).

My suggestion to you as to how to proceed can be summarized to this prioritized list of options: 1. Get a good head developer with a lot of experience and let them choose the best tool - they'd likely go with what they know, which is likely to be a good choice - and if not, when scalability will become an issue, you could rewrite. 2. Choose something (likely Node.js) and don't worry about scalability - see (1) above. 3. Use Vert.x: it is a highly scalable application and service framework that offers great performance as well as a lot of tools to solve data scalability, locality and latency, and it works with multiple programming languages, such as Javascript and Ruby.

See more
Sourabh Bagrecha
Recommends
on
Node.jsNode.js

Node.js would be the best choice among all, you can compare all 3 of them on Stackshare and you will find that Node.js is on the top on almost every aspect, and since your focus is primarily on Performance and Scalability you won't regret after choosing Node.js. Also, the JavaScript open-source community has made a lot of effort and created numerous packages that will give you the speed and smooth execution of your project you need. Though your question was regarding backend, but if you choose JavaScript(Node.js) at your backend, then you can have a cross-functional team that can work on both, frontend as well as backend because JavaScript is everywhere, React Native for Android and iOS apps, React.js for single page web apps and Node.js ofcourse for your backend. And I don't have to tell you how much easier it would be to code and manage in a single language to build your complete system end-to-end. I hope it helps.

See more
Recommends
on
RailsRails

That's a really ambitious project. So you're going to want to move as quickly as possible. That means choosing a software stack that will allow you to move the most quickly. Of the ones you've listed, Ruby (Ruby on Rails, more precisely) will give you that. There are probably other options that would allow you to move even more quickly than Rails, but developers for those more advanced stacks are much more expensive, and hard to find.

Rails can and does scale to millions of users. It's not necessarily easy, but if you're running a successful app, you'll be able to afford people to help you scale out when you reach that point. But if you choose a slower framework (or have bad developers) you won't even reach the point of needing scalability.

See more
Decisions about Node.js and PHP
Omran Jamal
CTO & Co-founder at Bonton Connect · | 7 upvotes · 592.7K views

We actually initially wrote a lot of networking code in Kotlin but the complexities involved prompted us to try and compile NodeJS for Android and port over all the networking logic to Node and communicate with node over the Java Native Interface.

This turned out to be a great decision considering our battery usage fell by 40% and rate of development increased by a factor of 2.

See more
Kyle Harrison
Web Application Developer at Fortinet · | 17 upvotes · 372.6K views

Node continues to be dominant force in the world of web apps, with it's signature async first non-blocking IO, and frankly mind bending speeds. PHP and Python are formable tools, I chose Node for the simplicity of Express as a good and performant server side API gateway platform, that works well with Angular.

See more
Octavian Irimia

Both PHP and Python are free but when it comes to web development PHP wins for sure. There is no doubt that Python is a powerful language but it is not optimal for web. PHP has issues... of course; but so does any other language.

Another reason I chose PHP is for community - it has one of the most resourceful communities from the internet and for a good reason: it evolved with the language itself.

The fact that OOP evolved so much in PHP makes me keep it for good :)

See more

As a small team, we wanted to pick the framework which allowed us to move quickly. There's no option better than Rails. Not having to solve the fundamentals means we can more quickly build our feature set. No other framework can beat ActiveRecord in terms of integration & ease-of use. To top it all of, there's a lot of attention paid to security in the framework, making almost everything safe-by-default.

See more

Hey guys,

My backend set up is Prisma / GraphQL-Yoga at the moment, and I love it. It's so intuitive to learn and is really neat on the frontend too, however, there were a few gotchas when I was learning! Especially around understanding how it all pieces together (the stack). There isn't a great deal of information out there on exactly how to put into production my set up, which is a backend set up on a Digital Ocean droplet with Prisma/GraphQL Yoga in a Docker Container using Next & Apollo Client on the frontend somewhere else. It's such a niche subject, so I bet only a few hundred people have got a website with this stack in production. Anyway, I wrote a blog post to help those who might need help understanding it. Here it is, hope it helps!

See more

When I was new with web development, I was using PHP for backend and MySQL for database. But after improving my JS skills, I chosen Node.js. Because of too many reasons including npm, express, community, fast coding and etc. MongoDB is so good for using with Node.js. If your JS skills are enough good, I recommend to migrate to Node.js and MongoDB.

See more
Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 27 upvotes · 5.1M views

Our whole Node.js backend stack consists of the following tools:

  • Lerna as a tool for multi package and multi repository management
  • npm as package manager
  • NestJS as Node.js framework
  • TypeScript as programming language
  • ExpressJS as web server
  • Swagger UI for visualizing and interacting with the API’s resources
  • Postman as a tool for API development
  • TypeORM as object relational mapping layer
  • JSON Web Token for access token management

The main reason we have chosen Node.js over PHP is related to the following artifacts:

  • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
  • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
  • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
  • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Node.js
Pros of PHP
  • 1.4K
    Npm
  • 1.3K
    Javascript
  • 1.1K
    Great libraries
  • 1K
    High-performance
  • 805
    Open source
  • 486
    Great for apis
  • 477
    Asynchronous
  • 423
    Great community
  • 390
    Great for realtime apps
  • 296
    Great for command line utilities
  • 84
    Websockets
  • 83
    Node Modules
  • 69
    Uber Simple
  • 59
    Great modularity
  • 58
    Allows us to reuse code in the frontend
  • 42
    Easy to start
  • 35
    Great for Data Streaming
  • 32
    Realtime
  • 28
    Awesome
  • 25
    Non blocking IO
  • 18
    Can be used as a proxy
  • 17
    High performance, open source, scalable
  • 16
    Non-blocking and modular
  • 15
    Easy and Fun
  • 14
    Easy and powerful
  • 13
    Future of BackEnd
  • 13
    Same lang as AngularJS
  • 12
    Fullstack
  • 11
    Fast
  • 10
    Scalability
  • 10
    Cross platform
  • 9
    Simple
  • 8
    Mean Stack
  • 7
    Great for webapps
  • 7
    Easy concurrency
  • 6
    Typescript
  • 6
    Fast, simple code and async
  • 6
    React
  • 6
    Friendly
  • 5
    Control everything
  • 5
    Its amazingly fast and scalable
  • 5
    Easy to use and fast and goes well with JSONdb's
  • 5
    Scalable
  • 5
    Great speed
  • 5
    Fast development
  • 4
    It's fast
  • 4
    Easy to use
  • 4
    Isomorphic coolness
  • 3
    Great community
  • 3
    Not Python
  • 3
    Sooper easy for the Backend connectivity
  • 3
    TypeScript Support
  • 3
    Blazing fast
  • 3
    Performant and fast prototyping
  • 3
    Easy to learn
  • 3
    Easy
  • 3
    Scales, fast, simple, great community, npm, express
  • 3
    One language, end-to-end
  • 3
    Less boilerplate code
  • 2
    Npm i ape-updating
  • 2
    Event Driven
  • 2
    Lovely
  • 1
    Creat for apis
  • 0
    Node
  • 953
    Large community
  • 819
    Open source
  • 767
    Easy deployment
  • 487
    Great frameworks
  • 387
    The best glue on the web
  • 235
    Continual improvements
  • 185
    Good old web
  • 145
    Web foundation
  • 135
    Community packages
  • 125
    Tool support
  • 35
    Used by wordpress
  • 34
    Excellent documentation
  • 29
    Used by Facebook
  • 23
    Because of Symfony
  • 21
    Dynamic Language
  • 17
    Easy to learn
  • 17
    Cheap hosting
  • 15
    Very powerful web language
  • 14
    Awesome Language and easy to implement
  • 14
    Fast development
  • 14
    Because of Laravel
  • 13
    Composer
  • 12
    Flexibility, syntax, extensibility
  • 9
    Easiest deployment
  • 8
    Readable Code
  • 8
    Fast
  • 7
    Short development lead times
  • 7
    Most of the web uses it
  • 7
    Worst popularity quality ratio
  • 7
    Fastestest Time to Version 1.0 Deployments
  • 6
    Simple, flexible yet Scalable
  • 6
    Faster then ever
  • 5
    Open source and large community
  • 4
    Cheap to own
  • 4
    Has the best ecommerce(Magento,Prestashop,Opencart,etc)
  • 4
    Is like one zip of air
  • 4
    Open source and great framework
  • 4
    Large community, easy setup, easy deployment, framework
  • 4
    Easy to use and learn
  • 4
    Easy to learn, a big community, lot of frameworks
  • 4
    Great developer experience
  • 4
    I have no choice :(
  • 2
    Hard not to use
  • 2
    Walk away
  • 2
    Interpreted at the run time
  • 2
    FFI
  • 2
    Safe the planet
  • 2
    Used by STOMT
  • 2
    Fault tolerance
  • 2
    Great flexibility. From fast prototyping to large apps
  • 1
    Simplesaml
  • 1
    Bando
  • 1
    Secure
  • 1
    It can get you a lamborghini
  • 0
    Secure

Sign up to add or upvote prosMake informed product decisions

Cons of Node.js
Cons of PHP
  • 46
    Bound to a single CPU
  • 45
    New framework every day
  • 40
    Lots of terrible examples on the internet
  • 33
    Asynchronous programming is the worst
  • 24
    Callback
  • 19
    Javascript
  • 11
    Dependency hell
  • 11
    Dependency based on GitHub
  • 10
    Low computational power
  • 7
    Very very Slow
  • 7
    Can block whole server easily
  • 7
    Callback functions may not fire on expected sequence
  • 4
    Breaking updates
  • 4
    Unstable
  • 3
    Unneeded over complication
  • 3
    No standard approach
  • 1
    Bad transitive dependency management
  • 1
    Can't read server session
  • 22
    So easy to learn, good practices are hard to find
  • 16
    Inconsistent API
  • 8
    Fragmented community
  • 6
    Not secure
  • 3
    No routing system
  • 3
    Hard to debug
  • 2
    Old

Sign up to add or upvote consMake informed product decisions

What is Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

What is PHP?

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Node.js?
What companies use PHP?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Node.js?
What tools integrate with PHP?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Oct 24 2019 at 7:43PM

AppSignal

JavaScriptNode.jsJava+8
5
991
Oct 3 2019 at 7:13PM

Ably Realtime

JavaScriptPythonNode.js+8
5
3885
Node.jsnpmKubernetes+6
1
1482
GitNode.jsFirebase+5
7
2405
JavaScriptGitHubNode.js+29
14
13627
What are some alternatives to Node.js and PHP?
AngularJS
AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
Django
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
See all alternatives