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.
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:
- 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
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.
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?
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.
Oh okay, I understand. Thank you for your help!!!
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
Hope it helps, good luck
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 ).