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

READ LESS
6 upvotes·414.3K views
Replies (7)
Software Engineer ·
Recommends
on
PHP

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!

READ MORE
9 upvotes·3 comments·357.6K views
Apostolis Dimitriou
Apostolis Dimitriou
·
August 23rd 2020 at 8:14PM

Hi , thank you for your response. I will try your advice to build something small but I am not sure about the safety of the web application. I mean I will try to make this app without a framework but I don't need to know about safety or something more complicated if I add and user authentication on the site?

·
Reply
Octavian Irimia
Octavian Irimia
·
August 24th 2020 at 1:40PM

You will want to learn about security and using a framework that takes care of it (under the hood) is bad. Laravel's Eloquent takes care of SQL injections. However, if you need a custom query, you can "produce" an injection security breach even in Laravel. Frameworks are bad for beginners because they make you think you know - but it's just an illusion.

·
Reply
Apostolis Dimitriou
Apostolis Dimitriou
·
August 24th 2020 at 4:28PM

Oh okay, I understand. Thank you for your help!!!

·
Reply
FullStack Dev ·
Recommends
on
Node.js
PHP

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

READ MORE
11 upvotes·1 comment·358.7K views
Apostolis Dimitriou
Apostolis Dimitriou
·
August 23rd 2020 at 8:07PM

Thank you for your response, you really help me but I have some thoughts for the PHP. For example, I will make a single-page application and I read it is better to node.js for this style of application. After that, I think the speed is really important ( maybe I am wrong) because the app will use a lot of data and this data will be images and text. Maybe I thought in the wrong way but I was between node.js and PHP only for this reason. And I want to add something that I don't say in my question (maybe it is important) I know c ( I am not the best programmer but I have a little experience ).

·
Reply
View all (7)
Avatar of Octavian Irimia

Octavian Irimia

Software Engineer