What's your favorite year end method?

Donald Allen donaldcallen at gmail.com
Mon Dec 24 18:12:35 EST 2007


On Dec 24, 2007 4:57 PM, Derek Atkins <warlord at mit.edu> wrote:
> "Donald Allen" <donaldcallen at gmail.com> writes:
>
> >> And which "past mistake" would that be?  I'm not trying to start
> >> a religious war, either, I'm just trying to understand where you're
> >> coming from and what you mean.
> >
> > Because people aren't paid the big bucks to work on gnucash, the
> > project is perhaps more vulnerable to turnover than commercial
> > projects, where people can be held onto with financial incentives that
> > take years to vest. So while I think code readability is important in
> > any setting, it's particularly important here.
>
> There's no way of knowing what language will be in vogue a decade
> from now.
>
> > I think Scheme was a mistake precisely because there are relatively
> > few people who are "fluent" in it (I will, of course, defend the
> > semantic and even syntactic beauty of the language to the death :-).
> > There may also be a performance issue with this particular
> > implementation (guile), but that's irrelevant to this discussion.
>
> At the time it was chosen all of the developers knew scheme,
> and many of the people around the program also knew it, so it
> was certainly an appropriate choice.  I wouldn't call it a
> mistake.  Guile is also the "GNU Extension Language", so that's
> yet another reason to have chosen in.

I understand. I'm not pointing fingers at anyone. I'm simply saying
that with the benefit of 20-20 hindsight, it was probably a mistake,
for the reasons I've already given.

>
> > I think Perl could be a mistake because it's so easy to write
> > inscrutable code in it. Yes, there are far more people who know Perl
> > than Scheme, as you correctly point out, but I think the outcome could
> > well be the same (I've seen this with people implementing large
> > systems in Tcl, which is just not suitable for that sort of thing).
> > That's what I'm worried about.
>
> I think it's easy to write inscrutable code in any language.
> I consider python inscrutable too, but I consider Scheme
> elegant and (usually) quite clear.  It's all about what you
> know and what you're comfortable with.  I've also seen
> PERL code that's more understandable that C.
>
> It's not a question of what the language allows.  It's all about
> how the programmer uses it.

So language design doesn't matter -- it's all up to the programmer? I
disagree completely with that. I think it's a combination of the two,
and some languages are so bad, it's almost impossible to write
well-structured programs in them. That's why we aren't writing
programs in Fortran II any more. Of course bad programmers will write
bad programs in any language. But good programmers will write bad
programs in bad languages.

I think Scheme (and Lisp generally) is a special case in the
programming language space, because the prefix syntax departs from our
usual notation, particularly for arithmetic expressions. I agree with
you about its quality -- I am more productive in Scheme than any other
programming language, Python included -- but my experience is that
people who aren't on the Lisp/Scheme wavelength -- and there are many
-- look at the syntax and say "you've got to be kidding". It's a
little like trying to convince the majority of folks, who spend most
of their time listening to hip-hop, rap, or whatever most people
listen to today, that the Well-Tempered Clavier of Bach is great
music.

So if you write reports in Scheme, you restrict future development of
them to Scheme devotees, a very small percentage of people who know
how to write code, even the really bright ones.

/Don

>
>
> >> > Please remember to CC this list on all your replies.
> >> > You can do this by using Reply-To-List or Reply-All.
>
> -derek
> --
>        Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
>        Member, MIT Student Information Processing Board  (SIPB)
>        URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
>        warlord at MIT.EDU                        PGP key available
>


More information about the gnucash-user mailing list