Die GNU autotools

Die GNU autotools

Shlomi Fish shlomif at iglu.org.il
Fri Jan 14 12:17:48 IST 2011


On Thursday 13 Jan 2011 22:45:45 Elazar Leibovich wrote:
> I think you described correctly the root of the disagreement.
> I believe that any software (including free software) is written not as to
> implement an Aristotle's Ideal, but to be used by as many people as
> possible, and to be useful for them.

Don't you mean a Platonic Ideal?

http://en.wikipedia.org/wiki/Platonic_idealism

And I agree that an open-source software application is supposed to be used by 
as many people as possible and to be useful to them.

> So when I'm writing a free software, I'm trying to make it as useful as
> possible to most people. 

Just a note: in English, "software" is a collective noun, and you cannot say 
"a software". You can say "a software program", "a software application" or 
maybe also "a piece of software", but never "a software".

> If most people are having 2Gb of memory on their
> machine they probably won't care for an extra 20Mb, so they'll be happy to
> have a better tested software and pay for that in 20Mb of memory of the JVM
> (they would only pay of course if they're running two JVM based
> software simultaneously, which is not so common). Of course, I won't force
> my user to use extra 200Mb, that could matter, but nowadays 20Mb in those
> settings are not such a big deal. Wasting 20 minutes of my user's time on
> updating his JVM is. I also want to support my users, even though I'm
> writing a free software. I really want it to be useful.

Well, the problem is that if you add one straw at the time, you'll eventually 
break the Camel's back. Recently, I decided to try out the Amarok beta for 
Windows, and the download package was larger than 400 MB, which took me a 
while to download. Most people also won't appreciate a 20 MB increase in the 
download size of the package, in case it does something trivial. And if you're 
careless about the memory usage of your program, you'll eventually deter many 
users, some of which may go to a different alternative and not recommend your 
program to their friends.

I'm telling the story of why factor speed optimisations (i.e: those that do 
not improve the asymptotic complexity) are still important here:

http://en.wikibooks.org/wiki/Optimizing_Code_for_Speed

Reading from it:

[quote]
Are "Small" Optimizations Desirable?

Should we invest time working on optimizations that only save us 5 seconds (or 
fewer) out of the total run? Is a 5% increase in speed desirable? Some people 
are likely to say "no" to these questions, but the answer is not as 
straightforward. For example, Bill Raymond has written a solver for FreeCell 
that can reportedly solve 10,000,000 deals per hour on a 733 MHz computer and 
he testified that:

    I achieved my fast times by multitudes of 1% reductions.

From my experience working on my own solver (which is open-source and has a 
public version control repository), I was able to gradually reduce the run-
time of a certain benchmark over time from 224 seconds down to 94 seconds (an 
improvement of 138% percent) just by shaving off a few seconds at a time and 
doing many different optimizations. In a blog post, I further explain how I 
quadrupled the performance of the "File-Find-Object" Perl 5 module by applying 
many small optimisations.

As a result, one should not rule out that even "small" optimisations are 
negligible and should not be pursued. It takes just four 20% speed increases 
to double the speed of your program, and while the yield of each small 
optimisation is not very dramatic, such increases adds up to a lot pretty 
quickly. On the other hand if you don't apply any small optimisations to your 
code, and instead wait for the pot at the end of the rainbow, then your code 
is likely to stay as fast (or as slow) as it is presently.
[/quote]

Recently, I've also taken some steps to reduce the memory consumption of the 
solver as it was running, so it can handle more iterations within a given RAM 
limit. This proved to be of use after deploying it on a High Performance 
Computing (HPC) machine with 64 GB where it still ran out of memory. Since 
this made the solver slower, it was done by using an #ifdef, and while 
adapting its CMake-based build and configuration system accordingly, which is 
where CMake and similar tools really shine and plain makefiles are less 
suitable.

> 
> You see free software writing as an art. The software you write must
> implement the ideal best software, even if it's not the most practical
> solution. So, for instance, you'll use an extremely complicated algorithm,
> which is hard to debug and maintain, even though it gives no
> user visible performance gain, only because it is "the right thing to do".
> It is a plausible stance I can understand, and I understand why this stance
> cause you to prefer the autosuite for every project, despite its costs.
>

Where do you see Nadav saying this extreme? I don't agree that you should do 
that, but I still think you should use CMake or a similar build and 
configuration tool if you plan that your program or library will be used in 
the wild.
 
> And by the way, if a software is working correctly and using 10Mb, and
> another software does the same thing with 5Mb of memory usage, I won't
> switch. It really wouldn't matter for me, the difference between both is
> immeasurable for my computer usage patterns.

Other people with different constraints may opt to switch, which will decrease 
the popularity of the 10 MB program.

> 
> But what I'm really bothered is by your claim "developer time is cheap,
> it's FSF, somebody[*] will do that". I really don't think the situation
> nowadays is that we have too much working hands for free software.
> Especially in open source software for which you need special expertise
> http://zrusin.blogspot.com/2010/07/graphics-drivers.html

I agree that it's not as if we have all the developer time we could use, but I 
think developers should still spend some time improving their software for 
most users, or even a minority of them, because otherwise the applications 
will fall by the way's side. As Eric Raymond notes in the Cathedral and the 
Bazaar:

[quote]
Some European users bugged me into adding an option to limit the number of 
messages retrieved per session (so they can control costs from their expensive 
phone networks). I resisted this for a long time, and I'm still not entirely 
happy about it. But if you're writing for the world, you have to listen to 
your customers—this doesn't change just because they're not paying you in 
money.
[quote]

Regards,

	Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
Rethinking CPAN - http://shlom.in/rethinking-cpan

Chuck Norris can make the statement "This statement is false" a true one.

Please reply to list if it's a mailing list post - http://shlom.in/reply .



More information about the Linux-il mailing list