By now it is probably no longer news to many: GNOME Shell moved from GJS’ own custom imports system to standard JavaScript modules (ESM).
Extensions that target older GNOME versions will not work in GNOME 45. Likewise, extensions that are adapted to work with GNOME 45 will not work in older versions.
You can still support more than one GNOME version, but you will have to upload different versions to extensions.gnome.org for pre- and post-45 support.
Please file bugs with your favorite extensions or have a friendly conversation with your extension writers so that we can help minimize the impact of this change. Ideally, you could help with the port and provide a pull or merge request to help maintainers.
The ideas behind the GNOME Shell desktop metaphor have stayed consistent through the 3.x cycle, at least from ~3.10. The “problem” with GNOME 3.x is that it implements core ideas in the workflow that the user needs to grasp. Either you use it as they thought you should or you are better off with some other DE.
Sure, you may need some extension to feel more comfortable. I do use a couple, but if you need extensions to make it functional you really should consider switching to another DE/WM.
I really like a lot about Gnome. It’s things like getting rid of the system tray that don’t make sense to me. I understand it’s not in the system’s ideology, but you can’t force that on every application developer who still has to support that feature for other desktops. If it’s a common application feature, then it’s just broken on Gnome. That’s a hard thing to sell me.
This is why I feel more comfortable using Cinnamon in my main PC, but I still use GNOME in my laptop.