On Thu, Nov 17, 2011 at 3:27 PM, John Ralls <jra...@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 <warl...@mit.edu> wrote: > > > >> Donald Allen <donaldcal...@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 > > _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel