I've got a crap computer. Pure crap. That's a total understatement. It's a store-bought shelf computer that was lower mid-grade in late 2002 and isn't compatible with a lot of the newer technology today. I lag, and I lag badly. Even the slightest overuse of the CPU is noticeable to me at least a little.
Before the port to Rock I was running around 90% Ace2 addons and the rest were framework independent. I had a noticeable amount of lag, as I expect. After the port it just so happens that I also decided to throw in a couple addons to my package written on Dongle, so within a couple days I went from a single framework and some independent addons to 3 frameworks and several independent addons. Just as referance I run a very heavily modded UI. After the switch and addition to my UI, my memory went up by a light and totally negligible 1 MiB. That's it. And my lag? Well, it actually lessened noticeably, and I hadn't removed anything.
Running multiple things won't hurt, and there's real-world evidence of it. Multiple libraries merely give coders a chance to diversify their code a bit more, and as a result you will actually often see improvements when the coders make the decision to change.
Now as far as where this thread's gone on compat layers and all other stuff you guys are discussing, I really don't want to bother to comment right now. There are more than enough brilliant minds around this community that know their fair share of the subject to give you a great idea on it. But as far as the original issue in the post I don't think you need to worry.
WARNING: I do not want a flame war here (even if I think it's nearly impossible to avoid it), I'm asking my questions on general frameworks, don't think about Ace, Dongle, Rock, or your dog's framework. Don't do it. Save the world, keep this thread clean.
Something has been bugging me for a few days now, and I'd like to have some explanations on this.
Everybody seems to agree that running several frameworks at the same time is not a problem, the user will not see the difference, bla bla bla... But hey, I was thinking a bit about how works a framework, and I'm surprised about this.
Running two frameworks means:
- Running two OnUpdate() managers at the same time.
- Possibly running two libraries that do the same thing but that runs on each framerwork separately.
- Having two configuration managers loaded (i.e. /slah, gui, ...)
So how the hell having two framerworks (or more!) would not change anything to the CPU and memory usage?
Thanks for your answers ;)
If you consider the impact of each addon running standalone, running 3 frameworks is an improvement from this point of view. But I think some of your worries are non-issues.
The OnUpdate thing is one. A single OnUpdate manager in a library still has to call several OnUpdate functions for the several addons using it, which all use different code in their OnUpdate handler. I can't see this being any different than merely using multiple OnUpdates for each addon, and having the code split up. Hell, that might be slightly quicker even. All this does is lessen the amount of frames created for said processes and simplify the use of OnUpdate really.
Having multiple frameworks do the same code is really the same. Generally it's expected that each addon will do this work by itself anyway. And the libraries still in most cases have to split up the task to serve each addon. For instance, events. Normally addons could just run scripts by a frame and that's it. With a framework a check needs to be done on which events are registered and then each event is dispatched for each addon. If anything, that's more work than addons doing it independently.
Configuration managers are going to work the same way. Every addon still needs to register its configuration and have it handled so all you're losing is a couple frames that build the menu itself, which are a negligible loss.
So while there might be places a framework can help with speed by handling tasks in a single place, there are also parts where it could be slower. There isn't really any noticeable loss OR gain to using a framework, which is really what every developer is trying to tell you here: Stop caring about what framework your addons use and just use the addon; you don't need to know the framework exists and it makes no difference to you.