Friday, September 29, 2006

Versioning Solutions in Other Languages

Some months ago, I wrote about versioning problems with extension methods.

I just spotted this page from David Simmons, a Microsoft employee working on dynamic language support for .NET. Perhaps he can offer some tips to the C# guys???

He writes:

You don’t see the problem until you have two independent third parties integrating into a common piece; so, in version 1.0, say, they might both make an extension - a method of the String class maybe - and those extensions collide, so how do you solve that? Then the problem becomes even more exacerbated if you bring in a fourth party that might depend on one of those third parties in version 1.0…

This is typical of patterns that happen with versioning in Just In Time integration. And unless you have a solution to that problem that can address the versioning from the point of view of the person who wrote the code getting what they expected to happen, you have a problem.

The way that I solved that problem is that..."
(follow the link for details of a solution in David's S# language.)