Message 01799 [Homepage] [Navigation]
Thread: oxenT01623 Message: 128/129 L7 [In index]
[First in Thread] [Last in Thread] [Date Next] [Date Prev]
[Next in Thread] [Prev in Thread] [Next Thread] [Prev Thread]

Re: Software as society (was: Re: Documentation Standards was Re: [ox-en] UserLinux)



On 14 Dec 2003 at 6:37, Benj. Mako Hill wrote:

In which case, I completely agree. Too many programmers think "if it
works, it's done". This is IMHO very poor engineering - software
needs aesthetics and quality. It needs to be far more than simply
getting the job done - it needs to create dreams within people, to
inspire them and to change the world around it.

For the most part, I agree with you. But some software is a kernel
scheduler or a list sorting algorithm. The social aspect of these
types of software seems harder to put a finger on. I'd be interested
in hearing you unpack either of these examples.

As it just so happens, I am particularly well placed to comment on 
both of those. I once wrote an extension for Acorn RISC-OS called 
Wimp2 which provided a preemptive multitasker to replace RO's 
cooperative one. Now what was interesting about this was that for 
many years preemptively multitasking existing RO applications was 
considered near impossible and that while it probably could be done, 
it would be too slow to be workable.

After some weeks spent slaving in assembler, I produced a working 
solution. If I'd done it a few years earlier, it would have had a far 
greater impact - but it still did so. Why? Because the very fact that 
it could be done had a major /social/ impact, the usership of RO 
could now move past the polemic debates for and against PM and indeed 
a good few chose to permanently install the patch in their systems. 
If you do a google search, you'll get some idea of the social impact 
of what was ultimately a very small bit of code.

Regarding list sorting, I recently completed what I believe to be the 
perfect list sorter for C++. It takes a std::list and applies a 
combination of quick sort, merge sort (not quite finished yet) and 
insertion sort with custom compare, swap and move routines installed 
via static polymorphism (ie; template parameters). It uses compile-
time introspection to self-compile itself to the very best possible 
and because you can do cool stuff like sort disparate lists 
simultaneously, it enables interesting new idioms. Now if I were to 
publish an article on this in CUJ say and people were to adopt my 
ideas, a trickle-down effect occurs whereby more & more code becomes 
enabled with these new idioms. Here again we see a major social 
effect from yet another implementation of very old algorithms - and 
hopefully someone will see my ideas, combine them with something else 
and so the merry-go-round goes round again.

(2) Not everyone agrees that software quality is always something you
    can speak about in such definite terms (although it's clearly more
    so with software than art or literature).

Well, obviously we all have our preferences. The reason why I forked 
FOX to make TnFOX was because no other library had the quality 
standard I required of it (eg; WxWindows, Qt etc). While I feel that 
my code's quality is as good as it's possible to make it, some might 
feel that they dislike my library because perhaps I won't support 
retrograde compilers. Also you will need a very fast computer to 
compile it. Some people may view this as minusing the quality points.

(3) Not everyone agrees that our principle way to improve software
    quality is through encouraging reuse. Competing implementations of
    SSH has been a good thing for security by most accounts.
    Redundancy in C libraries allowed for interesting innovation and
    experimental functionality.

I take the rather odd view that there is usually one single best way 
of doing most things. Thus in TnFOX there is one orthodox way (ie; my 
way) and you get no room for trying to be different. This is 
fundamentally not how the Unix mentality works, but then I don't come 
from a Unix background.

This is very egotistical of me, and probably the biggest point 
against third parties using my library. I can understand why choice 
is good and competition is good, but I view those only as being 
useful when there is doubt about the single right way. If there 
isn't, choice and competition are wasteful eg; there should be no 
reason why a system need more than a maximum of two code editors as 
we perfected that years ago (and no, I don't think emacs is that by 
any means).

(4) Not everyone agrees that the main point of free software is to
    improve the quality of the software.

Neither do I - I've said many times here that volunteer based 
projects will not produce much step-change innovation and capital is 
needed for that. However, free software must surely play a crucial 
part as quality will rise when people can study the source/customise 
their purchases (I would mandate source to come with all purchased 
software plus customer rights to modify and distribute patches).

The GPL helps open source software not waste production, but it
doesn't proprietary. Therefore it's not a good idea as there are
alternatives which don't have this problem.

As you know, many programmers who choose the GPL are not, first and
foremost, out to improve the quality of software -- that was never the
point.

And I think that's what I find the most abhorrent. We're programmers, 
our first priority should be the code. Any politics we practice 
should be concerned with improving the code and nothing else.

Your answer to this seems to be, "they're religious zealots and need
to quit the cult of the GPL," or "freedom is meaningless, they are
just chasing a word."

That's perhaps a bit harsh. I feel that most GPL believers are 
misguided and as I've said in here previously, I can understand why.

I also have serious problems with the term "freedom" but I think free
in the context of free software means something more concrete than
freedom when used by George Bush. More importantly, I also can't think
of a better one.

I guess I find it odd that when the preamble to the GPL says good 
things like removing the restriction of use by anyone, it then goes 
on to commit the hypocracy of restricting certain forms of use. 
That's a contradiction which negates being able to call GPL software 
free software.

Cheers,
Niall






Thread: oxenT01623 Message: 128/129 L7 [In index]
Message 01799 [Homepage] [Navigation]