[Pdx-pm] [meeting notes] What can we do about the low student SoC turn out?

Eric Wilhelm scratchcomputing at gmail.com
Fri Apr 11 12:56:31 PDT 2008

# from Kenneth A Skach
# on Friday 11 April 2008 10:14:

>But if we
>write only to the clique of well-versed perl masters who are "as smart
> as us", the rest of the audience won't benefit from our post.

I think this is a classic issue of diversity.  The Perl community has a 
lot of diversity both in mastery of the language and in specific 
domains or interests.

A sysadmin, a web developer, and a gui designer walk into a problem ...  
(end of joke is left as an exercise for the reader, but likely involves 
NFS, mysql, and dcop (or maybe regedit, SOAP, and ActiveX.))

> I do think we can consider our audience more.

Who is our audience?

The experienced user cannot correctly remember his own inexperienced 
point of view because the memory is filtered through experience.  Add 
to that the "beforehand" diversity of experience from elsewhere (e.g. 
assembly/C/Java, network/threads, etc) and you have a big pile of 
people capable of fluently talking past each other on a wide range of 
subjects and levels.

The involvement of the new user is helped by the contribution of the 
nearly-new user.  But if you don't see someone who appears to be one 
rung above you probably forgot to look left and right.  I think Perl is 
much more like an upside-down pyramid than a ladder -- well really, 
there aren't any sharp corners or well-defined insides and outsides so 
it is probably an oblique cone of trajectories within one sigma (or 
possibly a hypercone.)

That is:  I can't write for an audience without knowing (or imagining) 
their point of view.  This has another factor when discussing a mailing 
list (vs a meeting topic or article on a website) in that, on a mailing 
list, I'm not likely to write an answer to an un-asked question and I'm 
not likely to ask a question which I have already answered.

So, to generate some empathy (and entropy), let's take parrot for 

  1.  parrot will be a perl 6 interpreter
  2.  parrot is a multi-language dynamic virtual machine
  3.  parrot provides an object-oriented dynamic assembly language
  4.  parrot has tools for writing compilers and performing syntax
      tree transformation (or something like that)

I've listed those in the order which *I* understand them, and the 
likelyhood that I'm getting it wrong increases as we go.  But, even at 
#1, some readers might be thinking "'_a_ perl 6 interpreter'? are there 
more?" or "what is this 'will be'!? do not want vaporware!".

Well, for those who came to Perl after 2000, "the whole Perl 6 thing" 
has probably been filed under "call me when it is done" for various 
reasons.  But this is not apple, so we don't have a bunch of 
programmers in the back working on it while Larry just chooses the best 
of 10,000 black turtlenecks to wear to the unveiling.  It didn't work 
that way with Perl 5 either, but the best parallel is probably the 
1.0 - 5.0 (1987-1994) period (hmm, better ask someone who was there.)  
Except, a lot of what we know as "Perl" today is 5.6, which didn't get 
here until 2000.  The point here:  the Perl community needs the Perl 
community to care about parrot.  They also need to be patient, but they 
also need to get involved.

The tricky part:  parrot broadens the spectrum of diversity in multiple 
dimensions simultaneously.  It is not just about Perl 6, but also Perl 
5, lisp, php, tcl, python, smalltalk, lolcode, Perl 1, etc.  It is not 
a simple interpreter, but a vast landscape of compiler tools and a 
cross-language highly parallel dynamic runtime which is about to grow a 
tri-color garbage collector.  It has lots of interests ranging from the 
very academic to the very practical.

Ok, I barely understand most of that paragraph and half of it is 
probably wrong (or incomplete or partially correct.)  So why should I 
be thinking about parrot today and how do I even get started 
understanding what I can do with it which is not (personally perceived 
as) an exercise in futility and/or how do I define a personal goal 
which is fulfilling, visibly reachable on a scale of days or weeks, and 
fits my skills+interests within the time available?   That is, how do I 
get involved without losing my patience?  How do I keep it interesting, 
learn something, and not go insane?  Yes that is a difficult jumble of 
question.  (Likely more on this in another thread.)

So, that's what happens to me when I look at http://parrotcode.org.

Others might have the same difficulty approaching Moose, Catalyst, 
mod_perl, wxPerl, or even Perl in general.  The point is that you are 
probably not alone, and the only way to discover your virtual boatmates 
is to ask.  This is not a nice rectangular swimming pool with a deep 
end and a shallow end -- it is sometimes murky and usually random, with 
streams, waterfalls, icebergs, sinkholes, and various shark-infested 
puddles -- but you can surf the icebergs and drive your submarine up 
the waterfall if you want to learn how.

We have meetings once a month, and the topics are typically generated by 
the people who attend those meetings.  But I am always looking for new 
topics and new speakers.  If ten people who aren't currently coming to 
meetings told me that they would come given X or Y topic I would at 
least have something to go on.  If you can't make the meeting because 
of schedule, let's start some coffee groups, westside lunches or 
whatever.  I can read your Perl, but not your mind ;-)

Speak softly and carry a big carrot.

More information about the Pdx-pm-list mailing list