[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Mutable Pairs
- To: eli@x
- Subject: Re: [Scheme-reports] Mutable Pairs
- From: Brian Harvey <bh@x>
- Date: Sun, 13 Jun 2010 23:32:38 -0700
- Cc: scheme-reports@x
- In-reply-to: <firstname.lastname@example.org>
- References: <AANLkTil797j_1JFnFO2Ft5Q8k6Z3JLAU5jXOLi4mzPAS@mail.gmail.com> <20100602174437.GD25008@mercury.ccil.org> <email@example.com> <201006022112.o52LCHgi023946@abbenay.cs.berkeley.edu> <m2y6ej8tij.fsf@Yahoo.com> <201006130626.o5D6QwrE003051@abbenay.cs.berkeley.edu> <m2k4q28pws.fsf@Yahoo.com> <201006140108.o5E18QYu008798@abbenay.cs.berkeley.edu> <firstname.lastname@example.org>
> Just *how* many more decades should students be "urged"? How many
> more buffer-overrun-like diseases should the world of programming
> suffer for this kind of thinking to finally go the way of the GOTO?
(1) This repeated reference to buffer overruns is what we in my youth
used to call redbaiting. Lisp programmers don't /have/ buffer overruns.
And it's not because Lisp tied anyone's hands -- it's because Lisp
provided something equally flexible, equally expressive, easier to use,
and overrun-safe: the linked list.
(2) How many decades: I would say aleph-null of them.
Functional programming is a great thing, partly, as you say, because
it's thread-safe and more generally bug-resistant. But for many
tasks, stateful OOP is more natural: simulations, window systems, etc.
One of the things I admire in Scheme is that it isn't rigid about
how to program.
> After all, only nice people use Scheme, right?
I will confess to believing that Scheme users are smarter than average. :-)
I don't have any evidence one way or the other about niceness.
> Say that I write software for
> *your* bank, and I do that in Scheme -- it's a wonderful system that
> is immediately successful, and I open it up for 3rd-party plugins.
> Would you be happy to know that my API passes on your bank account as
> a structure made of mutable pairs to these plugins?
I don't want my bank to open my account to third party plugins no matter
how bulletproof the software is! It's the intended reasons for such
sharing that scare me, not bugs in the code.
I am one of those people who'll never have a Facebook account, and it's
not because I don't trust the technical merit of their code.
And I'll be just as happy if they never use Scheme for missile-launching
software, thank you.
> (ML and Prolog are not pure. The combination of the ML, the Prolog,
> and the Haskell communities is likely bigger than the Lisp community.
> I can't guess what the ratio is, but there are most definitely much
> more than "a tenth of the usership of Lisp".)
I admit I don't have statistics about this, but are you including
elisp programmers in your count? If I'm wrong about this, great -- you
can build a community around one of those languages.
> One straitjacket that I don't want to be forced to wear is the huge
> amount of work I have to do to get robust code written when pairs are
> mutable. Another straitjacket I don't want to wear is the illusion
> that "assuming the list doesn't change" is good enough for real code.
> I want Scheme to allow me to be free of these things, not some chaotic
> "here's a cpu and some wires, you can do whatever you want with it
> now" thing.
Oh, please. This is really dishonest rhetoric. "Straitjacket" doesn't mean
"anything I disagree with." It means someone telling me that the thing I want
to do isn't good for me, and eviscerating my toolkit to make it hard for me to
do it. You find it easier to write robust code when pairs aren't mutated?
Great! You absolutely have my permission never to mutate pairs in your code.
I promise never to design a language feature /for the purpose of/ making it
hard for you to program in your preferred style.
Bottom line: You think you have a better idea about how to design a
programming language. You've even built one. Great! But why do you
have to destroy Scheme for me? Let me have Scheme, and you have Ratchet,
and 100 years from now we can get together and compare notes.
Scheme-reports mailing list