View Single Post
10/25/16, 06:27 AM   #10
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,581
Originally Posted by Werewolf Finds Dragon View Post
Thinking outside the box is bad design? How? Why?? I don't understand how you could substantiate that reasonably or logically. It seems like a kneejerk reaction of traditionalism. The information is right there, it's easily obtainable, it's efficient, and it doesn't add any overhead versus other methods (I checked). I just can't deal with people who obsess over the outdated fundamentals of traditionalism and conventionalism. If those concepts hadn't been combated over a decade ago in WoW, we wouldn't have had Ace and we certainly wouldn't be using the kinds of libraries we're using today.

Sigh. I shouldn't have asked. Lesson learned. I thank everyone who was at least nice about it, though. I did mention my anxiety issues, after all. So I appreciate their input, even if what I was asking wasn't necessarily possible in ESO's implementation. I remember back in the day though that Cosmos coders told Ace coders what they were doing 'screamed bad design.' And look how that turned out. This will always happen, unfortunately. Come up with an original, unexpected implementation and someone will tell you it's 'bad design.' There's always someone.

Again, thanks to those who were nice about it.
You should calm down a bit. I didn't mean to hurt your feelings and this has nothing to do with traditionalism. I also do not have anything against thinking outside of the box (which I do all the time).

There are three reasons why I said that it is bad design and you should not use functions that are explicitly marked for "debug" usage.

First, most of them generally have way worse performance than any "traditional" way to access the same information. Even if it makes it easier to implement something using the debug function, you should still consider taking the long way around in order to avoid any performance pitfalls that are not immediately noticable.

Secondly they make your code unnecessarily hard to understand and maintain for anyone who plans to fix it (including your future self) in the event that it breaks. It will be a nightmare to figure out what goes wrong, as they usually go around intentional limitations of the language in order to allow you to do what they are made for: debug your code.

Third, these functions quite often are not treated as part of a well-defined API and may change without much notice, breaking your program.

Hope this clears it up a bit.
  Reply With Quote