These forums are in read-only mode. Please see this news post for more information.

New forums can be found here


Go Back   WowAce Forums > Addon Chat > Frameworks
Frameworks Framework Discussion

Reply
 
Thread Tools
Old 09-21-2007   #21
Tekkub
Tanuki
 
Tekkub's Avatar
 
Join Date: Feb 2005
Posts: 5,091
Default Re: Having several frameworks running at the same time

You don't understand the embed lib design. If you upgrade a lib and maintain backwards compatability (which is what the compat layer is there for in other stuff) then you bump the minor version. That means the change you made won't break old mods using older versions of this major version.

If you change something and DO break backwards-compat, you bump the MAJOR version so that old mods aren't broken.

A "compatibility layer" in between major versions makes no sense, it goes completely against the whole embed design in the first place. If you break compat, then old addons need to evaluate the new version, see if they want to use it, get changed to use it, and tested against it.

To use your PS model... The user had a PS1 for GameA, they had to have it to use it. Later, they got a PS2 because they needed it for GameB. They still have the old PS1 wired up because it's there and it works fine (and in the WoW namespace, one it's there it doesn't go away)... why should the PS2 intentionally smash the PS1 with a hammer and then try to provide the functionality it provided? Now throw a PS3 into the mix... same thing. Yes, I understand that a user would toss the PS1 in a closet because the PS2 provides the same features.... but the Addon embedding the old library expects the old library to be there... it's not written for the PS2 or it'd use the PS2 and never have the PS1 in the picture.

It's an odd comparison I guess, but when you think of it in terms of the PS1 is always there once it's "loaded", then you'll get the embed design.

Tekkub is offline   Reply With Quote
Old 09-21-2007   #22
OrionShock
Legendary Member
 
OrionShock's Avatar
 
Join Date: May 2006
Posts: 3,787
Default Re: Having several frameworks running at the same time

tekkub ... i think i can speak for alot here and say "We Know and Understand this..."

but the problem is that these libs are being reStructured to work with a new framework.. or with out one.

Quote:
A "compatibility layer" in between major versions makes no sense, it goes completely against the whole embed design in the first place. If you break compat, then old addons need to evaluate the new version, see if they want to use it, get changed to use it, and tested against it
this proccess has always been left to the perticular author... and not all of them are still arround or want to reconfigure their addon to use a new Major Revision Lib... and we are still even MID Proccess and not all libs are converted over.

your argument holds water.. but is not an significant issue at this time. Once Ace3 / Rock Stabilizes then your argument MUST be evaluated.

by providing compatibility layers between major libs .. it is an appeal to the masses.
__________________
Author of GuildCraft, SickOfClickingDailies, CursorCooldown, Broken_LFD
WoWAce Addon List WoWInterface Addon List

"I was there in the beginning... and things were very different back then" --An Echo from a time before.
OrionShock is offline   Reply With Quote
Old 09-22-2007   #23
Tekkub
Tanuki
 
Tekkub's Avatar
 
Join Date: Feb 2005
Posts: 5,091
Default Re: Having several frameworks running at the same time

Compatibility layers aren't needed with libraries! An old mod runs Ace2 version of Gratuity, it works fine. This addon embeds the lib, so it's already being loaded into the system. A CL simply adds more unneeded complexity and processing for what gain? Code duplication on the small scale (2 diff majors of the same lib) is not detrimental... code dupe on the large scale (150 addons declaring their own tooltip for parsing text from) is.

There have been many MANY cases where library upgrades have broken old addons when they shouldn't have (and I'm not talking about bugs in the upgrade path here). I for one, and I can think of a number of other devs, hate it when people screw with libs and break old addons because of it.

Upgrade libraries to LibStub, away from Ace2, make them not framework-dependent, that's a VERY GOOD THING... but don't screw with the old libs. Up the major and move on, it's that simple. Old mods will be rewritten or break in due time, there is no reason to force breakage upon them now, even if it's unintentional.
Tekkub is offline   Reply With Quote
Old 09-22-2007   #24
Aestil
Senior Member
 
Join Date: May 2006
Posts: 327
Default Re: Having several frameworks running at the same time

but Tek, I don't use embedded libs. So many compat layers are there, and are good for people who prefer to run standalone libs then?
Aestil is offline   Reply With Quote
Old 09-22-2007   #25
shadowed2
Full Member
 
Join Date: Sep 2008
Posts: 189
Default Re: Having several frameworks running at the same time

