You are viewing illiterat

James Antill - Software packaging, and the 10 × 10 problem

Jun. 20th, 2007

05:09 am - Software packaging, and the 10 × 10 problem

Previous Entry Share Next Entry

Comments:

From:(Anonymous)
Date:January 10th, 2008 10:56 pm (UTC)

Re: Dependancies aren't as big a problem as assumed

(Link)
You've identified the problem correctly - libraries aren't backwards-compatible. The solution you propose is not so good. Why not "fix the problem"? Come up with an API/policy to FORCE libraries to be backwards compatible? Essentially, if a new function needs to be added, or an existing function must be modified, create a new function name and add it to the API. Errors in existing API functions can be corrected without renaming. Or somesuch policy.
(Reply) (Parent) (Thread)
[User Picture]
From:illiterat
Date:January 11th, 2008 05:53 am (UTC)

Re: Dependancies aren't as big a problem as assumed

(Link)
Why not "fix the problem"? Come up with an API/policy to FORCE libraries to be backwards compatible?

Even if that was "just" very hard, how would you force libraries to do it? It's like saying the solution to a problem is to get all web pages to use white text on a black background. And a lot of libraries are backwards compatible at an interface API/ABI level, but that doesn't help as sometimes the only way to be 100% backwards compatible is to not change.

Essentially, if a new function needs to be added, or an existing function must be modified, create a new function name and add it to the API. Errors in existing API functions can be corrected without renaming. Or somesuch policy.

And what do you do when the function is called from 6 other functions, that you also export ... do you now have to create 7 new functions to do a 1 line change? And then what do you do for the applications that call the function which has changed behaviour ... do they call the new function or the old one? What about for the two scripts calling the applications, one of which wants old and one new? Pretending you can solve all the problems with a single result just doesn't work.

(Reply) (Parent) (Thread)