Re: [dev] Interesting post about X11

From: Donald Allen <>
Date: Wed, 23 Jun 2010 12:16:09 -0400

On Wed, Jun 23, 2010 at 11:57 AM, Aled Gest <> wrote:
>> Yes, wasting resources is a Bad Thing, by the strict definition of
>> 'waste' -- cost with no benefit. But if you use more of one
>> inexpensive resource in order to reduce the use of another expensive
>> resource and achieve a net gain in the process, that's not waste,
>> that's smart.
> I'm still a little confused as to why you keep insisting that
> competence is expensive.
>> How much Lisp/Scheme have you written?
> About 0 lines of code in my life time so far.
>> Note the 'if's in what you said above. There are a lot more examples
>> that will involve a lot more ifs when editing C, none when editing
>> Scheme.
> Note the other solution you skipped over, which essentially removes
> the 'if' in this case for C.
>> Superfluous? The regular and simple syntax of Scheme and Lisp is one
>> of the factors that allows the language to easily take full advantage
>> of the von Neumann architecture: programs that write and execute
>> programs. (TCL actually has this virtue, too, because there's some
>> Lisp influence in its design, though it's not nearly as clean as
>> Scheme.) The ease of editing is a side-effect of this, a property of
>> Lisp that has been there since the language was invented by John
>> McCarthy in the early 1960s, long before text editors were a gleam in
>> anyone's eye. So you've got the cart before the horse -- the simple
>> editing is a consequence of a long-standing property of the language;
>> there were no contraints, superfluous or otherwise, imposed on Scheme
>> to make it simple to edit.
> Yes superfluous, do all the parentheses need to be there, if so, why?
>> I never said that. I said, in effect, that complex tools are sometimes
>> useful, even essential. Yes, simplicity is a virtue, but sometimes you
>> can't have it, either because it's inherently impossible or it simply
>> hasn't been done.
>> You have been professing to be allergic to anything big and
>> complicated ("Emacs, being all but a
>> small operating system in itself, goes against the very idea of
>> simplicity, but each to their own.") but I was pointing out to you
>> that you use operating systems, which are big and complicated. You do
>> because you can't compute without one. Do you use gcc? Big and
>> complicated. With editors, you have more choice. I choose emacs
>> because it's useful to me, it works well on today's hardware even
>> though it's huge (here again, we have the trade-off that you hate; I'm
>> willing to burn some extra cycles and some extra memory, courtesy the
>> super-computer on my desk, to save me time and effort, allowing me to
>> work on the real problem I'm trying to solve; that's a characteristic
>> of a good tool -- giving you leverage in order to accomplish something
>> good that you wouldn't otherwise be able to do) so on a cost-benefit
>> basis, it works well for me. Quite evidently, you don't feel that way.
>> So use something small and simple, if it makes you feel better. But if
>> it makes you less productive, I'd argue that that's a bad trade.
> The point is Emacs and tools like it (Eclipse comes to mind) are
> unnecessarily complex and cumbersome, and in the case of Emacs, it
> goes against a fundamental principle of Unix philosophy -- "Write
> programs that do one thing and do it well".
> I wouldn't be surprised if there was an Emacs module that cooks Sunday
> dinner. That would be useful, but completely misplaced.
>> The only thing that has a chance of convincing you, and I think it's a
>> very slim one, is if you actually spent some time doing Scheme
>> development. I doubt that a "practical rationale" exists that would
>> move you at all.
> The problem with that idea is there don't seem to be any resources (as
> far as I've found or have been shown) that don't come with pages upon
> pages of inflated waffle before getting to any point. I'd be more than
> happy to give it a try if somebody could point me to a concise
> reference that gets straight to the point and provides practical
> examples. If that doesn't exist for Scheme, then it certainly doesn't
> meet my requirements. I have no interest in academic theology.
>> What you are hearing from Scheme advocates comes from experience with
>> the language and developing in it. It's hard to describe its virtues
>> in the abstract (again, pun intended). It's a bit like Supreme Court
>> Justice Potter Stewart's comment about pornography -- "it's hard to
>> define, but I know it when I see it". All I can say to you is that
>> I've been doing this for a very long time, I've written code in just
>> about every language you can think of (except Perl, which looks like
>> something that came out of a broken modem to me; didn't Paul Graham
>> say that it looks like a cartoon character cursing?), and I am more
>> productive in Scheme than any other language (one reason is that Jerry
>> and Guy Steele found a very small basis set; I almost never consult
>> documentation when writing Scheme -- the small set of core principles
>> are in my head; that's not true of C, particularly when writing
>> declarations). There's also the 80-20 rule to consider. If one
>> develops in Scheme and finds that the result is too slow, there's
>> always the escape to C for the critical inner-loop stuff.
> I have no doubt that some people are more productive in Language X
> than Language Y, and that's all well and good, but people don't all
> think the same way. What works for one person does not necessarily
> work for another, so for somebody to be convinced that changing the
> way they work will benefit them, they must be presented with valid
> evidence in support of that case.
> I think it's prudent to once again point out here, that this
> conversation started because somebody was suggesting that Scheme
> *should* be used by everybody for everything. If that is a valid
> suggestion to make, then there needs to be practical non academic
> guides to getting started in scheme, and there needs to be examples of
> code that proves Scheme's superior nature to people who aren't
> ingrained in Scheme mentality.
> Saying "you'll love it once you get used to it" just doesn't cut it,
> but that's all I ever hear from Scheme and Lisp fans. It seems for me
> to like Scheme I must first bludgeon my self with senseless inflated
> BS, and that does not suggest to me a language worthy of my devotion.
> I don't do blind faith.
>> Having said that, my guess is that your experience would be different
>> than mine. We've already agreed that we see things very differently
>> and, as I've said above, my guess is that even if you made a
>> good-faith attempt to gain some Scheme experience, you'd still hate
>> it. There's nothing wrong with that -- there's lots of work in the
>> world for people who want to be close to the hardware and feel the
>> electrons buzzing around them. But I do suggest that you to think more
>> about the net productivity of computer + human rather than just the
>> computer; you'll accomplish a lot more as a software developer if you
>> do.
> Human productivity is what I think about, I see computer productivity
> as being something that has a direct effect on human productivity.
> Programmers don't have the right to be lazy, because their laziness
> costs other people, whether that cost is perceived is irrelevant in my
> mind.
> The world is full of business managers who ignorantly follow the
> short-sighted 'cost-benefit'  principle you're so fond of, and
> programmers who are happy to be lazy and take shortcuts to reach
> arbitrary targets, and as result the world in a large part runs on
> inadequate and inefficient software.

This discussion has become all cost and no benefit to me, in other
words, a waste. So I think we should stop.


Received on Wed Jun 23 2010 - 16:16:09 UTC

This archive was generated by hypermail 2.2.0 : Wed Jun 23 2010 - 16:24:02 UTC