On Thu, Sep 9, 2010 at 8:15 PM, wren ng thornton <[email protected]> wrote:

> For the most part, yes. Though that also introduces problems. In
> particular, if you have strict by default with annotated laziness, then
> people will underutilize laziness which means you'll miss out on a lot
> of the compositionality that laziness provides....
>
> It's the Black Sheep principle of language design: if you make your
> syntax tell you something is abnormal, then people will treat it as
> abnormal.
>

Wren is entirely correct in his diagnosis, but I disagree with him on his
conclusions. Laziness is confusing and involves a singularly unnatural
evaluation model. Therefore, it *should* be a black sheep feature, to be
used only after due consideration and with appropriate trepidation.

This reflects a difference of philosophy about language design. Neither
position is inherently "right". The only thing that can be definitively
said, in my view, is that a language design should either wholly embrace
laziness or work hard to relegate it to third-class black-sheep usage.
Trying to establish a middle, straddling position doesn't support a coherent
or usable language.


> Meh. As a practicing Haskeller, my experience is that the performance
> characteristics aren't nearly as arcane as newcomers make them out to
> be....
>

Umm. Nothing personal, but this is a straight line that I simple cannot
resist...

As a practicing Haskeller, you've already decided that giving up a factor of
4x to 10x in performance is perfectly okay in the service of the Gods of
Abstraction, so discussions about performance of Haskell are pretty funny.

What I especially love about Haskell performance arguments is that they
invariably put a top-20 Haskell coder up against some piece of code written
by a run of the mill C programmer. Think about that.

> Traditional mainstream languages don't have the same kind
> of layering of HOFs, and so it isn't clear that they *don't* have
> similar reasoning difficulties; they've just been avoiding the hard
> problems. On the other hand Haskell encourages the rampant use of HOFs...

Well, that's certainly one interpretation. Another is that rampant use of
HOFS has become a self-sustaining form of intellectual masturbation, with
the compositionality metric being adopted as "good" largely because no
metric relating rampant use of HOFs to any pragmatically useful end result
seems to suggest itself.

That sounds more negative about compositionality than I really feel. I
actually think that compositionality is terribly important, and I don't
think that performance is the only important design goal. But I also think
that the pursuit of compositionality has become an end in its own right in
some parts of the PL community, and that along the way some of the
participants have lost sight of the fact that PLs exist to solve real-world
problems, and that PL problems per se aren't real-world problems unless they
serve that objective. Which means that the relative importance of
compositionality is very domain-dependent.

The pursuit of PL theory has resulted in a lot of good work and useful
outcomes. I'm pushing back because I feel that there is an urgent need to
re-establish low-level utility as a goal, if only so that we can reconcile
the progress in theory with the current state of the real-world problem
space.

But of course, if I didn't feel that way I wouldn't be doing BitC. And it
shouldn't be taken as a rejection of Wren's perspective. At the risk of
giving him less credit than I think he really deserves, Wren's advocacy
regularly forces me to re-examine my own assumptions about utility, and to
re-consider the right boundary lines in language design. That is
*incredibly* important and useful. I'm very grateful that he does this, and
also grateful that he is sometimes willing to educate me in spite of my
relative density.

To put it more bluntly: I'm not in the same league as Rich Hickey or Mark
Jones or Wren when it comes to language design. What I bring to the table is
a good end-to-end understanding of pragmatics with the ability to keep up
with those folks about 65% of the time. 85% when they are gracious enough to
hold my hand. Which isn't a bad characterization of what you want in someone
doing research transition.

But none of that's going to stop me from jerking Wren's chain when he hands
me an irresistable opportunity.:-)


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to