On Mon, May 16, 2011 at 10:33 PM, Timothy Washington <twash...@gmail.com> wrote:
> This is an interesting discussion. Rich Hickey and Steve Yegge recently
> weighed in on the Seajure discussion group (and later discussed on HN).
> Yegge basically takes Laszlo's position (clojure needs to start saying yes),
> while Hickey takes Nick's position.
>
> http://groups.google.com/group/seajure/msg/2d2ec7ac9f2b4713
> http://news.ycombinator.com/item?id=2466731
> https://groups.google.com/group/seajure/msg/daa02d326a9ec69a

After a cursory look at the first of these, I'd have to sympathize
with Hickey here.

Point 1: Yegge says "To get users, languages have to say Yes. You
can't ever say No."

This is a false dicohtomy. It's certainly possible to say Yes some of
the time, without saying Yes all of the time.

Point 2: Yegge says "You shouldn't force people to code in a certain
style -- and by 'force' I mean exerting cultural pressure by saying
things like 'If you would rather use Common Lisp, go ahead'".

But if Clojure starts accepting any randomly suggested features into
core (and particularly lots of mutable this, non-threadsafe that,
etc.) it will stop being Clojure and *become* Common Lisp, or
something more like it than like Clojure is now. And there's no point
in that. If you want a thread-unsafe, non-lazy, mutable Common Lisp
running on the JVM and calling Java libraries we already have Armed
Bear. Clojure must distinguish itself rather than be very like, but
incompatible with, an existing language if it is to survive. And so
far it has, but not if Yegge had his way.

But then there is a point that both sides have missed. Hickey says
this in response: "As far as 'languages have to say yes', I propose
the following thought experiment - YesLang. Each user of YesLang will
get a coupon entitling them to add or change one feature as their
needs require."

But each user of Clojure already has this coupon, and in a reusable
form. It's called "defmacro". If you want to significantly change or
add to Clojure, you can, even down to a pretty low level. If you want
other people to use your shiny new feature you can make your macro(s)
and supporting code available as a library -- though people may very
well choose not to use it. You can even implement your own reader, add
reader macros, and preprocess your code through that if you want to,
though nobody seems to bother, or fork the whole project, since it is
open source.

We also have:

> Technomancy has complained that...
>     > Many patches etc run afoul of that because they don't meet that
> standard.
>     The problem is not that they aren't applied, it's that they are ignored
> without discussion of their faults

If this is true, and the faults weren't so self-evident that they
didn't need any discussion, then we may have a problem. I'd need to
hear both sides of the story here though to judge, as I hope would
anyone in a stronger position to exert influence.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to