[racket] Poll: Does anybody besides Doug use 'plot'?

From: Eli Barzilay (eli at barzilay.org)
Date: Sat Oct 1 18:27:47 EDT 2011

Just now, Robby Findler wrote:
> Why is this work lessed by changing the name from plot to
> plot/compat?

Because of the name.  `compat' means "you're lucky that it works, if
something is broken, then just do the work and upgrade your code".
(Yes, I know that it doesn't mean just that, it's leaning more in that

> For the record, I complained about that. (And then later was bitten
> by it :)

OK, as someone who was bitten by the same (but wanted it), I'll make a
point from it: IIRC, the alternative was having a `web-server2', and
leaving `web-server' as the compatibility layer.  How much code has
changed as a result of *not* doing that?  IMO, that's making progress:
when you have to touch the file, you will often "just as well" just
use the new code instead of sticking to the compatibility stuff.
Having `web-server' stay the same in addition to a bunch of
`web-serverN' means more choice -- in a bad way.  (A point that was
discussed recently from a different angle: having too many options is
not always a good thing.  A point that is painfully obvious for any
iGadget user...)  In any case, it's more choice that also lets you
conveniently slip up and not update your code, which overall
translates to a bunch of additional work.  Worse, letting you go on
with unmodified code very often means that the code will not be
modified, and we get into the "dark side of compatibility" with some
ridiculously old code that is unlikely to ever be dropped.  (And I
won't get into the "size matters" meta-point.)

So obviously there is a line here: on one hand you put effort in
compatibility layers and have more stability and less innovation, and
on the other side you have changing libraries but of course more
innovation.  A good point to balance at is therefore an inherently
subjective point, and depends on the effort that the author wants to
invest.  To make it more fun, it also depends on factors like "how
much code is affected", "how important is that code", and "how easy it
is to update that code", and that's exactly why I'm saying that
generalizations are impossible and each case needs to be judged

In the current case of `plot', I think that all of the above
considerations are overwhelmingly pointing at an obvious side.  But
that's subjective, and different than what you think.  It's a pity
that it turned into such a pile of verbiage instead of being just a

(And that was yet another 400 words too many, so I'll shut up now.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.