comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: How to nicely distribute a simple Ada library?
Date: Thu, 8 Dec 2011 18:00:55 -0600
Date: 2011-12-08T18:00:55-06:00	[thread overview]
Message-ID: <jbrj3q$mvd$1@munin.nbi.dk> (raw)
In-Reply-To: b1d86c67-0f3b-49ae-998c-2e7f904d6bfc@n10g2000vbg.googlegroups.com

"Ludovic Brenta" <ludovic@ludovic-brenta.org> wrote in message 
news:b1d86c67-0f3b-49ae-998c-2e7f904d6bfc@n10g2000vbg.googlegroups.com...
> Randy Brukardt wrote on comp.lang.ada:
>> And most libraries are better distributed in a plain old ZIP file 
>> anyway --
>
> I think this is too simplistic.
> Zip files cannot manage dependencies between libraries...

True enough, but I already said that dependencies between libraries is bad. 
Most libraries shouldn't depend on anything other than what Ada gives you 
out of the box. (Claw, for instance, is designed to be completely 
self-contained.) The only exceptions that I can think of is for GUI and 
database interfaces, which gives you a maximum of two dependencies -- which 
you shouldn't need fancy tools to manage.

>... and force the user to recompile everything.

Any decent Ada compiler (which includes all Ada compilers I'm aware of) has 
a simple mechanism to compile everything needed for your application. 
Nothing more is needed for the vast majority of libraries.

>  This may be fine for a single computer, a small number
> of libraries, and small libraries, but does not scale to tens of computers
> that need the same development environment, or to dozens of libraries,
> or to very large tools and libraries.

I had prefaced my original remarks by saying that you should forget 
installers unless you are intended to distribute to large numbers of people. 
My follow-on message surely included that proviso, even if it was not 
explicit. Most of the readers here are not creating something like Claw or 
GtkAda and do not need the complexity of fancy installers.

And you seem to agree in another message, where you suggest making a tarball 
and letting the "upstream packager" (whatever the heck that is) worry about 
packaging. That's precisely what I'm suggesting to the library author --  
don't worry about "packaging", because it's really only useful in the 
context of widely-used packages. It's better to just make a source-only 
distribution and give some hints on compiling for you favorite compiler. 
(That's certainly true if you want me to be able to use your work, because 
my favorite compiler is nothing like yours.)

>> anyone who can't figure out how to unzip that and use their compiler's 
>> make
>> facility shouldn't be programming (in anything!!) anyway. The fancy
>> installer is just a time sink.
>
> Sure, professional programmers should know how to unzip and compile from
> sources.  But you cannot become one until you've learned how to do that.
> By definition, novices don't know how to unzip and compile, and they don't
> know how to read a README file either :/ They need hand holding and a
> "standard" (whatever that means for their platform) installer.

Sure, they need that for their compiler and possibly a handful of "big" 
libraries (like Claw). There is a reason that I spend a lot of my Janus/Ada 
time working on our installer (and documentation and ease-of-use and 
everything but actual functionality). And it surely applies to the good work 
that you do, as well. (Please don't think that I am saying that you or 
anyone else shouldn't package GNAT or GtkAda or other things like that!)

But that does not apply to the sorts of small hobbyest projects that are 
mostly discussed here -- including the OP of this thread.

                                      Randy.





  reply	other threads:[~2011-12-09  0:01 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-04 11:19 How to nicely distribute a simple Ada library? Natasha Kerensikova
2011-12-04 12:06 ` Dmitry A. Kazakov
2011-12-05 11:55   ` Yannick Duchêne (Hibou57)
2011-12-05 11:58   ` Yannick Duchêne (Hibou57)
2011-12-05 13:31     ` Dmitry A. Kazakov
2011-12-05 14:11       ` Yannick Duchêne (Hibou57)
2011-12-05 15:22         ` Georg Bauhaus
2011-12-05 15:51           ` Yannick Duchêne (Hibou57)
2011-12-05 17:50             ` Dmitry A. Kazakov
2011-12-05 15:24         ` Dmitry A. Kazakov
2011-12-06  0:22   ` Randy Brukardt
2011-12-06  6:27     ` J-P. Rosen
2011-12-08  7:47       ` Randy Brukardt
2011-12-08 10:17         ` Ludovic Brenta
2011-12-09  0:00           ` Randy Brukardt [this message]
2011-12-09  8:42             ` Ludovic Brenta
2011-12-06  8:57   ` Ludovic Brenta
2011-12-06  9:47     ` Dmitry A. Kazakov
2011-12-06 10:13       ` Ludovic Brenta
2011-12-08 15:53   ` Yannick Duchêne (Hibou57)
2011-12-08 18:34     ` Dmitry A. Kazakov
2011-12-04 12:28 ` Ludovic Brenta
2011-12-04 14:39 ` Georg Bauhaus
2011-12-08 10:18   ` Natasha Kerensikova
2011-12-08 11:28     ` Ludovic Brenta
2011-12-08 14:00     ` Robert A Duff
2011-12-08 15:37       ` Georg Bauhaus
2011-12-04 17:42 ` Jeffrey Carter
2011-12-04 20:25 ` Tero Koskinen
2011-12-04 22:04 ` Simon Wright
2011-12-05 11:53 ` Yannick Duchêne (Hibou57)
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox