On Dec 11, 2013, at 10:46 PM, Maxthon Chan <xcvi...@me.com> wrote:
> Bad example - you should use the example between NeXTSTEP/Mach and OS X, 
> which the identical technology, library versioning, is used. (People do you 
> still remember that OS X derived from NeXTSTEP, to the extent that OS X 10.0 
> have version number 4.0, picking up where NeXTSTEP left off, and this still 
> count till now like OS X 10.9 = NeXTSTEP 13?)
> 
> Also, there is no need of “compatibility mode” as library versioning will 
> allow that with a framework like this
> 
> UIKit.framework/
> + UIKit -> Versions/Current/UIKit
> + Headers -> Versions/Current/Herders
> + Resources -> Versions/Current/Resources
> + Versions/
> ++ A/
> +++ UIKit
> +++ Headers/
> +++ Resources/
> ++ B/
> +++ UIKit
> +++ Headers/
> +++ Resources/
> ++ Current -> B
> 
> The version A of UIKit library is what is shipped in iOS 6 (and before), 
> almost as-is. Version B is iOS 7 UIKit that have all the new bells and 
> whistles.

UIKit does not use this versioning mechanism. I believe no framework on OS X 
uses it, and the machinery may have been removed from iOS.

Framework versioning does not scale. The problem is that any use of versioning 
requires duplication across the rest of the system. Say you created 
Versions/A/UIKit and Versions/B/UIKit. Any client of UIKit like MapKit now also 
needs versions A and B, because it can't have just one version that links to 
both UIKits. Propagate that across the rest of the framework tree and you end 
up with two complete copies of every system framework. That's bad for disk 
space and memory usage, if you have two apps open that use different versions.

Versioning might have been during NeXT's great Object->NXObject or 
NXObject->NSObject overhauls. (I don't know, I wasn't there.)  It has been used 
approximately zero times in the OS X and iOS eras.


-- 
Greg Parker     gpar...@apple.com     Runtime WRangler



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to