Hacker News new | ask | show | jobs
by iLoveOncall 1133 days ago
> there is a good reason people shy away from PHP

Please share it. And don't rely on articles that are more than a decade and 3 or 4 versions of PHP old.

3 comments

IMHO this very discussion factors in whether you'll want a PHP stack or not.

If you're looking for pragmatic devs that don't care much about the trends, the community or peers' general opinion about a technology, going with PHP will get you this type in spades. Especially if you're looking for experienced engineers.

If you want devs that care about thoughtful designs, elegant solutions and want to enjoy the community, it will be a lot more difficult (not impossible, but it's an uphill battle)

And this has little to do with PHP's viability per se, there's just so much baggage that most devs will self select in one side or another. A language's base design philosophy matters, and it's always better to chose a stack that matches your own philosophy.

Afaik you cannot discern null and undefined. So, not there and "null"? Either that or I'm going to have to have a good talk with my colleague
Go have your talk [1]. But that's a pretty weak argument anyway given that:

1. Other languages also do not have this distinction (Python for example AFAIK),

2. It's relatively useless. I get the value of it in JavaScript which has a lot of asynchronous code and frontend where the behavior may indeed be very different between null and undefined, but in a server-side application I don't think the nuance is necessary at runtime, and potential programming mistakes involving that can be caught by a linter.

[1] https://stackoverflow.com/questions/6905491/how-to-tell-whet...

https://stackoverflow.com/questions/6905491/how-to-tell-whet...

At the language level PHP has about the same problems as JS.

Thankfully it looks uglier so people get an early warning before using it for everything.

> Afaik you cannot discern null and undefined.

This is a discussion for us tech folks. When it comes to business. Customers don't give a rat's ass about this as long as the product provides them with value.

If you're flooded with customers and the tech stack is a pain in the ass, perhaps it would be a good time to start considering this, but until you have this problem, the technical aspects are just wasting investor money and / or engineering time.

When I (an average developer) accidentally check for null but not undefined in the code and it causes a bug, the customer might care a lot.
There is always a balance to strike between development and delivery. When creating a system with high potential failure costs, it's important to select a technology stack that minimizes common errors for developers.

For most companies, issues like `undefined | null` bugs can be resolved with just a few code adjustments, resulting in only minor inconvenience for customers. As long as problems are addressed and the product provides value, customers will continue to support it.

There are CEOs and CTOs that feel differently. I wish them luck.

> Afaik you cannot discern null and undefined. So, not there and "null"?

So?

Don't similar footguns appear in Python and JS? Why single out PHP for footguns when the other languages are no better?

While I'm not a PHP programmer, I have used most programming languages, and PHP doesn't seem any worse than the competitors.

How about the fact that most of us are experienced and can attest that PHP is the worst language we've ever used in our careers?
I don't think so, i've used PHP at work for more than 10 years till 7.4 point mostly Symfony, it has it's own quirks but i still feel PHP really pragmatic. I don't have any strong feelings against it.

Nowadays im on django/python because im in a python shop and I like python too.

Yeah, I feel like PHP is a massive hiring risk. I personally wouldn't want to touch any PHP code unless I'm paid a massive premium for it.

(I mostly write Python professionally, and use Python, Swift and Rust in personal projects in case anyone is wondering.)

I can think of far worse fates

Some people write whole-ass applications in bash, the psychopaths

Ok that's even worse
That is actually better, but you have to be a pervert. Source: wrote some fully featured applications using own bash framework.
> Some people write whole-ass applications in bash, the psychopaths

*giggles nervously, then changes the subject.

I disagree; it's not the language that's bad, it's the community. Too much tech debt that was never removed, too many people that profess to be experts on the internet and give bad examples, and too many people full of themselves building and rebuilding their own frameworks. That was the issue 10, 15 years ago anyway, things have improved but it means people have to pick established frameworks like Laravel.
You can't really separate a language from its community, though.

You're getting paid to deliver business logic, which means most work is going to be gluing together libraries. This inherently means relying on community-written code, and related stuff like documentation and StackOverflow answers.

If the community is bad, the language isn't worth using.

Genuine question, when was the last time you wrote PHP?
5 years ago and I wish I hadn't.
It was fine in the late 90s. Very adequate for the hosting landscape. I have not touched it since that time
Spoken like someone who's never used Matlab :)
> indexes start at 1

- no one

-- Matlab

Pascal had indexes starting at 1 too.

Starting indexes at 0 makes sense when you want to enable the developer to manipulate memory (for example, C)

Indexes starting at 1 matches with a more natural ordinal sequencing.

The most evil was Visual Basic where you could configure the default starting index (OPTION BASE 1), leading to weird bugs when multiple people worked on the same codebase.
I don’t understand. Either your saying adding or removing elements to an array doesn’t manipulate memory, or you’re saying adding or removing elements in an array does manipulate memory, but the developer doesn’t care due to the GC.

If it’s the second option, why has (almost) every other language chosen with a GC to start arrays with 0?

> indexes starting at...

"I don't understand the word 'index'".

- a functional programmer