Differences in Philosophy between Ace3 and Rock

From WowAce Wiki

Jump to: navigation, search

Ace3 and Rock have different, even opposite, philosophies, and it's unlikely that the authors at the two sides will come to a consensus.

Compare the spirit between Rock and Ace3:

  • Rock still follows the idea of Ace2 in that "if you use a Rock-based compilation, then the overhead of libraries is minimal"

This is one of the main differences between the spirit of the two frameworks. This is not to say that such an idea is bad, but the approach is the opposite to what Ace3 is trying to acheive.

Because of such a simple idea, it can result in very different design philosophy:

  • The design procedure: While Rock leans towards "Review Ace2, improve it, remove the unnecessary, rename it to Rock", Ace3 leans towards "First discuss what is essential, then see if something from Ace2/Dongle/Rock/Other can be used", thereby leave the old Ace2 library untouched.
  • Rock has a comparatively large core which all other core modules depend on. An aim of Ace3 is to avoid such dependencies for every core and non-core modules, meaing Ace3 aims at *extreme* minimal overhead for using any of its library, even when you only have one addon which uses Ace3.
  • Following the Ace2 design, Rock core attempts to load standalone library automatically, since it's very convenient. In contrary, Ace3 thinks it should be authors' and updaters' responsibility to make sure the libraries loaded correctly when disembedded. The team believes that a framework should be independent of the distribution mechanism. Ace3 is designed to be embedded, and is capable of disembedding, but Ace3 will NOT try to help you on the disembedding process, instead updater/author-knowledge should be improved to provide such functionality. Ace3 aims to make the core libraries small enough that no significant advantage will come from disembedding.

Ace3 is never meant to be something "better" than any other framework, and the only advice offered to developers is to go out compare the different frameworks out there, see what functions they provide, and choose one you think suitable for your requirements.

Personal tools
Support the Site