Reporting system - declarative

Donald Allen donaldcallen at gmail.com
Thu Nov 17 15:38:43 EST 2011


On Thu, Nov 17, 2011 at 3:27 PM, John Ralls <jralls at ceridwen.us> wrote:

>
> On Nov 17, 2011, at 10:02 AM, Donald Allen wrote:
>
> > On Thu, Nov 17, 2011 at 1:50 AM, Derek Atkins <warlord at mit.edu> wrote:
> >
> >> Donald Allen <donaldcallen at gmail.com> writes:
> >>
> >>>> (cond ((> x 5) (fun a b))) ;; I won't even attempt to properly indent
> >> this
> >>>> in gmail
> >>>>
> >>>> vs.
> >>>>
> >>>> if x > 5:
> >>>>
> >>>
> >>> I'm not sure how I fat-fingered this, but the message got sent
> >> prematurely,
> >>> destroying my credibility:-)
> >>>
> >>> Anyway, you get my point -- writing that conditional in Python or C
> looks
> >>> more natural to people and so they prefer it to Scheme/Lisp on those
> >> narrow
> >>> terms, forgetting what working in Scheme buys you (personally, I'm more
> >>> productive in Scheme than any other language, and I've written code
> over
> >> a
> >>> long career in most of them; Python is also a strong contender in the
> >>> productivity dept., but there's a lot more to learn and keep in mind
> than
> >>> with Scheme; it's a much more complex language, even though the code
> >> looks
> >>> simple).
> >>
> >> Um, I don't see a *HUGE* difference between:
> >>
> >> if (x > 5)
> >> {
> >>  if-clause ...
> >> }
> >> else
> >> {
> >>  else-clause ...
> >> }
> >>
> >> vs:
> >>
> >> (if (> x 5)
> >> (if-clause)
> >> (else-clause)
> >> )
> >>
> >> To *my* eyes they look very close (modulo the x > 5 vs. > x 5)
> >>
> >
> > Yes, that's true. There *are* things in Scheme that look much like C or
> > Python and 'if' is one of them, which is why I chose 'cond' and not 'if'
> > for my example. But despite that overlap, I think there's enough in
> Scheme
> > that looks weird to people used to other languages (you identified one of
> > them -- infix vs. prefix in predicates and also the obvious -- use of
> > prefix notation in arithmetic expressions) that they reject it on what I
> > would consider much too narrow grounds, failing to carefully weigh the
> > advantages against the perceived disadvantages.
> >
>
> Which is a fine argument when discussing a language choice for developing
> a project with a professional team.
>
> It's not such a good argument when the team will consist of volunteers who
> must be recruited from the already small pool of programmers who are
> willing to contribute time to open-source projects and for whom there is
> tremendous competition from thousands of other projects using more
> conventional languages.
>
> It's an absolute non-sequiter when the language choice is for a scripting
> language to be used by non-programmers, particularly when the scripts are
> needed for such an important role as report customization. In that case,
> the closer the scripting language is to "natural" languages, the better.
>

You misunderstand me; I actually don't disagree with you at all. I'd have
to check my email, but I *think* I've made the same argument to one of the
gnucash mailing lists some time ago against the use of Scheme in Gnucash
and *for* Python, and on similar grounds. It's hard to find people who know
Scheme, and it's hard to get people who don't know it to accept it. I think
they're wrong, for the reasons I've given, but that's the reality, and it
doesn't make sense to sacrifice a software project for language purity.

What I was discussing here was simply why people tend to resist Scheme and
Lisp. Hendrik seemed to be attributing it to parentheses and I disagreed
with that. Nothing deeper than that.

/Don


>
> Regards,
> John Ralls
>
>


More information about the gnucash-devel mailing list