Quote:
Originally Posted by tekkub
"Consumption" implies "use", don't play word semantics here :P Users often don't know there is a difference, and simply telling them that "memory use doesn't matter" comes across... well... like KLHTM's dev saying that blizzard's profiler doesn't work and that's why it's numbers for KLH's performance look bad.
Fine picky, fixed. I still said static memory in the other topic.

Quote:
Originally Posted by Aestil
but Tek, I don't use embedded libs. So many compat layers are there, and are good for people who prefer to run standalone libs then?
While, it's probably technically true that you gain a little performance by adding a compatability layer so you don't have 2 majors running that are doing the same thing.

While we call it major/minors for the sake of simplicity, UberLibrary-1.0 and UberLibrary-2.0 are two entirely different libraries to the stub, we use the wording majors (<name>-<major:1.0/1.1/1.2/2.0/3.0/ect>) because it makes more sense then renaming UberLibrary to ZOMGHAILibrary when you want to bump the major.

For example, lets say I have Foo thats running UberLibrary-1.0 and Bar thats running UberLibrary-2.0 both using UberStub

UberLibrary-1.0 loads and registers itself with UberStub.
Foo loads and says "I want UberLibrary-1.0"

UberLibrary-2.0 loads and registers itself with UberStub
Bar loads and says "I want UberLibrary-2.0"

Even though both do the same thing, UberLibrary-2.0 contains changes that aren't backwards compatible with UberLibrary-1.0 this way with different majors Foo and Bar can run without any issues due to the incompatibilities.

UberLibrary-2.0 when it loads could go "No, UberStub, UberLibrary-1.0 is actually UberLibrary-2.0-Compat" and instead of the functions that Foo calls going to UberLibrary-1.0 they go to UberLibrary-2.0-Compat which then calls UberLibrary-2.0.

See? That ruins the entire idea of using majors and it's completely pointless, an author should setup there addon to include the library they need and so has no requirement for using a compatability layer. I haven't looked into how WAU does it, but I'd assume that it either downloads all the libraries as LoD, or it downloads all the libraries that the addon uses and names it by the major version.

Compatability layers are stupid, it's essentially a way to say "**** you" to the person who did the library that you made the layer for.
shadowed2 is offline   Reply With Quote
Old 09-22-2007   #26
OrionShock
Legendary Member
 
OrionShock's Avatar
 
Join Date: May 2006
Posts: 3,787
Default Re: Having several frameworks running at the same time

--i hvae a better response to this .. give me a minut.
__________________
Author of GuildCraft, SickOfClickingDailies, CursorCooldown, Broken_LFD
WoWAce Addon List WoWInterface Addon List

"I was there in the beginning... and things were very different back then" --An Echo from a time before.
OrionShock is offline   Reply With Quote
Old 09-22-2007   #27
Tekkub
Tanuki
 
Tekkub's Avatar
 
Join Date: Feb 2005
Posts: 5,091
Default Re: Having several frameworks running at the same time

Quote:
Originally Posted by OrionShock
--i hvae a better response to this .. give me a minut.
It's been two minutes, you lost your chance!

Quote:
Originally Posted by Aestil
but Tek, I don't use embedded libs. So many compat layers are there, and are good for people who prefer to run standalone libs then?
While I can see a case for a CL in that use case... I'm becoming more and more convinced that disembedding is not very advantageous beyond the core libs that repeat in every little addon and large "database" libraries. For my libraries that are used in a minority of addons (like Gratuity and others) I do not intend on providing standalones AT ALL.

CL within a standalone I will accept, as long as it doesn't interfere with an embedded version of the old lib. Embed versions of the new lib SHOULD NOT screw with the old lib. Also, if a user comes running to me crying that an old addon no longer works because they're using a new major with CL instead of the embed I coded and tested against... I will feel no sympathy. I will simply point them at whoever did the CL stuff and tell the user: "it's his fault, it's his problem, sorry."
Tekkub is offline   Reply With Quote
Old 09-22-2007   #28
Azethoth
Amazing Member
 
Join Date: Jan 2006
Posts: 1,627
Default Re: Having several frameworks running at the same time

Let's flog this dead horse with a concrete example using AutoBar & the PeriodicTable-2.0 -> PeriodicTable-3.0 transition.

Ok, as an author I bitched about having to upgrade but the reasons were compelling: compressed & thus smaller data sets, better organization etc. Therefore I chose to upgrade.

The new stuff was completely incompatible with the old: keys changed, data sets got moved around, merged split apart, dropped.

