<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
If your users are having to install things then the problem is your<br>
deployment mechanism not the JVM dependency hell system. Java<br>
deployments are actually really quite easy. Either you package a total<br>
system with all dependencies and provide entry scripts, or you use Maven<br>
Central (or increasingly BinTray) for accessing dependencies.<br>
</blockquote>
<br></div>
If I need deployment mechanisms like the ones above, then there's something wrong with the language. All these crutches and patches. To set up and test a deployment mechanism takes as long as writing the program. No thank you.</blockquote>
<div><br></div><div><br></div><div>This is what you get with shared libraries.  If you don't want to deal with dependencies, either A) ship a static-linked binary or B) cross your fingers and pray.</div><div><br></div>
<div>I've found the java ecosystem to be quite well fleshed out and mature in handling lib/jar dependencies, such that it was an unpleasant shock dealing with C++ after years away.  Using maven, for instance, is a quick and easy way to abstract the problems away (though it is better suited for builds than deployments).</div>
<div><br></div><div><br></div><div>As D gets more support for dynamic libraries, it would be good to take lessons from how Java and others have dealt with dependency management.</div><div><br></div></div></div></div>