View Single Post
  #1  
Unread 11-04-2010, 05:13 PM
Digital_Utopia's Avatar
Digital_Utopia Digital_Utopia is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Sep 2010
Posts: 207
Thoughts on external libraries.

I've been thinking a bit on the current folder structure when it comes to external libraries, in comparison to the way WoW's add-ons are done. Currently with LotRO, the general rule of thumb has been to treat external libraries like plugins themselves - in other words, install them in your plugin folder, in the Author's name folder. For instance, in my case - DUInterface would be stored in the DigitalUtopia folder, and any plugin that wishes to use that library, has to access it through that path.

On the other hand, WoW treats each add-on as its own entity, generally keeping everything that add-on needs to function, within that add-on's folder - including external libraries. I feel that this presents four advantages to the current LotRO setup:

1) No matter what changes the library's author makes - that version of the add-on will always use the version it was written for
2) It avoids a certain add-on version of "dll hell" where adding a future add-on that uses a different version of a shared library could cause an older add-on to break.
3) Unlike plugins and their .plugin file, libraries have no method to declare a version number, requiring authors to manually place some form of info file for any future update services (i.e. curse client, minion, LMM, etc)
4) Add-on authors aren't at the mercy of the library author. While using any other code than your own does require you to depend on a library author, it's a far better situation than if you had to immediately release an update should a library author change something.

For those reasons, I think it would be better to adopt that method of external library usage. However, that is merely my opinion, so I'd really like to hear from other authors here as to their own.
__________________

Lord of the Rings Online
75 Fourohfour | 75 Artemedis | 60 Whiskeytango Foxtrot | 50 Mistah Boombastic | 56 Appetizer | 25 Aggromi
61 Onepointtwentyone Gigawatts


World of Warcraft
90 Downlo 85 Gravetaxi 85 Ümad 85 Artemedis 85 Guthuros
Reply With Quote