Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: Re: Re: Re: Apocalypse 12

by TimToady (Parson)
on Apr 20, 2004 at 03:12 UTC ( #346530=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Re: Apocalypse 12
in thread Apocalypse 12

4. The proposal that we have multiple versions of modules loaded at the same time scares me. I cannot help but think that it is an inherently fragile thing to attempt, particularly if someone does anything dynamic. Problems comes in many flavours, and I'm not sure which bothers me most. Here is a sample.
The current library mess is just as fragile in other ways. The whole point of this is to reduce that fragility without inducing additional fragility, and I believe we can.
* How can the feature help if developers have not specified versions for dependencies?
If nobody ever specifies a version requirement, we're no worse off than we are now.
* How do you handle versioning of proxied modules?
By making sure the interface can be as specific or generic as needed, I suspect. Allowing multiple coexisting versions (where possible) only makes this less fragile in my estimation.
* When will bugs go away?
There are a lot of folks who prefer known bugs to unknown bugs. You should know--I particularly had the financial market folks in mind here, having been informed that they like to lock down the versions of *everything* forever. The Perl 6 approach lets them lock down two different versions of the same thing where those versions don't collide dynamically.
* What code am I REALLY running?
Shouldn't be a problem within the debugger, which will know which version you're in. If you're poking around the Perl library, I would hope that different versions of the same thing would be stored close enough together that you can at least see that you have a choice.
* Where's my data?
Yes, this is a known issue. The basic question is how to mark the modules that can or can't share resources with other versions. And what should be the default...
* What about C libraries?
Another known issue, or the same one. Oddly, this shouldn't be a problem with .NET, which is taking the same tack as Perl 6 here, I believe.
* Feeling bloated?
Again, that's the external "can't share" problem. Part of the metainfo of a module has to be whether it can coexist with other versions of itself. A database handle is obviously something that can't be shared easily.
When I first heard about the idea of trying to support having multiple versions of software on your system, I thought that it was a fundamentally broken idea. No, I don't want the added complexity when I think that it will fail, and complicate my life in the process. That opinion hasn't improved with time...
I think it will solve a real problem for the people who need it solved, and stay out of the way of other people. Especially if we don't botch it.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://346530]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2018-01-22 14:40 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (233 votes). Check out past polls.