On Tuesday, 30 October 2012 at 20:08:04 UTC, Jacob Carlborg wrote:
On 2012-10-30 19:42, Paulo Pinto wrote:
Not really.
Let's say you compile everything fine, but on the deployment
platform, some IT guy has the cool idea of changing some
configuration
settings.
That change will have as side effect that some third party
dependencies
will now be matched to another version different than what was
used by
the package manager.
Again, then you haven't specified the dependencies correctly.
If you just specify that "foo" depends on "bar" then you have
only yourself to blame. You need to specify the exact version,
i.e. "bar-1.2.3". If you cannot specify the exact version of an
indirect dependency then you're not using a very good tools.
This cannot be enforced on runtime for most languages, that was
why I was generalizing.
For example C and C++ require the programmer to do this, somehow.
Java requires you bundled something like OSGi with your
application.
From the languages I have real project experience, only Groovy
and .NET provide out of the box mechanisms for runtime
validations given in the package manager.
--
Paulo