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!
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.
Array_filter and array_map having the arguments swapped pisses me of so much.!
This person phps
this is perl erasure
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.
“What’s the best tool”
“LINUX!!!”
“Weird because I haven’t told you what I’m trying to build yet”
I would have gone with hammer.
… or even Symfony.
I’m still confused why laravel is more popular. Symfony is so much nicer to use and maintain
Yeah last time I used it was with a laravel monolith and actually it wasn’t that bad.
PHP 8.4 is pretty good, TBH. You absolutely CAN write great code with modern PHP. … Shame that most PHP I touch is legacy code that’s at MOST PHP 7.4 - which is EOL since November '22 and has to be upgraded or replaced. 😬
Yeah, if you add tons of extra rules and tools, it can become almost as pleasant as the main Python or Ruby experience.
Almost.
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.
PHP forever.
It should be rewritten in rust, any way.
Spoiler
/s
✍️ we need PHP interpreter written in Rust, noted
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.
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
WordPress?
Well better late than never.
W-what? Did you used js as backend? How was performance?
It’s very rare that the backend language significantly affects performance. In 99% of apps you could have the most optimized backend written directly in machine language, and you’d just shave off milliseconds.
That’s because in web development most of the latency comes from i/o (network requests, database access, file access), not from computation being slow.
So why did Facebook build that whole system of converting C++ to PHP or whatever they did? Was it because they didn’t understand the savings? Or when you scale that high, the savings really are significant? Were there savings?
Edit to subtract: https://en.wikipedia.org/wiki/HHVM is what it eventually turned into, and apparently it showed significant improvements even above the previous system.
Probably because someone said it was a good idea in a meeting.
There is absolutely no way that’s true lol
Its the most true thing you’ll read all day.
You should look into it. Apparently it was quite a performance increase. I don’t understand all the technical details, but it is very cool to see what large enterprises do at scale.
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.
From my experience as a user? Not great if you are using a popular app
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.
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.
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
I’ve toyed with WASM, creating a simple sudoku page, and it did take an empty page, added all the buttons, and then changed them upon user interaction.
I think, I also heard of the DOM modification limitations, but it’s not a hard barrier afaik, there are just some cases where it can’t
But still, doing something in (pure) WASM looks way harder than needed to me
Interesting
Dotnet professionally and using lemmy.ml socially is hilarious to me and (sincerely) entirely consistent. Makes perfect sense, I just find it funny. (I’m not being sarcastic or attacking you, might not be clear lol)
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 think I agree with you, and I also think you probably know better than me, but - Python couldn’t become what Python became without doing this exact thing very deliberately, bordering on obnoxious at times. Fundamentals or “initial state” define the characteristic strengths and weaknesses for a language, but what to add and what not to, as well as “why” and “how”, over time determine the true shape and user experience (lacking a better word there) of a language.
Despite its reputation, in my view Python has always been far more opinionated about how to do things than most give it credit for.
Yeah, I don’t take exception with most of their choices, and to be perfectly honest PHP has historically made a number of really bad choices and refused to fix horrible bugs.
I just feel that providing the handful of tools that have been available since C and keeping them with the same name and the same argument position only makes sense.
If people aren’t cloning Python commands for their design sensibilities. When they ask for a creature comfort that doesn’t affect performance, It should be more strongly considered.
I guess I should be thankful that they were no longer demanding GOTOs.
ASP.net web forms were ahead of their time. I miss them every time I have to use modern js frontends.
Geez did they build that page with asp? Is janky-scroll a default setting?
The page scrolls normally for me.
Js is dead use php!
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.
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.
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.
Java has been running serious server software since the mid 1990s. Think WebObjects running on Solaris. Lots of business stuff with big databases still run infrastructure like that.
Java still has the big advantage of being machine agnostic. No need to recompile for ARM or Intel.
Yes, and?
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.
What if those chains handle thousands of massages per second?
Serious backend is indeed a stretchy term. And I agree with that point b2b java is common. But our b2b backend handles multiple thousands of massages per second. I find the bottleneck to be MySQL and RabbitMQ.
I think it makes sense for a serious backend to have load balancing and nginx cache and horizontal scaling. I reckon QPS doesn’t matter as much as you think it does.
I still don’t think that java would be considered niche. I rather think that C or C++ would be considered niche. It takes longer to develop, and is not memory safe so I don’t think that most backend systems should consider it.
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.
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).
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.
Just for the sake of being contrary, I know that there are still machines running on punch cards in some army-related places, where not changing anything is mandatory. I wouldn’t be surprised if hot-wiring is also still there somewhere, it’s just mostly running without changes.
The original Moog synthesizers used patch cords (in fact that’s why a synthesizer instrument sound is still called a “patch”) and I’m sure somebody somewhere is still fucking around with one of those.
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.
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.
Early Kotlin and early Swift were good.
Early Swift was very slow to compile and start. The debugger was nonfunctional.
Otherwise it was pretty usable. Especially since it got to leverage the huge libraries written for Objective-C.
Which meant it lacked some basic collection types. A Swift native Set was introduced with Swift 3 IIRC. Before that you had to bridge back and forth between Swift and Objective-C. Sometimes leading to unexpected behavior at runtime.
In Objective-C if an object reference was nil, you could send it messages (call methods) without a problem. Swift however did away with this. Optionals had to be explicitly unwrapped. So if the annotations weren’t correct, Swift code would crash at runtime where Objective-C would have been fine. Lots of bugs related to that existed.
Swift peaked around version 4. Since then, they have been adding kitchen sink features and lots of complexity to feel smart.
I still would have preferred an Objective-C 3.0. Chris Lattner was a C++ guy and never really understood Objective-C culture and strengths.
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.
I’ve never heard of a programming language that people don’t consider shit
Holy C.
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.
Personal Home Page
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.
OOP programming in PHP is pretty fun, keeping up with it’s deprecations and vulnerabilities is not
No clue what modern PHP looks like
Like worse C#.
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.
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.