Re: [dev] Interesting post about X11

From: Aled Gest <himselfe_AT_gmail.com>
Date: Wed, 23 Jun 2010 16:57:29 +0100

> 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.
Received on Wed Jun 23 2010 - 15:57:29 UTC

This archive was generated by hypermail 2.2.0 : Wed Jun 23 2010 - 16:00:03 UTC