What would a CL layer have done? Well:
*It would have had to maintain a table translating the old keys to the new ones
*It would have had to add old comapatability sets for each set that got merged, dropped or split
*There would be this redundant code sitting there unused by any mod that did upgrade
*Time would be spent on CL & debugging the CL & debugging old crappy unupdated mods just because maybe the CL broke something

What happens in the long term? PeriodicTable-4.0:
*Needs a CL layer for the CL layer
*Needs CL for 3.0
*Needs double the implementation time because of all this completely uneccessary stuff
*More time debugging CL

PeriodicTable-5.0:
*CCCL
*Triple the imnplementation time
*Features dropped because the code is starting to become total crap & a nightmare to upgrade.
*Fulltime person now devoted to dealing with CCCL etc. ssues in old mods

PeriodicTable-6.0:
*CCCCL
*Never released for use as the CL stuff was too complicated for a human to upgrade within the lifespan of the universe
*Who cares about its features, nobody got it working.

Hopefully this clears up any confusion. If it does not, may I point out a real life example in Microsoft Vista? It took Microsoft over 10 years to give birth to Vista because they maintain backwards compatability all the way to the days of DOS or something sick like that. CL is crap & if u can avoid it you do so. In the case of libs simply using the old libs for lazy mods is all the CL we need which is: ZERO.
Azethoth is offline   Reply With Quote
Old 09-22-2007   #29
Aestil
Senior Member
 
Join Date: May 2006
Posts: 327
Default Re: Having several frameworks running at the same time

Quote:
Originally Posted by Toadkiller
Let's flog this dead horse with a concrete example using AutoBar & the PeriodicTable-2.0 -> PeriodicTable-3.0 transition.

Ok, as an author I bitched about having to upgrade but the reasons were compelling: compressed & thus smaller data sets, better organization etc. Therefore I chose to upgrade.

The new stuff was completely incompatible with the old: keys changed, data sets got moved around, merged split apart, dropped.

What would a CL layer have done? Well:
*It would have had to maintain a table translating the old keys to the new ones
*It would have had to add old comapatability sets for each set that got merged, dropped or split
*There would be this redundant code sitting there unused by any mod that did upgrade
*Time would be spent on CL & debugging the CL & debugging old crappy unupdated mods just because maybe the CL broke something

What happens in the long term? PeriodicTable-4.0:
*Needs a CL layer for the CL layer
*Needs CL for 3.0
*Needs double the implementation time because of all this completely uneccessary stuff
*More time debugging CL

PeriodicTable-5.0:
*CCCL
*Triple the imnplementation time
*Features dropped because the code is starting to become total crap & a nightmare to upgrade.
*Fulltime person now devoted to dealing with CCCL etc. ssues in old mods

PeriodicTable-6.0:
*CCCCL
*Never released for use as the CL stuff was too complicated for a human to upgrade within the lifespan of the universe
*Who cares about its features, nobody got it working.

Hopefully this clears up any confusion. If it does not, may I point out a real life example in Microsoft Vista? It took Microsoft over 10 years to give birth to Vista because they maintain backwards compatability all the way to the days of DOS or something sick like that. CL is crap & if u can avoid it you do so. In the case of libs simply using the old libs for lazy mods is all the CL we need which is: ZERO.
I suspect that there will never be a compat layer for PT, but it seems to make sense for me, Parser for example. VampircTouchFu needs Parser 1, and i think so do a few other mods, but then a bunch other need Parser 3 [now 4] If Parser 4 can provide the compat layer adequately, I rejoice, if it doesn't then yes Tek, its my own fault and I either need to bug CKK [in this case] or just load the old lib.

In fact I did this today when Crayon compat didn't work and broke 3 of my addons.

So I think we agree.

[btw i run gratuity as a standalone ;0]
Aestil is offline   Reply With Quote
Old 09-22-2007   #30
OrionShock
Legendary Member
 
OrionShock's Avatar
 
Join Date: May 2006
Posts: 3,787
Default Re: Having several frameworks running at the same time

hehe... sorry @ work...

I believe that between Tek's diatribe on the matter and ToadKiller's blunt answer we've come to a conclusion?

don't add compat layers. now get ck to un do what he did :P
__________________
Author of GuildCraft, SickOfClickingDailies, CursorCooldown, Broken_LFD
WoWAce Addon List WoWInterface Addon List

"I was there in the beginning... and things were very different back then" --An Echo from a time before.
OrionShock is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:00 AM.