On Wed, Apr 30, 2008 at 07:29:58AM -0500, John M. Dlugosz wrote:
> I am listening.  I'm synthesizing and documenting.  I'm also disappointed 
> with the lack of feedback from Larry, considering the amount of effort and 
> time I'm putting into it.  But I'm sure he'll squawk if I say something 
> really off, rather than flesh out the existing skeleton.

Well, I mentioned before that I have very little bandwidth at the
moment, due to health and employment issues, plus needing to prepare
for a number of upcoming talks.  (Not to mention stealing time to hack
on the STD grammar and longest-token matcher.)  My only choice is to
operate in the bear-of-very-little-brain mode to see if any of this
will be remotely understandable to normal people.  I can tell you my
uncomfy spots, but I haven't the energy to defend them at the moment.

First some nitpicky things.

I don't like using ::?CLASS for something that is not a compile-time
constant.  The ? twigil is supposed to mean that, and that's why
we don't use ::?SELF anymore, but "self", because that can vary in
meaning dynamically.  So I'd rather have a keyword or a pseudo-package,
if it's needed.  Or a different twigil for generically instantiated
items, if it comes into common use, and gets applied to a variety
of names, neither of which is certain.  But ::CLASS would be an
improvement over ::?CLASS, if we reserve that pseudo-package.  Are
there other things that fall into the same twigilish category?  Or
can they all be found via ::CLASS?

I don't like the indentation style that makes the closing quote look
like part of the contents of a block.  You can do whatever you like
in your own papers, of course, but we've spent many years teaching
people in the Perl community to outdent their final curly so that
it means something, rather than hiding it on the end like it's an
embarrassing non-pythonism.  So you'll get better acceptance of any
standards document if you follow that community standard.

The £ seems rather gratuitous from a language design point of view.
Every such symbol in a paper increases the number of people whose eyes
glaze over when they try to read it.  I understand it's a placeholder,
but the current syntax can already express such a "like" constraint via:

    $dog where .like(Goat)

We could also have syntactic relief for such a concept by making "like"
work like "where" syntactically:

    $dog like Goat

On a more fundamental level, I wonder what the social ramifications
are.  First, to what extent is this something that will interfere
with people who don't want to learn higher-order typing in order
to get their job done, but will be forced to because one of their
cohorts is using it, or the boss mandates it?  And will Perl get
a Haskellian only-a-genius-can-use-it reputation because of that?
Second, is anybody actually going to implement it?  We're pretty short
of volunteers as it is, and I don't think I'm smart enough to do it,
and I'm very, very slow to put anything into Perl that I don't know
how to implement.

Basically, I'm not a types person, historically speaking, so I'm
naturally a bit skeptical.  But over the last few years I've seen some
of both the power and peril of strictly-typed FP.  I'm interested in
making sure Perl 6 is close enough to supporting any paradigm that
it can be warped into full support of that paradigm in any lexical
scope, but I'm leary of any paradigm that starts sucking in all the
other lexical scopes into its sphere of influence whether they like
it or not.  Compile-time typing tends to have that effect, and I'm
wondering how we avoid that problem.

> "isa" as a synonym for "is" that turns on warnings is documented at the end 
> of my paper under "Concepts discussed in this paper that are not on the 
> Synopses".

>From a language design point of view, having both "is" and "isa"
is a dreadfully powerful stink.  Either something need to be unified,
or something needs to be better distinguished.

> Nobody's objected to it. In this group, I'm preaching to the 
> choir anyway.  Everyone knows higher-order typing is the idea, and I'm just 
> trying to work out the ramifications and details that are in-tune with the 
> orthodox documentation and discussions here.

That's fine, but please don't mistake the general silence for anything
other than people's eyes glazing over.  If a fancy concept can't be
made easily understandable to the general public (or can't at least
be hidden from the general public beneath some cargo-cultable syntax),
it's not going into baseline Perl 6.  I can be pretty clever at times,
but right now I'm standing up for Joe Blow, who doesn't give a rip
about orthodoxy.  What's in it for him?

All that being said, I do like the fact that this whole effort is
exploring semantic niches that need to be fleshed out.  I wish I had
time to think through the Perlish answers to some of these good
questions.  I hope other people will continue to participate in
thrashing some of these things out.

Larry

Reply via email to