Well, the worst thing in my opinion is that (often for ideological reasons or egocentric positions) we don't accept or don't want to improve the existing tools or languages, but we create a new one ... so we had C, C++, Object Pascal and now we also have Python, PHP, Ruby, Go, Rust, Nim, Zig, D, Objective C, C#, Java, Kotlin, Haskell, Erlang, Ada, to name a few ... and this is the easy side ... Now there is the bandwagon of javascript frameworks: React, Vue, Svelte, Next, Nuxt and so on. It is impossible to keep up and it is also impossible that all these new technologies will be maintained in the long term. I remember the rise of Java years ago ... Java everywhere: Java applets on the web, Java on the desktop, Java as an application server and how it ended? Java is, in my opinion, one of the most convoluted and impenetrable languages ever created, but when you work alone as a freelancer, as in my case, you don't have the time and the resources to embrace and follow every new technology that is marketed as a revolution and the future, because at the end of the month you have to send the invoices to your clients to earn and live, and you have to have produced some results that work for them in the "real" world.
I have used Drupal for a few projects in the past: the main problem? Every major release that broke the API backwards compatibility and this means you have to refactor all your plugins and custom code, many times without any new direct benefit to the end user who, of course, was not available to spend money because some internals change every year and, for him, on the surface nothing changed.