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
