OT Java stuff [was Using D]

Chris via Digitalmars-d digitalmars-d at puremagic.com
Wed Aug 27 01:53:15 PDT 2014


On Tuesday, 26 August 2014 at 22:07:49 UTC, Jeremy Powers via 
Digitalmars-d wrote:
>>
>>
>>> If your users are having to install things then the problem 
>>> is your
>>> deployment mechanism not the JVM dependency hell system. Java
>>> deployments are actually really quite easy. Either you 
>>> package a total
>>> system with all dependencies and provide entry scripts, or 
>>> you use Maven
>>> Central (or increasingly BinTray) for accessing dependencies.
>>>
>>
>> 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.
>
>
>
> 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.

Statically linked binaries are still the best option, if you want 
to make sure things will work for the user (and you don't have 
time for customer service). It's also a good strategy for 
cross-platform development, this or you have to use an approach 
similar to Textadept that ships everything in one package. I 
usually ship all the additional dlls / libs, if there are any.

Relying on system wide dynamic linking is more for cases when you 
develop for one particular environment or when you're 90% sure 
that a certain library exists on most systems you develop for. 
The C standard library comes to mind, but even there are 
differences between Linux and Windows. And don't forget that, 
unlike Linux users, people who use Windows are usually not tech 
savvy in the sense that they can deal with downloading additional 
libraries.

It all depends on the products you're developing. But for our 
stuff it's better to go static or ship everything.

> 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).
>
>
> 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.

Yes, only better. :-)


More information about the Digitalmars-d mailing list