WoWMatrix was also something he was very adamant against. He said what WoWMatrix was doing could be considered illegal depending on your country of origin. There were many in the crowd that liked the add-on client and were disappointed to see its death. Cameron admitted that the current incarnation of the Curse Add-on Client was fairly poor quality, but assured us that the next version was much, much better. Currently, there isn't much selection in the market for a downloader of that type as the one from WoWInterface is stuck in limbo and WoWMatrix has almost no access to any updated add-ons.
Someone in the crowd inquired if anything he had developed had been absorbed into the default Blizzard UI. He said that nothing thus far had and he thought it was fairly unlikely that it would be. Pitbull would be much too complex for that common denominator group we mentioned earlier. Cartographer might be a target, but it hits a legally gray area. While it is a simple map module, it cheats and allows you to see areas that you haven't yet discovered. Blizzard doesn't just give you that information, it had to be data-mined out of the client. While this doesn't necessarily break the terms of service, it is enough off of the path that Blizzard would likely never touch it. Moral of the story is that the more legally gray your add-on is, the less likely Blizzard is to incorporate it.
This brings up questions about Terms of Service violations in add-ons. He says that creating something which causes the player to break the ToS is fairly difficult to do now. If, for example, you make an addon that allows Alliance and Horde to talk (which he says is easily very doable), then Blizzard's foot will come down and squash the capability. As far as add-ons and the ToS in general, they are either mostly legal or mostly illegal depending on your viewpoint. As a rule of thumb, don't be a bad person when developing add-ons. Don't make an add-on that sends you one gold coin every time the person opens a mailbox as it has been done in the past by sketchy developers.
Don't do things like the MazzleUI where when you changed your configuration it would cause you to yell, "I just had a Mazzlegasm!" As the story goes, when a mother looked over her son's shoulder at the computer screen and saw this message pop up, she got on the phone with Blizzard. The UI team over at Blizzard then had to write code to prevent the MazzleUI add-on from yelling that message within the game.
Curse and WoWInterface go through each submitted add-on someone puts up on their site. They don't necessarily go line-by-line through the code, but they can generally see what the developer in question is doing. Also, they take their abuse reports extremely serious. If a single person reports that some gold has gone missing, they'll look into it. If someone is looking for a safe add-on and isn't sure which ones are safe, they can generally get a feel from the download numbers. If one has a long, detailed description and ten thousand downloads, it is probably safe. If one says, "This si a fising bot! It si awsome 4 u!" with five downloads then it probably isn't nearly as trustworthy.
When the UI modding community at large finds an exploit, they usually report it to Blizzard right away. One recent example was Shawn Fanning, the creator of Napster and gaming website Rupture, who wrote a botting program completely in WoW's Lua interface to see if it could be done. He gave a copy to Blizzard when he finished it so that they could prevent similar things from happening in the future.
As far as the future of add-ons are concerned, he was asked if he thought that Blizzard would move World of Warcraft add-ons to the same type of Battle.Net marketplace that they have announced for StarCraft 2 maps. He doesn't believe that they will. The recent changes to the policy regarding commercial WoW add-ons was to prevent a high end raiding guild deciding that all of the raiders must have a certain UI mod that cost fifty dollars. In SC2, a map is more analogous to a mini-expansion. You don't need the additional maps to play any part of the base game and anyone playing the additional maps will have also purchased them. In addition to the financial reasons, if Blizzard hosted the add-on download site themselves, it could open them to be legally accountable for any destructive code that people might host there.
For those wanting to get into writing their own add-ons, he suggests the book "World of Warcraft Programming" as it is the best one he knows. That said, he only knows of two books on the subject. The website for the book is WoWProgramming.com and has code examples as well as documentation. While you can get most of the information from the website, he recommends that people new to add-on programming get the book anyway. In addition to that, the interface section of WoWwiki is a good reference for WoW API code information.
When it comes to actually coding itself, he uses TextMate for the Mac as it includes the ability to add a Lua syntax highlighter. In short, it colorizes the source code so that programming language is easier to read at a glance. There are some other solutions for PC and Linux, but a lot of them aren't up to date.
Lua errors themselves are tricky as Blizzard doesn't have a good way to track them within their own system. This means that while you can look at the error in question and divine what add-on is causing the problem, you've got a twenty percent chance of it being a false positive where a different add-on is causing your grief. You can turn off Lua errors in the user interface options, but the add-on in question is still just as broken as it was before. If an add-on which isn't yours is continually causing errors and it's really bugging you, then disable or delete it and go get a different add-on.
After being asked about his design process, Cameron said that he's not a creative person. His general design process is to find an add-on with features he likes, but is poorly done or broken and write his own version from the ground up. He doesn't steal any code, but writes the add-on with a slick design and good design principles. This usually allows him to have a solid add-on without the problems of the original. (To add my own comment here: it is the idea of doing something right instead of doing something new.) Once most of the code is complete, he works with another developer who takes over maintaining the project. This helps alleviate a lot of the time commitment that some of these add-ons require. For the most part, the add-on development community is very open and don't really hide the way they do things. They also generally don't mind the competition.
He mentioned during the panel that he had a secret project going. Hopefully, we'll find out what it is before we see him at Dragon*Con 2010.