[wmii] Re: 10kloc project, wmii maintainer change

From: Uriel <lost.goblin_AT_gmail.com>
Date: Wed, 19 Jul 2006 20:18:18 +0200

First of all, people that includes HTML in their emails should be shot.

Second, I don't endorse the 10kloc project, because it is rather arbitrary and
simple minded. Code complexity is only a symptom of the problems with software
development, lack of conceptual clarity and integrity are the problem.

At the same time, it is probably a bad idea to get lost in overly abstract and
philosophical discussions, and simple guidelines, even if somewhat arbitrary
and simplistic can be of great help, specially in getting the message across to
people that are blinded by only one known way of doing things: when in doubt,
add more complexity.

I think it is important thought to emphasize that the selected code metric is
rather arbitrary and just a guideline to help keep track of a much more
important parameter: sanity.

On 7/19/06, Geoffrey Alan Washburn <geoffw_AT_cis.upenn.edu> wrote:
> Anselm R. Garbe wrote:
> > Why is there no hope for writing a compiler in less than ten
> > thousand lines? Maybe because modern compilers need to provide so
> > much optimization features, that the complex software they
> > have to compile don't performs poorly?
> No it's because modern processors require complex optimizations to
> obtain optimal performance.

Hahahahaha... this is hilarious. So you are telling me, that because processors
are now thousands of times more powerful, and we have thousands of times more
memory, we need _more_ optimizations than before? Ah, the insanity of the world
we live in were white becomes black, and black becomes pink.

> So maybe you should be complaining to
> computer architects. Furthermore, have you ever written a interpreter
> or compiler? Do you really know what kind of complexity goes into one?
> Have you written an operating system kernel?
> > Like code optimization in compilers, abstractions solve the
> > symptom of complexity, but not the complexity itself.
> > Abstractions follow the divide et empera paradigm, which is not
> > bad, if the interfaces are kept simple and generic, like the
> > pipe-filter paradigm. But too often abstractions leads to more
> > complexity, than necessary. See the Web Service desease for
> > example. Do I need an XML parser in the future to call atoi()?
> >
> I'm not advocating Web Services as a paragon of abstraction, but
> clearly you seem to have not been educated on the concept of irreducible
> or Kolmogorov complexity. Some things are just complex. Period.

If you decide that your goals are necessarily complex, I'm sure your solutions
will need to be complex. The art of programming is to dissect and organize those
goals in a way that reduces the complexity as much as possible. One should
always remember that Worse is Better. and that The Perfect is the Enemy of the

Programming is not an idealized task, programming lives in a context of reality,
and and trying to attain perfection and completeness is pretentious, foolish,
stupid and wrong.

> > I doubt that I can do fewer data abstraction with C than withany other
> language. What can't I do with C, but with another language?
> And this is exactly because you are ignorant. A common problem with
> open source software developers. Try educating yourself; very little
> software should be written in C.

Are you God to tell people what language to use? If you didn't notice, while
most programming languages suck really hard, the problem is not the language,
it is the programmer.

This is not to say that programming language designers don't suffer from
exactly the same problems as software designers in general, but as programming
languages go, C is one of the most sane by a long, long shot. Among other
things because C is one of the few languages that one has a chance of
completely understanding.

C might not be the best language for all tasks, but it is one of the most
versatile general purpose languages that is available almost universally, hence
is in many cases the best choice.

Given its age and original purpose it is no wonder that C has some flaws, but
this are nothing compared to the flaws in most other general purpose languages,
and none of those is anywhere close to as universal as C, and after all C is
simple and versatile, which means that it can handle relatively well tasks it
was never designed for given some careful thought and well designed libraries.

But it is pointless to get into programming language flamewars, because they
miss the whole point, that is to reduce complexity, one should use whatever
language that allows you to reduce complexity (rather than just burying it
under the carpet while creating a few extra layers of complexity in the
process). For example for me in most cases that means rc-shell and awk.

And anyway, often the issue is not what fucking language to use, or how many
lines of crap code to write; more often the question is if one should write any
code at all! Always remember the holy words of Gordon Bell:

    The cheapest, fastest, and most reliable components are those that
aren't there.

In other words: Deleted code is debugged code, and it certainly doesn't use any
memory or CPU time; so even better if you don't write it to begin with. And
this I guess should be the core ideology of the 10kloc project.

> > And I doubt that the SLOC metric is really
> > language-dependend, there is not much difference in 10 thousand
> > lines of bare Java code compared to 10 thousand lines of bare C
> > code (maybe the C code provides more functionality, because not
> > every global var is accessed with a useless getter and setter
> > method...).
> >
> Again, this shows an considerable lack of understanding about
> different models of computation. Some problems are significantly easier
> when provided with the correct paradigm. Furthermore, different models
> of computation allow for much better simpler/compilers. My guess is
> that you've never actually tried programming in anything except for
> poorly designed effectful-imperative languages.

Thanks for a classical collection of truisms and FUD. Of course choosing the
right abstractions is the key to programming, so what is your point? That some
languages are more suited to some tasks than others? Jump off from your ivory
tower and stop wasting our time.

> > I don't think so. Do you really believe you can understand
> > software systems consisting of more than 10kloc? We consider
> > adding a 'Hall of Ueberprogrammers'...
> >
> So you're telling me that gcc, ghc, Linux, *BSD, etc. are complete
> failures?

No, they are a disease.

> Anyway, your response was pretty much what I expected, so I'm not
> going to bother debating further. Most open source developers are
> completely clueless when it comes to choosing the right tools for the job.

Yup, http://www.sitetronics.com/www.insultant.net/tools/M9-B/

Received on Wed Jul 19 2006 - 20:18:19 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:11:13 UTC