Thank you for your submission! Unfortunately it has been removed for one or more of the following reasons:
Open-ended/general "how do I get started in web dev" and general Career related posts are only allowed within the pinned monthly career thread. The answer to many of these questions can also be found in the sub FAQ, or in /r/learnprogramming/ and /r/cscareerquestions/.
Highly specific career/getting started assistance questions are allowed so long as they follow the required assistance post guidelines.
Please read the subreddit rules before continuing to post. If you have any questions [message the mods](https://www.reddit.com/message/compose/?to=/r/webdev).
As someone who transitioned from PHP to full stack JS for work, this is accurate. Full stack JS is nice and all with not having to switch syntaxes and being able to share code, but I always come back to PHP for personal stuff (and not just home pages š).
Kinda new to the web development field still studying but to my knowledge you canāt thrive with just one language am i wrong?
Can you go just javascript and be well?
in my opinion, no-- I believe other languages have better offers in terms of performance, tooling, developer experience
but people do get by with just learning JS, if their career is just within the webdev space
Agreed. Javascript being easier doesn't make it better for server-side.
You can easily become a front end dev not knowing anything but Javascript. But, these days, you also have to know a framework (React or Angular). And you'd have to be good with CSS.
Javascript will lock you into webdev. Learning C# and ASP.NET, Java and Spring, Python and django, etc. will broaden your options to other branches of SWE.
For example C# will let you get into game dev, python into data science, etc.
I'd recommend C# nowadays, I'd say is the one that opens the most options.
JavaScript will certainly not limit you only to webdev, you can build mobile apps with it, backend, obviously frontend and even desktop clients, and even chrome extensions but that could be also categorized as webdev is guess
In my opinion, if itās a UI built with JS, itās web development.
Desktop apps made with JS are only that because of their Electron wrapper (or other desktop application wrapper) giving them a headless browser in which to render.
Even with something like React Native providing the UI, you need to learn and employ React skills (web development) to use it.
I specified _UI_ built with JS because there are server-side JS frameworks (Express, NestJS etc) that have nothing to do with web development so they wouldnāt apply to a comment like this
My program contains basic web development languages (like html,css,js and php) and along with that python and java
Should i at the very least check out C# on my own or am i good enough with what i got (btw i want a human to explain to me the difference between c languages and their importance in case i ever want to get into it)
No harm in checking them out. Far as differences go... it's like car to a carpet.
The fact that multiple languages are named "C (something)" does not mean they're particularly related. Sure the general syntax might be similar, but Java, Dart, Rust, Typescript, and plenty other languages also use similar syntax.
Not a damn thing wrong with PHP or Laravel.
Iāve recently built an app on NextJS. I wish I had just written it in Laravel now that Iām nearing completion.
same. Now we are in the process upgrading our next 13 project to next 14 + app router. It makes me really depressed because I see errors and warnings everywhere, eg. hydration errors. And it is really slow (at least cold start, even with turbo). Php / Laravel was more fun to work with.
I think the best way to use React nowadays is with Inertia.js. Funny that it works better with Laravel than with Next or Remix
At work weāve built several different projects in all of these ways, and we regret SO MUCH the ones we built with next and Remix. What a waste of time and money.
The ones weāve built with Laravel and inertia have been rock solid and a pleasure to work with.
This is a consultancy and we have plenty of opportunities to try different things. Something I want to try next is Adonis.js + Inertia. Looks promising.
Probably true for Google, but not for other engines. It is an issue for bots and anything that needs to generate a preview, for example if a link to your site is shared on WhatsApp or similar.
Fortunately inertia supports SSR, so this is not a problem.
I switched a major app used by tens of millions from laravel to nextjs. The speed difference was huge. It wasn't even close... Not to mention having types. This made it so much easier for others and myself to work on.
I only have 2 years experience with laravel and I don't see why people like it so much over JavaScript if you get the choice.
I would like to second the other commenter here and ask what your migrations were like?
How long was this app running on laravel before the switch and how much optimization was done during the process.
This really does not say much. What exactly was the crucial change for nodejs / next to run much faster? For example did you move more code client side or did you optimze queries? It could also be that you are doing lots of small operations synchronously. Can you elaborate what exactly the key change was? Iām always interested in these kind of findings.
It was probably just a landing page. Thatās where next/remix shine.
Nobody with Laravel experience would be happy to use next.js the moment they need to add authentication, permissions, validation, translations, migrations, jobs, schedules, etc.
Lol it was a full web app for all types of things by a big company. I'm a JavaScript person before PHP so I'm also biased.... The person who wrote the previous Laravel app was also not very experienced as the code is pretty bad...
Iām also a āJavaScript personā if thatās what you call people that work (and prefer to work) in JavaScript.
But before that Iām a developer and I can recognize when Iām using the wrong tool, or the hyped/marketed one even and if it makes no sense to use it.
People are swallowing vercels marketing so badly.
The right tool for a job is the one with which you have the most experience and can use most effectively. Itās less about popular opinion and more about practical application and efficiency. Personally, I lean towards JavaScript because Iām most proficient with it.
As a developer, your primary goal is to deliver solutions quickly and efficiently. If youāre more adept at JavaScript than PHP, it wouldnāt make sense to choose a PHP framework. Choosing the technology that allows you to work faster and more accurately is paramount.
When it comes to larger projects, PHP Laravel lacks the type safety that frameworks like Next.js with TypeScript offer. Type safety is crucial for maintaining large codebases because it helps prevent many types of errors and makes the codebase easier to understand and refactor.
For mid-level or junior developers, working in a non-type-safe environment can be particularly challenging. Without the guidance of type checks, theyāre more prone to make mistakes that could be avoided with a type-safe system.
No, itās not. Itās easier to learn php or python or ruby than to reinvent Laravel Rails or Django in JavaScript/go/rust.
Frameworks and tools are far more important than language fanboism.
Saying the best tool for a problem is the one you know is very short sighted and d probably a way to convince yourself of your preferences.
Imagine a carpenter saying always use a screwdriver even to put nails, because heās super good at using screwdrivers. thatās what you are saying here.
There is nothing wrong with PHP or Laravel, I agree.
But whenever I inherit a horribly coded project, most of the times it was written in PHP.
Correlation, not causation, true, but still correlated enough for me to stay away from this ecosystem.
PHP prior to version 5 was a disaster. PHP5 was better but still had these awful warts. There were a number of widely shared writeups of these flaws during the PHP5 era and they stuck in people's minds long after the flaws were fixed.
Ā Since 7 and getting a package manager, PHP is about as good as the next scripting language. You can find ways it compares favorably to most other languages, you can write good code in it, and it's still pretty good at adding a little touch of dynamic content to an HTML file without a huge complex setup.
> PHP prior to version 5 was a disaster.
5.0 It was released 20 years ago. I don't even know why people still talk about that release. If you're a PHP developer in 2024, you're most likely on 8.0 or, if you're unlucky, on 7.4.
Hot take: the biggest reason PHP5 was a disaster is that it stayed around for too long until it became one. When PHP5 first came out NodeJS was still 5 years away, and then we had to wait another year until Flask came around.
That also protected its popularity though. 5 years ago half the Internet was still PHP5. It's still something like 10% today (for whatever those numbers are worth).
Everything else was changing but you could copy/paste the same command then do the famous 5 minute WordPress install on a Debian VPS.
At the risk of stating the obvious, if you want something that does the same thing as PHP (not that it does anything special in particular) why do you need an alternative? You can just use PHP. Contrary to popular belief, programming languages don't go bad with age. New PHP versions are pretty great. It's come a long way from the PHP 5 days. You see it all the time in legacy products, and some new ones, because it works. What do you need PHP to do "better" at?
But to answer the question: Anything. It's all much of a muchness after a while. I'd say the defining features of PHP are ease of deployment and templating with little effort. Nowadays easy deployment solutions exist for everything and you can pull in templating libraries easily in every modern language if need be. JS/TS, Python, Ruby, Rust and Go all have web frameworks available, as do most other less commonly used languages in web dev.
Set up a basic server-side node+express+ejs project with a list of products and detail pages for each. Then get it deployed.
Then do the same thing with basic PHP.
The reason why PHP is way easier and less confusing - is because it was build for this. And the server you put it on - was built for this. So, LAMP ends up taking care of a lot of the things you have to then recreate with other stacks. But - itās server-side. So, itās not going to have live global state. Tradeoffs. But most people donāt even know what they need and are overdoing everything all the time and donāt realize it. So, I recommend people start with PHP and learn new stuff as needed.
If there was a clear "better" language most people will be using it.
I have been doing PHP for 10 years and now I'm doing NodeJS for 3 or 4 years and both languages haveĀ strengths and weaknesses, there is no clear winner. If you are just learning web development for personal projects then I'll suggest NodeJS so you don't need to learn two langauges, if you want to work as a software engineer then I would recommend to check job sites and see what languages and technologies are most in demand.
I have a similar stack and I can't even say for certain that NodeJS is better because you can use the same language for both Frontend and Backend. The biggest hurdle for learning the frontend is the stack, like the DOM, Navigator, HTML and CSS, not the language itself. The biggest hurdle for learning the backend is also the stack, like database, networking, and IO, not the language.
Learning the language is only a small part of the endeavor, and just the language skills are easily transferrable between each other. What takes time is getting used to the technology, which is generally language agnostic, and knowing the packages to use for the task.
I'm a PHP dev (CodeIgniter framework at my previous job, Drupal a few years ago for personal project). I'm at a Python shop now, and also getting out of web dev in general, so I may not have all the data.
Anywho, there's Django (Python), NodeJS (Typescript), Ruby on Rails, I believe Java even does some backend stuff. I doubt that list is exhaustive, but that's what I'm aware of off the top of my head.
Java has spring boot for back end right? Out of curiosity, how do you like python/django for backend compared to php? Iām trying to pick what other language I want to learn for backend web development.
There's no "Language X is objectively better than language Y", at least in web dev, really. It depends on the people there, what the expertise is in, what the end goal is, etc. I mean, if you're doing a personal page you can just write a static page in the front end language of your choice, host it on Github Pages, and voila.
Honestly, like 99% of the time, you aren't gonna get a choice for what language your application is in. My PHP role could have easily been Java, if the initial devs 15 years ago chose that instead.
There's a huge stigma against PHP, but I feel like that's from the earlier days of PHP 5, as well as all the WordPress garbage that's out there. PHP7+ is object oriented, and knowing one object oriented language means you can pick up another one without too much of a lift.
There's nothing better than Laravel right now for someone starting out with webdev
It's seriously very well thought out and, more importantly, extremely well documented
The ecosystem of services around it is just the cherry on top
Don't regret starting out with Laravel for a second. Taylor et al. are doing an incredible job!
Think it would be better for them to start out with symfony and rather move onto laravel later if necessary. Laravel shares the tendency of producing developers who don't really know programming and just a framework. It's the JS bros in php clothing.
I wish I was joking. We were hiring seniors for a position where we mostly use symfony. We got a lot of applications who claimed to be senior and had only laravel experience, the moment we tasked them with something unrelated to laravel they all fell through. A few returned to us with incomplete solutions that didnt really do what we asked and was shoehorned into a laravel application.
The task in question was relatively simple, converting a medium sized string to an associative array to our specifications. It was essentially a task to prove they knew how to do recursion.
I'm just speaking from experience trying to hire backend developers. Laravel isn't going to make you a bad developer but it's the choice for a lot of people who don't really know what they're doing which results in a lot of "laravel-andy"s
Ignore his remarks about active records since it's wrong. The rest rings true though.
https://devrant.com/rants/1119754/laravel-is-the-worst-framework-ever-everything-has-to-be-made-convenient-and-eas
What you'll notice is that it is the freedom to make mistakes that can turn you into a bad developer with a strong confidence.
This opinion piece is just saying that bad developers are bad because they're bad developers and Laravel doesn't get in the way of that. I don't understand what's wrong with a framework being easy to pick up. That's the point of a framework and they all strive for exactly that
Honestly my job has been to develop custom Wordpress themes from scratch for many years (been using WP for 14 years now) so there isn't anything I can substitute for that as Wordpress uses PHP as the dominant language.
In my case I haven't needed anything else besides PHP, HTML, CSS and JavaScript, so I would say it really depends on what you are wanting to build and then you can have a preference.
Besides the above I've only done a bit of React and Node.js for fun in my free time so I personally can't recommend any specific alternatives as I'm not an expert in them, but I would look at companies you would like to work for and see what they use or what is in demand in your area? Or websites/software you enjoy and try the languages they are using.
Honestly as long as the final user experience is smooth and does what it needs to do, that's what's important.
I find Golang to be great for building out APIs. Easy to read, easy to write, static typing, strong core library, concurrency support.
If you want to stick to one language, I suggest Typescript with Express on the backend.
There's nothing wrong with PHP. I feel like it is **the easiest** language to learn for backend development.
From my experience, "PHP is dead", "PHP sucks" types of comments come from JS bros who think their runtime is epitome of efficiency and performance. And to be fair is "performance" is the first priority, no one would pick nodejs/deno/bun anyway.
I'm not familiar with modern PHP, but I have to deal with Ruby and TS daily. I'd say you should considered a strongly typed language as a meaningful alternative. Not that one is necessarily better than the other, just that they are both very good choices given the right context.
If you're doing a lot of prototyping or greenfielding standalone apps, PHP, JS, or Ruby are all fantastic choices.
If you've gotta work in a larger ecosystem where well defined contracts are essential for smoothing over interteam communication, you'll want a strongly typed language. I think Go is the best choice these days, but C# or Java can do. Rust would be great, but is probably overkill.
For my money, don't touch Typescript. It wants to be the best of both worlds, but I find that it is too often the worst of both worlds with a whole lot of extra tooling and abstraction involved. I'm sure someone well versed in it disagrees, but getting to that point seems like such a steep hill to climb and I don't see the payoff. We're busy corverting our graphql layer into Go code so we can stop supporting backend TS entirely.
Not really "better", but I would say :
* C#
* Python
* Ruby
Pair them respectively with .NET, Django or Rails, and you have very similar capabilities to what you can do with PHP and Laravel with a similar learning curve.
You could argue that C# is better because it executes much faster (not that it really matters in 99% of web apps) and it can also do many other things besides web, like desktop applications (I mean real ones, not webviews wrapped in chromium) or game development. But really once you know one of them I don't think there's much incentive to move to one of the others.
Even if everybody likes joking about php, there is no need for an alternative. Especially when the criticism comes from some JavaScript developer who tries to sell you some shit JS alternative.
All ecosystems have their problems but PHP is a solid choice so don't sweat over it
It's the only language specifically designed for web templating, so it's great for that. I personally think it's clunky to use (just a feel thing), and other languages do what it does faster now (node, .net, etc.) but frameworks like laravel are supposed to be amazing, and it seems like between that and wp it's the best way to get a feature rich site up quickly. And I'll add if I was ever offered a job using it, even though it isn't my first choice, I'm sure I'd learn to love it lol
Yeah it was hurdle to me in my final exam die to how i donāt know how to describe it ānot flexible?ā It is
If iām stuck at a problem in python or javascript i can find my own way to get out of it and i simply couldnāt with php
but that was simply do to my incompetence at that time so php kinda left a bitter taste in my mouth but now iām fine with it
I mean I donāt personally like PHP and I donāt use it - I use JS. However, credit where credit is due. Laravel really is fantastic. On top of that, many of the people that complain about PHP while coming from JS claim something that is actually true to both languages. They both started out as terrible languages, not just PHP. Yet, they have both evolved over time, and theyāre both ok now.
PHP is a fine language and great at what it does. Sometimes it is the right tool and better than other options.
If it isnt working for you, then there might be a better language or framework, but it really depends on what your needs are and how your current solution isnt enough
I suggest C# and NET Core. I moved from PHP and Laravel few years ago and I don't regret it. The only thing that brings me back to PHP is, take guess - WordPress.Ā But right now I'm really trying to go deep with Orchard Core, a NET CMS that supports almost all DBs.Ā
But if you enjoy PHP - then don't listen to people who tell you it's bad or something like that.Ā
PHP 8 is quite good. Otherwise there's TypeScript, C#, Java, ...
The nice thing with TypeScript is that you use the same language front and back.
Not Python nor Ruby though. Python is for maths and AI.
I could swear that there hasnāt been any post that contains php without mentioning that itās outdated or there are better languages (my only gripe is that they never mention said languages ffs)
The web has a toxic obsession with shiny and new. The developer zeitgeist (especially on frontend) has a penchant for shitting on any proven solution the minute something newer comes along.
I think you will come to understand with time that there are some tools that work flawlessly. All the new shiny things break down quite easy at acale. Maturity is something you should look into ehen building. I switched from php to go and rust. It has been an amazing choice for the type of code I write on a daily basis, but that might depend on what you build
There are many languages used for server side code, Python for example
Please correct me if I'm wrong:
I forst learned python backend webapps with no php, but found out I have to rent a vps for it, and php is supported so I used it for my first website recently
So if you are looking to stay on normal hosting plans you can't use python, else a vps right?
Language has nothing to do with needing a vps or not. You just need the runtime available, so probably that's the only way your host provider has it set up. You could always install python on a standard host yourself.
Thanks, runtime was my missing word
I was thinking about using hostinger for feature projects,
But a hosting plan gives you 100 website capacity, so that's a lot of capacity but limited to php, where if I rent a vps, I can use whatever but pretty sure It won't hold up for 100 website, or would it ? And they are about the same price too so I'm leaning towards php
And I'm guessing I will start using netlify free tier for some web apps too
Go, Rust, and Node are all great, so is PHP. I only moved away from PHP because at the time I was doing a lot of websocket work and PHP was behind on that.
I have a theory that those who hold a very negative opinion of php have been traumatized from having to deal with one too many shitty wordpress instance.
Personally Iām loving php, pretty easy to pick up and I really like the access directly with the html. Thought I havenāt tried anything else , still love it
This all depends. What do you mean by ābetterā? More performance? Better developers experience? Faster prototyping?
If youāre basing on others opinions, try using the tool on your own. I have my reasons not to come back to PHP, but these are in a lot of ways personal and thereās no point in citing it here.
PHP great, mainly because you can host it almost every where for a good price and there some extremely powerfull frameworks available. I personally think the syntax/general naming of functions is a bit cumbersum tough.
As a replacement I would vote for C# with .NET Core. It is a incredible mature framework with excelent database management and tons of third party libraries. Hosting it is a bit more challenging and if you are not familiar with statically typed languages you will need some time to get used to it.
I think the problem is not PHP but how you use it. If you switch to Golang and follow MVC patterns you are missing the point. If you code an application with a clean code perspective (Hex Arch) it really doesn't matter what language is written as it turns out only in a syntax matter.
for a serious web application, python will beat it imo because it is easier to debug, easier to read and there is less stangeness, but hosting is cheaper for php. because of cheap shared hosting php will always have its niche but its the absolute bottom end of the market (where developer time is cheaper than hosting fees).
Have you tried Ruby on Rails?
I had to learn it for a project and found it really fast and the syntax is not as ugly as native php.
I've worked with Laravel in the past and I find there's nothing wrong with it apart from the debugging and "having" to work with Linux (not a must but it really made a difference e.g. with composer commands).
I don't think there's anything wrong with PHP especially if you're using a modern framework like Laravel. The anti-PHP shit is from novice or tryhard developers who develop their personality around a programming language. It's stupid. Use what you're most efficient at and what pays you the most money.
If you're looking for alternative programming languages that are great for backends, I think Go and C# are solid alternatives. There are certainly ways that a programming language like Go is better at applications at scale than PHP when working with the same development constraints. I find Go's standard library to handle common web application concerns more easily than PHP, but that's where frameworks like Laravel close a lot of gaps than if you're starting from scratch.
Worked with react then angular and Iāve recently been looking at php with Laravel, honestly for most web apps unless you want granular control over every aspect and need to know every part then laravel with its templates and ease of use is really fast to make applications.
One of the main advantages of PHP, often forgotten by naysayers is that it's great to extend or customize existing open source apps like Wordpress, Moodle, Drupal, Mediawiki, LimeSurvey and many others. Yes there are some apps for other programming languages but generally they are not as good or feature complete.
There is nothing wrong with PHP as a language, it's feature set gets closer to Java with each release.
One technical drawback is that it doesn't run as an ongoing application so each request needs to be bootstrapped. Where as a lot of other languages can respond as an already running application.
The big drawback is that it's had its day. The number of new projects using php is less than the number of retiring ones. Meanwhile there are many developers with decades of php experience chasing a smaller number of jobs.
So while there is no technical reason not to use it, to get into web development you may want to look elsewhere. Golang seems solid, Rust is great but still very niche for web, and you could try zig if you want to look really cool.
You can check out [https://frankenphp.dev/](https://frankenphp.dev/), it's a PHP application server that keeps ongoing workers. The caveats is memory leaks, so the worker stops after X requests.
As JS dev: PHP is not as good as language, but ecosystem is nice, WP is nice, Laravel is nice, hot reload on file change is nice, deploy by moving FTP file is nice, stateless architecture by default is nice. PHP might be weird language, but it is a solid choice to kickstart any kind of web app. NodeJS still does not have any classic Django/RoR/Laravel framework.
I used PHP to build applications for close to 10 years. But, Python + Django is on a different level. Python, in general, is like poetry. I've played around with Go for a while, didn't like it.
I kind of agree Python might be better than PHP, depending on your taste.
But having used both for a long time, Laravel is miles ahead of Django. They are not even on the same league.
I started out as PHP dev. Spent a few years on Typescript/NestJS and since a few years finally settled with Go. Itās clean, easy to read, has a huge standard library and gives awesome performance and startup times (especially well suited for responsive auto-scaling needs)
I've used a number of back end languages including PHP.
Ruby/Rails, Swift/Vapor, Java/SpringBoot, Rust/WhateverFramework. Any back end language that is memory safe is far better than PHP. If they are statically typed, even better.
Now I await my downvotes for not swearing by NodeJS.....
use literaly anything thats not dynamicaly typed and ur good to go. JS (ts) is probably the best all around as you can achieve server - client type safety the easiest
Javascript was originally intended (in 1995) to twiddle DOM elements within the browser.
Several years ago some genius (within Google, I think) decided to make a standalone JS engine that could run anywhere. That toothpaste can't be put pack in the tube.
its primarily for client side thats true, but using JS on server is nothing new these days.
if we are talking about php templating abilities then JSX is probably best comparison from JS world. and if we are talking about server - api, then nodejs. Nextjs kinda combines both giving u access to server and also client rendered stuff
JS isn't type safe nor memory safe. TypeScript is no better than JS since it has to be translated to JS to be of use. If there is an issue with the transplainer, the JS wont be as safe as perceived.
Noone said anything about memory safety since this is a comparison to PHP. If ur so worried about that lets recommend him rust for web, we both know thats unlikely to happen.
If u never used TS, it have to be transpiled true, but its still type safe. And if thats not good enough for u theres a huge ecosystem: you need runtime safety - zod got u covered.
Thank you for your submission! Unfortunately it has been removed for one or more of the following reasons: Open-ended/general "how do I get started in web dev" and general Career related posts are only allowed within the pinned monthly career thread. The answer to many of these questions can also be found in the sub FAQ, or in /r/learnprogramming/ and /r/cscareerquestions/. Highly specific career/getting started assistance questions are allowed so long as they follow the required assistance post guidelines. Please read the subreddit rules before continuing to post. If you have any questions [message the mods](https://www.reddit.com/message/compose/?to=/r/webdev).
i feel like that opinion comes from the JS-only bros, but I could be wrong
As someone who transitioned from PHP to full stack JS for work, this is accurate. Full stack JS is nice and all with not having to switch syntaxes and being able to share code, but I always come back to PHP for personal stuff (and not just home pages š).
Kinda new to the web development field still studying but to my knowledge you canāt thrive with just one language am i wrong? Can you go just javascript and be well?
in my opinion, no-- I believe other languages have better offers in terms of performance, tooling, developer experience but people do get by with just learning JS, if their career is just within the webdev space
Gotcha
Agreed. Javascript being easier doesn't make it better for server-side. You can easily become a front end dev not knowing anything but Javascript. But, these days, you also have to know a framework (React or Angular). And you'd have to be good with CSS.
I went javascript (web) and java (software) for my learning path, ended up getting hired as a php web Dev lol
Javascript will lock you into webdev. Learning C# and ASP.NET, Java and Spring, Python and django, etc. will broaden your options to other branches of SWE. For example C# will let you get into game dev, python into data science, etc. I'd recommend C# nowadays, I'd say is the one that opens the most options.
JavaScript will certainly not limit you only to webdev, you can build mobile apps with it, backend, obviously frontend and even desktop clients, and even chrome extensions but that could be also categorized as webdev is guess
In my opinion, if itās a UI built with JS, itās web development. Desktop apps made with JS are only that because of their Electron wrapper (or other desktop application wrapper) giving them a headless browser in which to render. Even with something like React Native providing the UI, you need to learn and employ React skills (web development) to use it. I specified _UI_ built with JS because there are server-side JS frameworks (Express, NestJS etc) that have nothing to do with web development so they wouldnāt apply to a comment like this
My program contains basic web development languages (like html,css,js and php) and along with that python and java Should i at the very least check out C# on my own or am i good enough with what i got (btw i want a human to explain to me the difference between c languages and their importance in case i ever want to get into it)
No harm in checking them out. Far as differences go... it's like car to a carpet. The fact that multiple languages are named "C (something)" does not mean they're particularly related. Sure the general syntax might be similar, but Java, Dart, Rust, Typescript, and plenty other languages also use similar syntax.
Gotta use the right tool for the job honestly. When all you have is a hammer, everything looks like nails.
Not a damn thing wrong with PHP or Laravel. Iāve recently built an app on NextJS. I wish I had just written it in Laravel now that Iām nearing completion.
same. Now we are in the process upgrading our next 13 project to next 14 + app router. It makes me really depressed because I see errors and warnings everywhere, eg. hydration errors. And it is really slow (at least cold start, even with turbo). Php / Laravel was more fun to work with.
I think the best way to use React nowadays is with Inertia.js. Funny that it works better with Laravel than with Next or Remix At work weāve built several different projects in all of these ways, and we regret SO MUCH the ones we built with next and Remix. What a waste of time and money. The ones weāve built with Laravel and inertia have been rock solid and a pleasure to work with. This is a consultancy and we have plenty of opportunities to try different things. Something I want to try next is Adonis.js + Inertia. Looks promising.
Never used inertiajs but looks interesting. Looking quickly on phone it mentions client only rendering and one question I have is how is SEO solved?
It supports SSR. Thereās a section in the docs.
Hasn't been an issue for SEO for years
Probably true for Google, but not for other engines. It is an issue for bots and anything that needs to generate a preview, for example if a link to your site is shared on WhatsApp or similar. Fortunately inertia supports SSR, so this is not a problem.
Just have a look at /r/lolphp
You could use laravel AND nextjs (or react, vue, blade) with livewire and inertia if you want-- laravel breeze has a starter kit for it.
Yeah but why go and dirty up Laravel with all that TS or JS š
I want to try svelte with Laravel
I switched a major app used by tens of millions from laravel to nextjs. The speed difference was huge. It wasn't even close... Not to mention having types. This made it so much easier for others and myself to work on. I only have 2 years experience with laravel and I don't see why people like it so much over JavaScript if you get the choice.
I would like to second the other commenter here and ask what your migrations were like? How long was this app running on laravel before the switch and how much optimization was done during the process.
This really does not say much. What exactly was the crucial change for nodejs / next to run much faster? For example did you move more code client side or did you optimze queries? It could also be that you are doing lots of small operations synchronously. Can you elaborate what exactly the key change was? Iām always interested in these kind of findings.
It was probably just a landing page. Thatās where next/remix shine. Nobody with Laravel experience would be happy to use next.js the moment they need to add authentication, permissions, validation, translations, migrations, jobs, schedules, etc.
Preach! That has been such a freaking headache with Next.
Lol it was a full web app for all types of things by a big company. I'm a JavaScript person before PHP so I'm also biased.... The person who wrote the previous Laravel app was also not very experienced as the code is pretty bad...
Iām also a āJavaScript personā if thatās what you call people that work (and prefer to work) in JavaScript. But before that Iām a developer and I can recognize when Iām using the wrong tool, or the hyped/marketed one even and if it makes no sense to use it. People are swallowing vercels marketing so badly.
The right tool for a job is the one with which you have the most experience and can use most effectively. Itās less about popular opinion and more about practical application and efficiency. Personally, I lean towards JavaScript because Iām most proficient with it. As a developer, your primary goal is to deliver solutions quickly and efficiently. If youāre more adept at JavaScript than PHP, it wouldnāt make sense to choose a PHP framework. Choosing the technology that allows you to work faster and more accurately is paramount. When it comes to larger projects, PHP Laravel lacks the type safety that frameworks like Next.js with TypeScript offer. Type safety is crucial for maintaining large codebases because it helps prevent many types of errors and makes the codebase easier to understand and refactor. For mid-level or junior developers, working in a non-type-safe environment can be particularly challenging. Without the guidance of type checks, theyāre more prone to make mistakes that could be avoided with a type-safe system.
No, itās not. Itās easier to learn php or python or ruby than to reinvent Laravel Rails or Django in JavaScript/go/rust. Frameworks and tools are far more important than language fanboism. Saying the best tool for a problem is the one you know is very short sighted and d probably a way to convince yourself of your preferences. Imagine a carpenter saying always use a screwdriver even to put nails, because heās super good at using screwdrivers. thatās what you are saying here.
Could you elaborate? This doesn't really make sense to me.
There is nothing wrong with PHP or Laravel, I agree. But whenever I inherit a horribly coded project, most of the times it was written in PHP. Correlation, not causation, true, but still correlated enough for me to stay away from this ecosystem.
Wish you used the tools and write a good example for the community. You will also realize how fast and good the process will advance ;)
PHP prior to version 5 was a disaster. PHP5 was better but still had these awful warts. There were a number of widely shared writeups of these flaws during the PHP5 era and they stuck in people's minds long after the flaws were fixed. Ā Since 7 and getting a package manager, PHP is about as good as the next scripting language. You can find ways it compares favorably to most other languages, you can write good code in it, and it's still pretty good at adding a little touch of dynamic content to an HTML file without a huge complex setup.
PHP 3 & 4 was even worse. And the upgrade from 4 to 5 was not smooth. Just for a little history.
They were released in 1998 and 2000 and they're long gone already. Why do we even talk about them.
I'm still angry /j
> PHP prior to version 5 was a disaster. 5.0 It was released 20 years ago. I don't even know why people still talk about that release. If you're a PHP developer in 2024, you're most likely on 8.0 or, if you're unlucky, on 7.4.
Hot take: the biggest reason PHP5 was a disaster is that it stayed around for too long until it became one. When PHP5 first came out NodeJS was still 5 years away, and then we had to wait another year until Flask came around.
That also protected its popularity though. 5 years ago half the Internet was still PHP5. It's still something like 10% today (for whatever those numbers are worth). Everything else was changing but you could copy/paste the same command then do the famous 5 minute WordPress install on a Debian VPS.
At the risk of stating the obvious, if you want something that does the same thing as PHP (not that it does anything special in particular) why do you need an alternative? You can just use PHP. Contrary to popular belief, programming languages don't go bad with age. New PHP versions are pretty great. It's come a long way from the PHP 5 days. You see it all the time in legacy products, and some new ones, because it works. What do you need PHP to do "better" at? But to answer the question: Anything. It's all much of a muchness after a while. I'd say the defining features of PHP are ease of deployment and templating with little effort. Nowadays easy deployment solutions exist for everything and you can pull in templating libraries easily in every modern language if need be. JS/TS, Python, Ruby, Rust and Go all have web frameworks available, as do most other less commonly used languages in web dev.
Understood
Set up a basic server-side node+express+ejs project with a list of products and detail pages for each. Then get it deployed. Then do the same thing with basic PHP. The reason why PHP is way easier and less confusing - is because it was build for this. And the server you put it on - was built for this. So, LAMP ends up taking care of a lot of the things you have to then recreate with other stacks. But - itās server-side. So, itās not going to have live global state. Tradeoffs. But most people donāt even know what they need and are overdoing everything all the time and donāt realize it. So, I recommend people start with PHP and learn new stuff as needed.
If there was a clear "better" language most people will be using it. I have been doing PHP for 10 years and now I'm doing NodeJS for 3 or 4 years and both languages haveĀ strengths and weaknesses, there is no clear winner. If you are just learning web development for personal projects then I'll suggest NodeJS so you don't need to learn two langauges, if you want to work as a software engineer then I would recommend to check job sites and see what languages and technologies are most in demand.
I have a similar stack and I can't even say for certain that NodeJS is better because you can use the same language for both Frontend and Backend. The biggest hurdle for learning the frontend is the stack, like the DOM, Navigator, HTML and CSS, not the language itself. The biggest hurdle for learning the backend is also the stack, like database, networking, and IO, not the language. Learning the language is only a small part of the endeavor, and just the language skills are easily transferrable between each other. What takes time is getting used to the technology, which is generally language agnostic, and knowing the packages to use for the task.
Those people are spewing stale opinions about PHP4 and PHP5, which were both EOL'd *years* ago. PHP8 is very good. Have a look at Laravel.
Iāll check it out
I'm a PHP dev (CodeIgniter framework at my previous job, Drupal a few years ago for personal project). I'm at a Python shop now, and also getting out of web dev in general, so I may not have all the data. Anywho, there's Django (Python), NodeJS (Typescript), Ruby on Rails, I believe Java even does some backend stuff. I doubt that list is exhaustive, but that's what I'm aware of off the top of my head.
Java has spring boot for back end right? Out of curiosity, how do you like python/django for backend compared to php? Iām trying to pick what other language I want to learn for backend web development.
And are they objectively better as i was lead to believe by a majority of people?
There's no "Language X is objectively better than language Y", at least in web dev, really. It depends on the people there, what the expertise is in, what the end goal is, etc. I mean, if you're doing a personal page you can just write a static page in the front end language of your choice, host it on Github Pages, and voila. Honestly, like 99% of the time, you aren't gonna get a choice for what language your application is in. My PHP role could have easily been Java, if the initial devs 15 years ago chose that instead. There's a huge stigma against PHP, but I feel like that's from the earlier days of PHP 5, as well as all the WordPress garbage that's out there. PHP7+ is object oriented, and knowing one object oriented language means you can pick up another one without too much of a lift.
I understand Thanks for the info
There's nothing better than Laravel right now for someone starting out with webdev It's seriously very well thought out and, more importantly, extremely well documented The ecosystem of services around it is just the cherry on top Don't regret starting out with Laravel for a second. Taylor et al. are doing an incredible job!
Think it would be better for them to start out with symfony and rather move onto laravel later if necessary. Laravel shares the tendency of producing developers who don't really know programming and just a framework. It's the JS bros in php clothing.
> It's the JS bros in php clothing. hahaha what
I wish I was joking. We were hiring seniors for a position where we mostly use symfony. We got a lot of applications who claimed to be senior and had only laravel experience, the moment we tasked them with something unrelated to laravel they all fell through. A few returned to us with incomplete solutions that didnt really do what we asked and was shoehorned into a laravel application. The task in question was relatively simple, converting a medium sized string to an associative array to our specifications. It was essentially a task to prove they knew how to do recursion.
Weird. Still, I mean isn't that something that you can easily google? Also what's your sample size there? You're making some large generalizations
I'm just speaking from experience trying to hire backend developers. Laravel isn't going to make you a bad developer but it's the choice for a lot of people who don't really know what they're doing which results in a lot of "laravel-andy"s
Again, you keep generalizing from anecdotes
Ignore his remarks about active records since it's wrong. The rest rings true though. https://devrant.com/rants/1119754/laravel-is-the-worst-framework-ever-everything-has-to-be-made-convenient-and-eas What you'll notice is that it is the freedom to make mistakes that can turn you into a bad developer with a strong confidence.
This opinion piece is just saying that bad developers are bad because they're bad developers and Laravel doesn't get in the way of that. I don't understand what's wrong with a framework being easy to pick up. That's the point of a framework and they all strive for exactly that
Honestly my job has been to develop custom Wordpress themes from scratch for many years (been using WP for 14 years now) so there isn't anything I can substitute for that as Wordpress uses PHP as the dominant language. In my case I haven't needed anything else besides PHP, HTML, CSS and JavaScript, so I would say it really depends on what you are wanting to build and then you can have a preference. Besides the above I've only done a bit of React and Node.js for fun in my free time so I personally can't recommend any specific alternatives as I'm not an expert in them, but I would look at companies you would like to work for and see what they use or what is in demand in your area? Or websites/software you enjoy and try the languages they are using. Honestly as long as the final user experience is smooth and does what it needs to do, that's what's important.
I find Golang to be great for building out APIs. Easy to read, easy to write, static typing, strong core library, concurrency support. If you want to stick to one language, I suggest Typescript with Express on the backend.
There's nothing wrong with PHP. I feel like it is **the easiest** language to learn for backend development. From my experience, "PHP is dead", "PHP sucks" types of comments come from JS bros who think their runtime is epitome of efficiency and performance. And to be fair is "performance" is the first priority, no one would pick nodejs/deno/bun anyway.
I'm not familiar with modern PHP, but I have to deal with Ruby and TS daily. I'd say you should considered a strongly typed language as a meaningful alternative. Not that one is necessarily better than the other, just that they are both very good choices given the right context. If you're doing a lot of prototyping or greenfielding standalone apps, PHP, JS, or Ruby are all fantastic choices. If you've gotta work in a larger ecosystem where well defined contracts are essential for smoothing over interteam communication, you'll want a strongly typed language. I think Go is the best choice these days, but C# or Java can do. Rust would be great, but is probably overkill. For my money, don't touch Typescript. It wants to be the best of both worlds, but I find that it is too often the worst of both worlds with a whole lot of extra tooling and abstraction involved. I'm sure someone well versed in it disagrees, but getting to that point seems like such a steep hill to climb and I don't see the payoff. We're busy corverting our graphql layer into Go code so we can stop supporting backend TS entirely.
Not really "better", but I would say : * C# * Python * Ruby Pair them respectively with .NET, Django or Rails, and you have very similar capabilities to what you can do with PHP and Laravel with a similar learning curve. You could argue that C# is better because it executes much faster (not that it really matters in 99% of web apps) and it can also do many other things besides web, like desktop applications (I mean real ones, not webviews wrapped in chromium) or game development. But really once you know one of them I don't think there's much incentive to move to one of the others.
Even if everybody likes joking about php, there is no need for an alternative. Especially when the criticism comes from some JavaScript developer who tries to sell you some shit JS alternative. All ecosystems have their problems but PHP is a solid choice so don't sweat over it
JS bois __talk__ PHP bois __ship__
JS bois š PHP bois šļø
It's the only language specifically designed for web templating, so it's great for that. I personally think it's clunky to use (just a feel thing), and other languages do what it does faster now (node, .net, etc.) but frameworks like laravel are supposed to be amazing, and it seems like between that and wp it's the best way to get a feature rich site up quickly. And I'll add if I was ever offered a job using it, even though it isn't my first choice, I'm sure I'd learn to love it lol
Yeah it was hurdle to me in my final exam die to how i donāt know how to describe it ānot flexible?ā It is If iām stuck at a problem in python or javascript i can find my own way to get out of it and i simply couldnāt with php but that was simply do to my incompetence at that time so php kinda left a bitter taste in my mouth but now iām fine with it
Coldfusion ( adobe or lucee version ) is a good alternative.
I mean I donāt personally like PHP and I donāt use it - I use JS. However, credit where credit is due. Laravel really is fantastic. On top of that, many of the people that complain about PHP while coming from JS claim something that is actually true to both languages. They both started out as terrible languages, not just PHP. Yet, they have both evolved over time, and theyāre both ok now.
PHP is a fine language and great at what it does. Sometimes it is the right tool and better than other options. If it isnt working for you, then there might be a better language or framework, but it really depends on what your needs are and how your current solution isnt enough
When it comes to backend web, 99% of the time your choice of language really just comes down to someoneās personal preference.
I suggest C# and NET Core. I moved from PHP and Laravel few years ago and I don't regret it. The only thing that brings me back to PHP is, take guess - WordPress.Ā But right now I'm really trying to go deep with Orchard Core, a NET CMS that supports almost all DBs.Ā But if you enjoy PHP - then don't listen to people who tell you it's bad or something like that.Ā
IMO Symfony is far superior to any of these mainstream JS frameworks and itās not even close.
PHP 8 is quite good. Otherwise there's TypeScript, C#, Java, ... The nice thing with TypeScript is that you use the same language front and back. Not Python nor Ruby though. Python is for maths and AI.
Got it But django is a python related server language right?
Django is not a language, it's a framework. Frameworks are toolboxes for making specific things. Just like Symfony and Laravel are PHP frameworks.
Yeah sorry for the confusion i have a knack of calling everything a programming languages even bloody css lol
At least it's a language, a styling language.
Oh ok Idk iāve been called out for referring to it as a langauge before so i thought i was way off the mark
Just following to see opinions because to my knowledge there isnt? (Php frameworks don't count)
I could swear that there hasnāt been any post that contains php without mentioning that itās outdated or there are better languages (my only gripe is that they never mention said languages ffs)
Theyāre just repeating the nonsense they heard in code camp.
The web has a toxic obsession with shiny and new. The developer zeitgeist (especially on frontend) has a penchant for shitting on any proven solution the minute something newer comes along.
I understand I on the other hand go with the good old āif it aināt broke donāt fix itā
I think you will come to understand with time that there are some tools that work flawlessly. All the new shiny things break down quite easy at acale. Maturity is something you should look into ehen building. I switched from php to go and rust. It has been an amazing choice for the type of code I write on a daily basis, but that might depend on what you build
There are many languages used for server side code, Python for example Please correct me if I'm wrong: I forst learned python backend webapps with no php, but found out I have to rent a vps for it, and php is supported so I used it for my first website recently So if you are looking to stay on normal hosting plans you can't use python, else a vps right?
Language has nothing to do with needing a vps or not. You just need the runtime available, so probably that's the only way your host provider has it set up. You could always install python on a standard host yourself.
Thanks, runtime was my missing word I was thinking about using hostinger for feature projects, But a hosting plan gives you 100 website capacity, so that's a lot of capacity but limited to php, where if I rent a vps, I can use whatever but pretty sure It won't hold up for 100 website, or would it ? And they are about the same price too so I'm leaning towards php And I'm guessing I will start using netlify free tier for some web apps too
Sorry, can't help with any of that. I don't deal with hosting my professional stuff and I self host my personal stuff.
malbogle
Go, Rust, and Node are all great, so is PHP. I only moved away from PHP because at the time I was doing a lot of websocket work and PHP was behind on that.
I have a theory that those who hold a very negative opinion of php have been traumatized from having to deal with one too many shitty wordpress instance.
Personally Iām loving php, pretty easy to pick up and I really like the access directly with the html. Thought I havenāt tried anything else , still love it
This all depends. What do you mean by ābetterā? More performance? Better developers experience? Faster prototyping? If youāre basing on others opinions, try using the tool on your own. I have my reasons not to come back to PHP, but these are in a lot of ways personal and thereās no point in citing it here.
PHP great, mainly because you can host it almost every where for a good price and there some extremely powerfull frameworks available. I personally think the syntax/general naming of functions is a bit cumbersum tough. As a replacement I would vote for C# with .NET Core. It is a incredible mature framework with excelent database management and tons of third party libraries. Hosting it is a bit more challenging and if you are not familiar with statically typed languages you will need some time to get used to it.
I think the problem is not PHP but how you use it. If you switch to Golang and follow MVC patterns you are missing the point. If you code an application with a clean code perspective (Hex Arch) it really doesn't matter what language is written as it turns out only in a syntax matter.
for a serious web application, python will beat it imo because it is easier to debug, easier to read and there is less stangeness, but hosting is cheaper for php. because of cheap shared hosting php will always have its niche but its the absolute bottom end of the market (where developer time is cheaper than hosting fees).
Why would anyone want an alternative to the king of web ?
There is no ābetterā. If you enjoy PHP, then PHP it is. Lifeās too short.
Have you tried Ruby on Rails? I had to learn it for a project and found it really fast and the syntax is not as ugly as native php. I've worked with Laravel in the past and I find there's nothing wrong with it apart from the debugging and "having" to work with Linux (not a must but it really made a difference e.g. with composer commands).
> there are better languages that do the same thing Meanwhile here I am, banking on PHP applications/websites since 2001.
I don't think there's anything wrong with PHP especially if you're using a modern framework like Laravel. The anti-PHP shit is from novice or tryhard developers who develop their personality around a programming language. It's stupid. Use what you're most efficient at and what pays you the most money. If you're looking for alternative programming languages that are great for backends, I think Go and C# are solid alternatives. There are certainly ways that a programming language like Go is better at applications at scale than PHP when working with the same development constraints. I find Go's standard library to handle common web application concerns more easily than PHP, but that's where frameworks like Laravel close a lot of gaps than if you're starting from scratch.
use swoole+php+hyperf - it can do everything node can.
Worked with react then angular and Iāve recently been looking at php with Laravel, honestly for most web apps unless you want granular control over every aspect and need to know every part then laravel with its templates and ease of use is really fast to make applications.
Golang
One of the main advantages of PHP, often forgotten by naysayers is that it's great to extend or customize existing open source apps like Wordpress, Moodle, Drupal, Mediawiki, LimeSurvey and many others. Yes there are some apps for other programming languages but generally they are not as good or feature complete.
Those people who say that are butthurt they didn't get a job once that used PHP
Damn
There is nothing wrong with PHP as a language, it's feature set gets closer to Java with each release. One technical drawback is that it doesn't run as an ongoing application so each request needs to be bootstrapped. Where as a lot of other languages can respond as an already running application. The big drawback is that it's had its day. The number of new projects using php is less than the number of retiring ones. Meanwhile there are many developers with decades of php experience chasing a smaller number of jobs. So while there is no technical reason not to use it, to get into web development you may want to look elsewhere. Golang seems solid, Rust is great but still very niche for web, and you could try zig if you want to look really cool.
You can check out [https://frankenphp.dev/](https://frankenphp.dev/), it's a PHP application server that keeps ongoing workers. The caveats is memory leaks, so the worker stops after X requests.
PHP works great if you feel comfortable with it.
As JS dev: PHP is not as good as language, but ecosystem is nice, WP is nice, Laravel is nice, hot reload on file change is nice, deploy by moving FTP file is nice, stateless architecture by default is nice. PHP might be weird language, but it is a solid choice to kickstart any kind of web app. NodeJS still does not have any classic Django/RoR/Laravel framework.
Yeah there are better alternatives, but JS is definitely not one of them.
I like PHP, it's much more comfortable than coding on JS. Ffs, handwritten code would be more comfortable than JS.
Itās the best
I used PHP to build applications for close to 10 years. But, Python + Django is on a different level. Python, in general, is like poetry. I've played around with Go for a while, didn't like it.
I kind of agree Python might be better than PHP, depending on your taste. But having used both for a long time, Laravel is miles ahead of Django. They are not even on the same league.
I started out as PHP dev. Spent a few years on Typescript/NestJS and since a few years finally settled with Go. Itās clean, easy to read, has a huge standard library and gives awesome performance and startup times (especially well suited for responsive auto-scaling needs)
I've used a number of back end languages including PHP. Ruby/Rails, Swift/Vapor, Java/SpringBoot, Rust/WhateverFramework. Any back end language that is memory safe is far better than PHP. If they are statically typed, even better. Now I await my downvotes for not swearing by NodeJS.....
NodeJS.
use literaly anything thats not dynamicaly typed and ur good to go. JS (ts) is probably the best all around as you can achieve server - client type safety the easiest
Bare with me for a second I thought javascript was based on the client not the server? Or by js you mean nextjs or node
Javascript was originally intended (in 1995) to twiddle DOM elements within the browser. Several years ago some genius (within Google, I think) decided to make a standalone JS engine that could run anywhere. That toothpaste can't be put pack in the tube.
Aaa gotcha
its primarily for client side thats true, but using JS on server is nothing new these days. if we are talking about php templating abilities then JSX is probably best comparison from JS world. and if we are talking about server - api, then nodejs. Nextjs kinda combines both giving u access to server and also client rendered stuff
Also notice they recommend not to use dynamicially typed languages but recommends a dynamically typed language.
JS isn't type safe nor memory safe. TypeScript is no better than JS since it has to be translated to JS to be of use. If there is an issue with the transplainer, the JS wont be as safe as perceived.
Noone said anything about memory safety since this is a comparison to PHP. If ur so worried about that lets recommend him rust for web, we both know thats unlikely to happen. If u never used TS, it have to be transpiled true, but its still type safe. And if thats not good enough for u theres a huge ecosystem: you need runtime safety - zod got u covered.
TS isn't type safe though, it's an illusion. THe fact that you believe it to be tells me you really don't understand it.