Can't open the one response you got. So maybe someone already answered. But this here
Sorry for being lazy so no sources for now. But based on my research back then. Using clone (on arrays) is actually slower then json_encode/json_decode.
So there are some cool optimization tricks going on in the background. But that doesn't make it any more intuitive for me.
Simply because it was an issue that I ran into at work. And the reason I focus on arrays is because of the previously mentioned default behaviour of arrays being cloned when passed as an argument for a function. The issue here was someone unexperienced wrote a bunch of code and used only arrays (deep ugly arrays) and it ended up being a huge mess of some references staying the same while others changed. So the only solution was to deep copy at one place. That way later operations on these arrays didn't affect the original structure. Not pretty but refactoring would have been too much effort.
I used PHP for the past year. And honestly I still think it is not a good language. Just of the top of my head.
-
By far the biggest culprit. Arrays. This monstrosity is basically everything. Yes, it is fast but it only teaches bad habits. It is a weird combination of Arrays/Lists/(Dictionary/Hashmap) and you can't know which one it currently is because there are 0 compile time safety checks. Also when used as a parameter it is passing a full copy instead. But the copy of course is only shallow. I have seen so many problems with that. And even worse when someone thinks the way to fix it, is to just json encode/decode the whole thing in order to get a deep copy before passing it.
-
Generics. I still don't get why this is such a huge issue. Like I would rather have a half-baked optional compile time implementation then none at all. The worst part is that IDE tools support generics so you end up inplementing them on the comment level. I shouldn't be forced to use generics through comments.
-
$ for variables. I know that this is just based on how the language grew. But god do I hate having to type it. It is not an easy to reach letter and just breaks my typing flow the whole time. You get used to it but still.
4 . The default functions. Yes. You will mostly use framework provided functions or your own stuff. But you still end up in contact with them and the naming schemes are still all over the place, so it is fast to just google it then hope you accidentally stumble upon it through the IDE. And some things are still straight up missing. Like the best way to deep copy an array is json_encode into json_decode. When I saw this the first time I was sure that must be wrong. But no. That is legit the way to do it.
Also I am stuck with PHP7 so some of my other complains seemed to be fixed in later versions. Also please don't recommend DS for my first issue. I tried to push for it but it got vetoed because "it is too complicated for new devs".
I am honestly not sure if that is the correct approach. This feels like you are trying to force people to migrate over here. Why not just add the link as a supplementary information instead of the only one. If someone actually wants to get off Reddit then it will be helpful but otherwise it won't annoy people for no reason.
I used reddit for the past 7 years. And I honestly feel like even back then discussions were barely possible. It always felt like an accumulation of popular viewpoints and everything else was just downvoted to hell.
And once you pass a certain userbase threshhold growth will happen automatically. It is just how social media works. So I don't agree that reddit's popularity is a good indicator for it's quality.
Federation is such a breath of fresh air after the last decade of everything growing more and more into a walled garden.