Yep, PHP is turning 30 this year! Wondering if “PHP is still relevant?” Ever since we have been hearing that PHP is dead. It was “dead” 10 years ago, 5 years ago, and “is dead” today. But somehow - it isn’t. Anyway… happy birthday!
Ah yes, the language that picked strlen as the hash function for its hashtables.
Can you elaborate on this?
PHP will never die. As long as code is written there will be PHP developers there to claim it’s good now.
Everyone in this thread: PHP sucks because it was bad when I last used it 20 years ago.
Dangit. That’s me too, I just saw your comment before posting one myself 😅
It’s still bad nowadays, and it’s the main language used on pretty much every system of several state level secretaries in Brazil. My colleagues work with it daily (I don’t program, thankfully) and they’re not exactly fond of it. Legacy systems, man
I mean it does suck, but it sucks less than anything else we have.
Nah, i’d say java has been better than PHP overall
That’s also 30 years old, old man!
IDK, I like Django/DRF
FastAPI ftw, fight me! Lol jk Django is cool and useful and serves a different need, quite well from what I understand.
bro ive been doing fullstack js dev for severals years to then realize php is superior💀
The only reason php is still alive is Facebook
W-what? Did you used js as backend? How was performance?
Happens a lot - my (quite small) shop was using NestJS for backends and my boss is way more experienced and wise than me. I unintentionally caused us to switch over to Python, which probably sounds as silly as JS to many, but - we deliver dope shit, on time and on budget 🤷♂️
Thanks to web browser development, there has been quite a lot of focus/investment into JS runtime optimizations. Since the server-side runtime environments use those same JS engines, performance tends to be quite good.
Well better late than never.
Where I live, I still see people in a horse-drawn wagon. So, I guess horse-drawn wagons never died? It’s only used for tourists and weddings, but that counts, right?
According to Tiobe, PHP was the programming language of the year in 2004. In 2010 it was number 3 in the top 10 programming languages. It’s now out of the top 10 entirely. There really isn’t a language that has completely disappeared. Mainframes are still programmed using COBOL, Scientists are still using FORTRAN, even Lisp, which has been around since the 1950s, is still going strong.
Maybe Actionscript counts as truly dead, since it was tied to Adobe Flash, and Flash is truly dead?
I have a lot of bad memories of PHP. It was, for a brief time, the main language I used, but it was so ugly and inconsistent. The only thing I loved about it, at the time, was that it wasn’t Visual Basic. As bad as PHP was, at least I wasn’t making web pages in that pile of hot garbage. But, I never felt joy writing something in PHP. At best it was a slog. At worst it was like pulling teeth.
Just about every other language has given me moments of fun. Original Javascript was a mess, but it already contained scheme-like features. It was sold as being an interpreted version of Java, but it had features that Java wouldn’t have for at least a decade. C is a brutal and unforgiving language, but as long as you’re not working with strings, it’s great to have such low-level control over everything.
Maybe PHP has evolved like other languages, but I still am not interested in trying it out. Everything it was good at can be done better by other languages, and those are languages that give me joy, not pain. I hope it keeps dropping in the rankings so that people aren’t exposed to it as one of their first languages.
There are still Amish and Mennonite communities who use horse-drawn wagons and farm implements their whole lives.
Not really meant to be an argument to your point, just interesting to know.
It’s definitely cool to see when you get into Western Pennsylvania, for example.
There really isn’t a language that has completely disappeared.
How about that shit where a “program” was a bunch of patch cables plugged into various sockets? That shit is gone, man.
Yeah, I think this is a more fitting meme to be about Java, because despite all the java is dead articles it’s still like one of the top most used language, if anything is a serious backend service it likely runs on Java.
Java is a better fit. It hasn’t fallen in popularity the way PHP has. But, I’m not convinced that serious backend services mostly use Java. It’s one of the languages used, sure. But, I don’t know if it beats C/C++ or Go. Apache’s C. Nginx is C. Kubernetes is Go. Docker is Go.
I think Java has a niche with certain kinds of business logic applications, and those are pretty common. I would guess that in a typical set of interactions with a Google product, or a Meta product, or an AWS product, some parts of the traffic will be handled by services written in Java. But, others will be C/C++ or Go. There will probably also be some parts of the process that are PHP or Ruby or Python, and a lot of Javascript.
I can only speak for what I see in the central European market, big banks like Unicredit (literally primefaces frontend), Erste group is running Java, basically all government services are Java.
Java is by far the dominant language on the job market in terms of number of open positions and salary.
Most developers are not going to create the next kubernetes. For me it is usually down to earth integrations. Take this file from s3, send as email and sftp here. Create API to proxy another API. Take messages from Kafka, put on rabbitMQ. Save messages from rabbitMQ to database.
I think Java is very strong with libraries. Especially with Spring Boot and camel. I don’t really see it as niche but more of a plain boring peanut butter sandwich. Boring. Unexciting. But works.
I am however trying to convince my boss to allow kotlin. Which has access to all the java libraries
Most developers are also not going to create a “serious backend service”. Most are making a random website, or chaining together a few “business logic” items. I think we’re just talking about different levels of “serious backend service”. Like, if you mean someone making a website for the biggest industrial machinery company in the fortune 500, but it’s all B2B stuff and so it handles at most hundreds of QPS, then I think you’ll find a lot of Java there. I just think that for the biggest B2C companies in the world that handle hundreds of thousands of QPS, it’s not exclusively Java.
I’m not trying to say Java is bad or anything. It’s just that it has a few quirks (like garbage collection) that start to matter when you’re getting eye-watering levels of traffic. So, for the most serious of the “serious backend services” I think you see Java, but you also sometimes see C/C++ and Go.
Laravel brought life back to PHP for me. It’s elegant. I feels like speaking.
And PHP 8 is light-years away from the garbage I grew up on.
I took a look and threw up in my mouth a little. That’s not how backslashes should be used.
Instead of writing their frontend templates in PHP via Blade, many developers have begun to prefer to write their templates using React or Vue.
So… the only thing that PHP is really good for should be replaced by React or Vue Javascript / Typescript?
To each their own, but for me that’s a no.
Tell me you haven’t looked at php in 15 years without telling me you haven’t looked at php in 15 years
I just looked, that was the basis of my comment. It’s bad, in particular that “Laravel” thing was awful.
I wouldn’t even say that Flash is truly dead, thanks to emulators like Ruffle. You can still make a movie or game in Flash MX 2004, which is freely available now, and have it run in the browser. That said, last I looked (years ago) only AS2 was supported, so AS3 might be well and truly dead (rip my first language).
In PHPs defense, it keeps evolving in positive, meaningful ways. If you are up to date with it, it’s quite sophisticated and enjoyable. Doubly so if you use a framework like Laravel.
Most memes or jokes referencing a direct problem in PHP, are old or made by people who haven’t touched the language in a decade(version 7 was in 2015, and it removed/fixed a lot of issues and added needed features).
There’s also the huge looming thing that a lot of programmers forget: Websites like Wikipedia run on PHP, not to mention the amount of WordPress and similar websites are out there. Which means it will keep going strong. And for a while Facebook also used quite a lot of it, to the point where they made a rudimentary compiler instead of rewriting parts in more efficient languanges.
Also, most of the websites are made with WordPress, which… take a guess, yes, it runs on PHP!
(even though WordPress is a bad example because it’s written in a horrible and ancient way)
I agree. A lot of people who mock PHP know almost nothing about it but they know they’re supposed to hate it because all the cool kids do.
… or even Symfony.
I’m still confused why laravel is more popular. Symfony is so much nicer to use and maintain
Yeah, if you add tons of extra rules and tools, it can become almost as pleasant as the main Python or Ruby experience.
Almost.
Well, at least PHP isn’t as bad as JSP.
Or TSP (trisodium phosphate) - which you can’t even make websites with, but it’s great for cleaning oil spots off the driveway.
I laughed pretty hard at this while also unexpectedly learning how to clean up a mess I made changing the oil in my car on a particularly windy day recently!
jsp answered the question, “What if Java was like PHP but with more Java?”
jsp deserved to die.
We heard you liked garbage collection so we put garbage in your language.
Replaced the P in LAMP with Python when I started building webpages again a few years ago, and never looked back. Such a vastly more pleasant experience.
I am an advocate for LKPPR (Linux, Kubernetes, Postgres, Python, React). Doesn’t roll off the tongue that well.
LicK PaPeR
Replace Postgres with Valkey, then it’s LicK ViPeR
Get that fucking JavaScript out of here
What’s your alternative for web development?
Server side rendered content can only get you so far.
Webassembly frameworks.
Blazor! But only because I’m a dotnet guy professionally.
Yew? I’m not good enough with Rust to have tried it.
Wasm cannot modify the DOM iirc
Right? That’s the mindset that brought us asp, jsp, and php. JS might be obnoxious, but it’s the only viable client-side right now.
Typescript makes for a whole different experience on the FE
When I ask a server for something, its response shouldn’t be “here, you do it.”
Python is a natural evolution for web development, especially once you’re past the fundamentals. For someone with no scripting background, PHP is easier to approach. The syntax is more direct, and basic debugging doesn’t require any setup. An error happened on x line is the default behavior.
Python’s logging system can be tricky to configure properly if you’re unfamiliar with the factory and error level handling. Those green people don’t have any idea where to put the log or how to let the web server talk to it safely.
It’s the little bs like refusing for years to include switch, then when they finally give, they just refuse to allow fallthrough. It’s like they said, fine, but it’s got to work slightly differently and we don’t like the name… it feels childish.
All things considered, Python has a richer ecosystem and deeper long-term potential. But there’s something to be said for how quickly a basic PHP site can be spun up and debugged with minimal knowledge with minimal friction. And that’s why it’s still around so much today.
I agree that PHP was easy to pick up, but I already knew several programming languages and was quickly shooting myself in the foot with the extremely overbuilt, redundant, and buggy builtin functions. At the time, though, it was either that or ASP, so I chose the lesser of two evils.
To segue, switch statements aren’t inherently necessary for a mature programming language; I think that addition was partially to mollify the growing userbase (not a good reason), but on the other hand it’s really just structured pattern matching wearing a hat that says “switch” on it … though again, that’s something which could fairly trivially be achieved with a list comprehension. It’s not like you’re getting the machine-code-level optimizations that a C compiler could churn out for a proper switch statement.
I personally feel that giving the growing user base things they want is probably the most prudent reason. Constantly refusing to provide simple constructs that are available everywhere else It’s not a good look. In the open source world if you do that shit enough you end up getting forked.
The context and ease of switch in a functional programming layout is a rather clean implementation.
Otherwise you end up with the crap like they’re pulling with flask were you just make an unnamed, unindexed number of functions. Can you sort and organize your functions and make everything clean? Sure you can. Does it happen by default? Almost never.
You can walk up to someone else’s switch and see what the options are. The code flows through that simple construct and it’s very easy to understand someone else’s work.
I load up someone else’s flask endpoint, It’s just this multi-page stream of consciousness.
You don’t need switch, But there’s a reason why so damn many people ask for it. Before they agreed to include “match”, They said just to use getattr and write your own switch.
I guess I should be thankful that they were no longer demanding GOTOs.
Let’s be honest though. The early PHP versions were absolute dog shit. And the definition of how not to design a programming language. That said, that never stopped anyone in web development from using it apparently. No clue what modern PHP looks like, apparently it’s better now.
Was not intended as programming language. The name literally stands for Hypertext PreProcessor. It was meant to be a script injector for HTML back when the internet was still fun.
Then it got out of hand and PHP didn’t evolve fast enough to be a web technology leader, but never ceded the position of old trusty workhorse, and still powers a significant part of websites.
I somewhat know the history of PHP and how it came to be. And that it was just a personal project that suddenly got big. So I don’t blame the creator. But that still doesn’t make it a good language.
Personal Home Page
OOP programming in PHP is pretty fun, keeping up with it’s deprecations and vulnerabilities is not
Modern PHP is better because it’s modern. Which early version of a programming language was good? I’ve used a lot of them, and by modern standards, I think dog shit is a somewhat appropriate description for most of them.
It’s one of a plethora of scripting languages from the '90s which were designed to be the antithesis of “fail fast” and kept going no matter what.
I guess what with C/C++ being the Mainstream Option at the time, not having to deal with a strict compiler must have felt like freedom. As someone who has had to maintain, cleanup and migrate ancient PHP code, I call it folly. That mindset of “let the programmer just do whatever and keep trucking” breeds awful programming practices and renders static analysis varying degrees of useless, which makes large-scale refactoring hard to automate which is just amazing when your major versions aren’t even remotely FUCKING BACKWARDS COMPATIBLE.
PHP’s original design is just fundamentally atrocious. It became popular in large part because unmaintainable code is usually someone else’s problem.
A language that I would definitely use for server-side rendering and that was already good from its first stable release is Go. It was thoughtfully designed and lends itself really well to static analysis, while still being easy to write and decently performant.
It’s been about 20 years since I’ve touched PHP. So i don’t remember all the problems i had with it.
But some language from those times were at least consistent with itself and clearly more thought-out. Even though they might miss some of the nicety we’ve come to like nowadays. Of course for web development there weren’t many better choices back then.
But I’m heavily skewed towards non-oo, static typed, explicit languages so PHP was probably never for me.
IMHO the killer feature was mod_php. Writing server-side website logic was stupid easy with that. I think if it weren’t for that, php wouldn’t have been nearly as popular.
I quit using it like 10 years ago, but I’m happy with what I did with it and got from it.
When I was using Ruby (some Rails, but mostly Sinatra, for little web apps and api serving) Laravel was coming up in PHP shops. Which was just trying to be Rails running on PHP from what I could tell.
There were others before that, like CakePHP, but all I remember about that of all the bugs my coworkers dealt with. I was strictly a front end dev back then.
No clue what modern PHP looks like
Like worse C#.
PHP will remain alive as long Wordpress is still being used.
But let’s not forget that the WordPress codebase is absolute dogshit.
And not an example of how to write proper modern PHP.
Happy 44th birthday IPv4! 🥳
Maybe 25 years ago i build my first website for a paying customer ( my dad). I decided to go for php which was new to me at the time.
I figured it would be too risky ( even back then) to have PHP generate dynamic pages so instead I had php generate static html.
So whenever website needed updating , for example a new folder with images was added, you could just load the admin.php and it would generate gallery pages for you.
Would probably still work 25 year later if wasn’t eventually replaced with some WordPress or something
for many websites, this is the ideal way to do it
makes it order of magnitude more secure
And performant. And accessible. And compatible.
my entire way of reasoning about programming languages changed when i read on article about how hating on php was misogynistic. i clicked on it because it just sounded like yet another ragebait, but it made sense.
basically, since php is simple, and integrated with html, the vast majority of php devs started out as designers who later got into code. since php has always been a mess, nobody wanted to build mainstream tooling for it except the people actively working with the language. this means that mainstream ideas about language and tooling design didn’t percolate down to php like it has done to most languages. so php devs, when exposed to tooling the rest of the world takes for granted, are usually overwhelmed because not only is there a lot of it, nobody in php-land uses tools like that. so they get called bad devs of a bad language. some of them, who really like to code, push through this massive difficulty spike, while others just assume that “actual programming” is too hard and go back to design, even though tooling usage has little to do with your skill as a programmer.
the kicker, of course, being that web design has more women than most other dev specialisations.
Is disliking something that (allegedly) is more popular with women than the average thing of its category anti-woman, even if no part of the complaint involves the user or their gender? The majority of users is likely still male anyway.
Is disliking something that (allegedly) is more popular with women than the average thing of its category anti-woman, even if no part of the complaint involves the user or their gender?
According to my sister-in-law, yes. I don’t like Taylor Swift’s music and apparently that makes me a misogynist.
not directly, but trash-talking it and gatekeeping “real programming” from the language most likely to be used by women is not exactly conducive to improved equality in the profession.
i realise now that i didn’t explicitly mention my point in the first post, so:
- shitting on other people’s jobs is bad.
So PHP may be trash, but don’t treat the people using it like trash? Makes sense to me.
lift people up instead of pushing them down. we don’t make fun of the language someone is using, we help them get better.
When did PHP become more popular with women what is going on here lol
In the start of my career I felt that there was a sentiment around web dev that it’s not “real” programming in a way. Not sure if that’s the case any more seeing as the majority of modern develoment is for web platforms.
I’ve never heard the idea that PHP is a language used by web designers who migrated to coding, but it kind of makes sense. How PHP works, where everything is just HTML until the
tag comes in, made it so attractive as a way to add some spice to static pages. I cut my teeth on PHP and moved on to other languages later, so it makes sense that it would function as a gateway drug of sorts, also resulting in it not getting the attention from seasoned experts that other languages benefit from.
Calling dislike of PHP misogynistic feels like a massive stretch… but maybe it’s not considering how the designer/programmer divide also has a massive gender disparity. PHP has its problems, tooling being just one side of it, and its nature as a designer-friendly language makes it easy for elitists to mask their bigotry behind “objective” arguments that PHP is bad.
i think the wording of the original article was intentionally inflammatory, but “the purpose of a system is what it does”. if shit-talking php causes women to leave the profession, it doesn’t really matter what the intent was.
The main issue with PHP is that it’s designed for a pre AJAX web. Before when there was a real distinction between backend and frontend. The idea with PHP is that the server code is responsible of generating HTML on the fly.
Server code generating HTML is icky in modern web development.
it’s what html was designed for. there’s nothing icky about it. with htmx et al the serverside web is coming back in a big way so we can finally drop this react stuff.
Now it was a great while ago I wrote anything in PHP. What icks me is the separation of concern. It has a tendency to cause code that’s concerned with logic and rendering at the same time. The act of moving a button can interfere with the logic, and it obfuscates how the entire website looks like.
Maybe there’s better coding practices to ensure better separation of concern in PHP.
that just sounds like what i hear from react devs.
What’s actually icky is making a website an SPA, duplicating business logic in the back and front, when it could perfectly be served as a server side rendered HTML.
Server code generating HTML is icky in modern web development.
There’s been a big uptick in interest around SSR lately, so maybe not.
What absolutely no. Server side generated code is still king in the right hands. Why have client lift all of thay when server side html rendering basically costs nothing. Even strong js driven front end you can still add much through server side by providing proper hydration paths. Good devs take advantage of both worlds but server side is incredibly powerful today.
AJAX everything is icky. It’s part of what’s made browser tabs take more RAM than a typical desktop had in 1998.
I exercised all client side JavaScript from an app I maintain. It’s fast, clean, and the back button always works. I just checked on one of the more complicated pages, and according to Firefox’s memory profile, it takes about 2.6MB of RAM.
Where PHP really goes wrong is mixing HTML and code by default.
I exercised all client side JavaScript from an app I maintain. It’s fast, clean, and the back button always works. I just checked on one of the more complicated pages, and according to Firefox’s memory profile, it takes about 2.6MB of RAM.
Wow, that really is a light weight! What exercise do you have your code perform to get such impressive results?
No JavaScript, just HTML and CSS. Basically no images. The heaviest page dumps 50 rows of logs in a table.
It’s admittedly a fundamentally simple frontend, but we all know of frontends with a simple job and a not so simple frontend.
Ah, so it sounds like it was more about dieting than exercising.
I was thinking more in the sense of an exercisism.
The belief that exercising one’s code is good? I am certainly all in favor of testing, to be sure!
(Sorry, I have been having some playful fun at your expense: the actual word you have been reaching for is excise, e.g., “If only I had exercised more, then I would not have developed a tumor requiring excision!”)
I believe the huge mistake in HTML wasn’t having some sort of element-level addressability.
People went insane over “the page flashes for 15ms because we have to reload the header and footer and it doesn’t look NAAATIVE!” and the response was to SPA/AJAX everything, inviting a huge Turing-complete nightmare of possibilities when 95% of what peopleneed would be delivered with < form action=“blah” replace_with_response=“#foo” >
That and a dearth of native widgets-- a < combobox > and a < menu > that worked like the system menus might have kept JavaScript as the sick oddity it should be.
I like prerendering :(
That tracks, without any background in coding php is very simple to get into. I’m not a woman, but as a personal anecdote I’ve never done anything outside some self-taught hobby-level web designing requiring html and js, and I only know some php because it’s what was easiest to learn by myself to get the stuff I wanted done.
I’ve looked into actual programming languages a couple times, but I never get far since I don’t need them for anything and all the tutorials start super boringly and won’t tell about the possibilities you could potentially do; it’s assumed you already know. With php I just knew what I needed and did some web searches and found the answers, and that kinda spiraled into leaning along the way. There’s no way to do that if you don’t even know where to start
It’s true that the fuckers that stayed in PHP now are getting paid insane amounts of money to maintain systems? I’ve heard they are the new cobol people.
I doubt that the pay is insane yet. There are a lot more PHP devs than COBOL devs. About half of the web still runs on PHP. It’s true that COBOL runs about half of the financial world, but PHP is less than 30 years old whereas COBOL programs are relics from decades earlier, and generally only get updated minimally if the systems around them change.
It’s old and ugly, the worst tool you can use for anything, and unkillable.
You meant WordPress, not PHP.
Joined at the hip.
Used php for quite a few personal projects without touching wordpress.