Things just need to be good enough to succeed, and that's a pretty low bar. The whole point and value of criticism is making a more nuanced judgement than "popular and successful = good".
Then there's what we see on the internet.
I feel people might not know what they're missing in languages such as in LISP, OCaml or Haskell. Or how functional programming can transform your life. But PHP and Java developers don't need to be disparaged. That's not loving.
I am working on some Jepsen tests (which uses Clojure) and I'm enjoying how expressions are evaluated. But I still find other people's code difficult to read!
I value the perspective/criticism of someone who has built something impressive in PHP or Java over someone in these communities on the sidelines who doesn't build things that ship but is very opinionated.
But that doesn't mean that there's something better for what they're doing. "Tool X is flawed!" Yes, it is - deeply flawed. "You should use Y instead!" No, that does not follow. X may be flawed, but that doesn't mean that Y is better. And all the badmouthing and pouring-on-of-contempt in the world won't make Y better.
And the people doing the work know. For the most part, they aren't fools, and they aren't sheep. They know what it takes to build what they're building, and they're using the best available tools to do it. Those tools aren't perfect? Welcome to the real world. But the pouring of contempt doesn't get anything built, so they ignore the loudmouth know-it-alls and just get on with building stuff.