When you combine the crappy base PHP language, varieties of server configurations which make the same piece of code perform differently, the handy "register_globals" thing and magic quotes enabled (these are history, now, of course), and shoddy SQL practices, this all forms the well-known disaster.
Many people, me included, just call all that "PHP" short-hand. Actual use of PHP the language is more of a red flag, than directly responsible for all the horror we attach to the name.
Yep, agreed. PHP is one of the languages that if one wants to write a security-sensitive tool to do something, you need to make sure the language/environment (interpreter, libraries, and configuration combined) is not and does not do anything stupid: development in PHP is basically fighting against PHP, instead of working with PHP, using the shorthand Siwastaja described.
Contrast that to Python. Not any language features, but the entire environment, and things like the
Python PEP index. Just by reading the PEPs that are relevant to whatever one is working on in Python, you can delve deep into the developers mind as to how they intended that sort of expressions to be done in Python. This is
useful. Take a minute to read through
PEP 572 -- Assignment Expressions, and you immediately learn what kinds of patterns cause unnecessary slowdown in Python, and how to write better Python code. Or, if you are writing a Python interface, and wondering how to add type hints, read
PEP 484 -- Type Hints, and you'll not only understand how, but also
why.
One reason Dylan and Julia are not that widely used among the Linux community –– that is, 'used' in the sense as in 'implementing tools or applications' –– is that they are not packaged for Linux distributions, unlike e.g. Rust. You might say that the binary installers (and the sources for the 'open source zealots') are sufficient, but they aren't as, uh,
effortless, as native packages. This
effortless-ness is a key part in the popularity of the language. (Note: I am not saying this is a good or a bad thing. I am only trying to describe how things happen.) In my own experience, across say three decades, it looks like this effortlessness (or whatever you want to call the combined ease of use with minimal risk and high availability of reliable information) is much bigger factor in the popularity than technical quality is.
Circling back to the topic of this thread, you could summarize my own opinion that 1) Python is sufficiently effortless (in the abovementioned sense) to use in many environments to make it a valid easy choice, with 2) lacking any show-stopper flaws like in PHP (at least in the past had), which makes it both useful and popular. (This is in my use cases and in my opinion based on using Python in actual real-world utilities and applications; others opinions, and my own, will vary as times and needs change.)
It is not Python is particularly good; it is more that it is not so bad that one needs, or has a reason to find, something/anything better.
It is sufficient for the task.If someone argues some other scripting language over Python, any counterarguments I might have would necessarily revolve around one or both of the above two points. The moment something that fulfills both points at least as well, I'm very likely to switch myself.
All that said, it is interesting to see how different other peoples' metrics/measuring sticks are when comparing programming languages.
(That said, I definitely have completely different ones wrt. compiled languages and scripting languages, because I use them for very different use cases.)