Re: Perl Doesn't Suck

2001-06-30 Thread Michael G Schwern

On Fri, Jun 29, 2001 at 05:29:53PM -0500, Elaine -HFB- Ashton wrote:
 Not all OS, though most, have Perl in the base install and those that do
 even have problems. Config.pm has issues on HP and Sun, RedHat has spotty
 RPMs that occsaionally go awry. 

That's their fault.  Find a better distribution.


 *Then again, even for big things like Tk or LWP, I've found perl's
 *installation process to be at least more consistent.  perl Makefile.PL
 * make test  make install will just about do it.  By contract, I've
 *had to install the JMF under Linux.  HOoboy, that was a mess.  All
 *sorts of little hard-coded paths and config options to tweak and
 *jigger, copying things around by hand.  Unpleasent.  I'd imagine it
 *would be easier to do on Solaris, but that doesn't help me.
 
 Well, call your Linux support and ask for them to make it better/easier to
 install Java on Linux. Sun isn't going to do it for the other platforms I
 would imagine.

Well, see there's the trick.  Sun (and thus Java) cares about Solaris
and Windows.  Everyone else has to fend for themselves.  To make
matters worse, its very difficult to get your hands on the JVM source
code, so its not like I can even fix it.  With Perl, I can at least
fix it myself and roll it back into the core.  Its the old Open vs
Closed Source argument.

As a Solaris gal, this might all seem perfectly sensible.  Myself, I'm
doubly screwed running Linux (which is not Windows or Solaris) on a
PowerPC (which is not Intel or Sparc).  Sun might have perfectly valid
business reasons for concentrating on Solaris and Windows, but in the
end it still means I'm screwed.

With Perl, if you're running some fucked up OS on some fucked up
hardware we'll at least give it our best shot to get it working.  If
you figure out how to get it working, we'll do what we can to roll it
into the core (mod a little p5p squabbling).


 The one time I did have an issue with a Java package I had
 an engineer issue a patch within the day...and he was awakened at 4am.

Did Sun do this out of the goodness of their heart or did you have
commercial support?

Given that Sun charges $200 per incident for a two day response time
($1600 for four hour reponse) this is not something most people can
afford.  Expensive, commercial support, while it is nice for those who
can afford it, is not a general solution.

 
 *But yes, module installation can be made easier.  We're working on it.
 
 No, module installation isn't hard and wasn't what I was driving at.
 Enterprise wide deployment. Make it easy to install and deploy perl across
 5k boxes in a farm and you'll have a winner. :)

With Debian I just make dpkgs (or use the Debian ones), stick them
into a local repository and sync normally from there.  Most OS's have
a similar packaging system.  Otherwise, you can use CPAN::Site to set
up a local CPAN repository which overlays your own.  Or you can set up
your own local CPAN mirror of approved modules.  After that its all
cron jobs.

Making it easier to do those last two is a good way to go.  That an
Ingy's NAPC idea.  Like I said, we're working on it.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Only mindless violence can raise my spirits now!



Re: Perl Doesn't Suck

2001-06-30 Thread schwern

On Sat, Jun 30, 2001 at 11:57:42AM -0500, Elaine -HFB- Ashton wrote:
 If Java sucks to install on some boutique/niche platforms it
 could mean that a) noone has told them about the issues

I can't even conceive they're not accutely aware.

 b) noone in the FreeBSD/Linux world has taken it upon themselves to
 care enough to love it and see it through to make it work.

I think its c) WE HAVE NO SOURCE TO WORK FROM!

Sun doesn't give out its JDK source code freely, they have all sorts
of restrictions.  If I wanted to port the JDK I can do it, but I need
special permission from Sun to distribute it.  This Sucks.  Especially
considering that you could go through a whole lot of work and then
have Sun deny you.

Some are trying from scratch, a truly masive undertaking given that
the current JDK is 20 megs *compressed*.  Hungry Hackers has Japhar
which is a 1.1.5 JDK and there are others, but it all lags behind.

If Sun really wanted to help porters, they could release the JDK
source code Freely.  They won't.  Do not blame the Open Source guys
for lack of effort.


 Where would Perl on VMS be without Peter Prymmer? etc?

White Knights are necessary, but Peter Prymmer did not have to rebuild
perl from scratch.  Being an OS Knight isn't an easy job, but we don't
throw roadblocks in their way.  Some of us have been bending over
backwards to help.

Guys like Hungry Hackers have 0 help from Sun.  All they've got is a
spec.


 The issue behind platform selection and support is that since Sun is a
 company out to make money
snip

That's all prefectly valid.  It still means Java doesn't work well on
my machine.


 Java has no platform angels in the corporation or out in the field most
 likely.

Hungry Hackers and Blackdown are two off the top of my head.
Blackdown is in a special position in that Sun has granted them
permission to use the JDK source code, but nobody else can see it.

If I don't have the source code, how am I supposed to fix anything?  I
can patch something and send it off to Sun, sure, but let's think
about a full platform port...

Let's say Peter Prymmer decides he wants to port the JDK to VMS (God
Help Us ALL).  What's his course of action.

0)  Consult a psychiatrist.
1)  Joins the Sun Developer Community
2)  Download a copy of the JDK
3..100)  Goes through a massive amount of work to get it working under VMS
101)  Trumphantly sends the patches off to Sun.
102a)  Sun sets Peter up with a Blackdown-like deal allowing him to
   distribute his port.
**OR**
102b)  Sun thanks Peter for his time but isn't going to trouble itself with
   VMS.
**OR**
102c)  Sun thanks Peter for his time, but doesn't feel the port is good
   enough to be blessed.

Its that last bit of fuzziness at the end.  You could go through
 that work and still be denied at the end.  At least, that's
how I'm reading their license.

The other problem is steps 3 to 100 must be done in a relative vacuum.
I don't believe he'd be allowed to redistribute his patches, so no
vmsjava mailing list or community of developers to work with.  Of
course, he could ask permission from Sun beforehand, but again, this
all relies on the good will of Sun (and them trusting Peter, who could
be some schmo for all they know).

Perhaps more importantly than all this, the spontaneity is lost.  I
know of many, many porting projects which started out with one guy
saying Gee, I wish X worked on my OS and in a flurry of wild
patching something is made to work in a few hours/days.  Not perfect,
but enough to get the snowball rolling.

Finally, if the core developers (ie. Sun engineers) are unconcerned
with your OS, they're going to keep cranking out platform specific
code which you're going to have to keep patching over and over again.
At least with perl we've got things like Windows and VMS in the back
of our heads when making core patches (and if we don't we'll have
Peter BEATING the backs of our heads ;) Thinks either work out of the
box or are caught very early on.  None of this ports lagging behind a
few versions while they fix everything up.


Anyhow, this is just the old Open vs Closed source debates rehashed.
Except s/Closed/Community License/


-- 
Michael G Schwern   [EMAIL PROTECTED]   http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One



Re: [OT] Re: Perl Doesn't Suck

2001-06-30 Thread schwern

On Sat, Jun 30, 2001 at 01:49:45PM -0700, Stephen Zander wrote:
 Perl's great blessing is also it's great curse; there's a single
 implementation and that *implementation* happens to be OpenSource.
 Try writing a second Perl implementation from scratch.

Fortunately, we don't have to. :)

Perl 6 should have a more fathomable design, or at least better
documented.  I don't think it'll ever reach the sort of standards that
things like Java and C++ have.  Then again, have you LOOKED at the
ANSI C++ standard? ;)


 Were something dreadful to happen to Larry and his estate chose to
 change the licensing terms of the current *implementation*

In that Highly Unlikely event, we can simply fork off the source code
from the point where the license changed.  License changes are not
retroactive.  The only restriction is we couldn't call it 'perl' under
the AL.

I don't think such a thing has ever happened to a major Open Source
project, this doesn't worry me.  The license squabbling between the
various BSD's is similar, but they're all still Open.


 where would Perl6 go? 

Same place its going right now, as there's no code. :)


-- 
Michael G Schwern   [EMAIL PROTECTED]   http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One



Re: Perl Doesn't Suck

2001-06-29 Thread Michael G Schwern

On Fri, Jun 29, 2001 at 06:51:33PM -0500, Elaine -HFB- Ashton wrote:
 *That's their fault.  Find a better distribution.
 
 There are a lot of Solaris 8 users out there and to have a broken OEM Perl
 is not optimal. That response would not be well received.

If insert vendor name here distributes a broken Perl with insert OS
name here, what are we to do about it?


 Well, Sun has worked with other major OS vendors to make Java work
 properly so I don't know what the issues are behind Linux and *BSD not
 doing the same.
wonderful reasons why Sun only supports certain OS's snipped

That's all lovely, I still don't have a recent version of Java on my
machine.  I don't expect this situation to really be fixed anytime
soon.


 *As a Solaris gal, this might all seem perfectly sensible.  Myself, I'm
 *doubly screwed running Linux (which is not Windows or Solaris) on a
 *PowerPC (which is not Intel or Sparc).  Sun might have perfectly valid
 *business reasons for concentrating on Solaris and Windows, but in the
 *end it still means I'm screwed.
 
 There are platforms which are also difficult to install Perl though it has
 gotten better over the years. I remember when I first installed or rather
 tried to install perl5 on Solaris when it first came outit was a PITA
 to say the least. 
 
 P5P was conceived for just this task to make Perl install and run on a
 wide variety of platforms since, at the time, the number was few.
 
 Nothing installs perfectly on every OS and runs perfectly as well. 
 It such a thing exists, I'll buy stock in the company right now :)

Yeah, but Perl does an amazing job of trying.  About the only thing I
can think that's been so well ported is maybe something like gcc, vi
or make.  It runs on the Amiga!  It supports EBCDIC for god's sake!

I think the key difference here is that p5p is committed to trying
like hell to get Perl working on pretty much everything, while Sun is
only doing the ones it thinks are important and leaving the rest to
independent porting operations it gives its blessing, and source code,
to (like Blackdown).

Yes, you still need a White Knight for your OS, yes things take time
to firm up, yes its not perfect, but we're trying and succeeding.  Sun
isn't even trying.  

Java's been around long enough and sure as hell has had enough
resources poured into it.  If they really wanted Java to be truely
cross-platform, they'd have done it by now.  They don't care.  That's
fine as a business, but like I said, whatever the reason the end-users
are still fucked.


 *Given that Sun charges $200 per incident for a two day response time
 *($1600 for four hour reponse) this is not something most people can
 *afford.  Expensive, commercial support, while it is nice for those who
 *can afford it, is not a general solution.
 
 When you have web sties that loose millions of dollars per hour of down
 time it's not an option not to have support. Sun is a business, Perl is
 not. People don't answer pagers at 4am for free :)

You misread.  Commercial support is entirely necessary and justifiable
in your case and many others.  It must exist.  However, you can't hold
it up as a good general solution.

Advocating, When I had a problem, Sun fixed it right away
mumblebecause I pay them lots of money/mumble is cheating.  Take
any technology, apply lots of money, and it will work wonderfully.


 It would be neat to have 'make solaris-dist' or something like that
 for most of the major platforms.
...
 NAPC sounds cool but I don't know enough about it to say whether or not it
 will be Enterprise level.

Given that Enterprise has pretty much no meaning anymore, I'd say
yes. :)

Seriously though, NAPC (if it works) is exactly the sort of packaging
tool you're looking for.  Since NAPC will produce, essentially, a
binary package, you can just translate that into a solaris package.


Anyhow, I think we've beaten this topic to death.  Point is, Perl's
installation isn't any worse than Java and possibly better.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Schwern Unit:  a positive but insignificant quantity



Re: Perl, the new generation

2001-05-18 Thread Michael G Schwern

On Fri, May 18, 2001 at 11:24:45AM -0400, Stephen P. Potter wrote:
 You are also saying that OOP is now required, because many/most CPAN
 modules use OOP.

This is a piece of FUD along the lines of inline POD slows code down
that keeps people fearful of CPAN and I'd really rather see die.  To
*use* OO code is a much different (and smaller) beast than *designing*
OO code.

For most OO CPAN modules, about all you need to know about OO is the
syntax of calling a method.  This should be obvious just from reading
the module docs (assuming its well-documented).  In all other respects
it works just like its functional equivelent.  There are exceptions
(such as LWP) but most have simple wrappers (LWP::Simple) and who's to
say their function-oriented equivalents would be any less complex?

Sean Burke wrote up an excellent article about OO for module users
which I thought was on perl.com but I can't find at the moment.  Maybe
it was in TPJ.

-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Follow me to certain death!
http://www.unamerican.com/



Re: Perl, the new generation

2001-05-18 Thread Michael G Schwern

On Fri, May 18, 2001 at 12:22:56PM -0400, Stephen P. Potter wrote:
 For example, take a look at Camel1.  It was a small book; you could carry
 it around without building up huge biceps.  You could reasonable read it in
 a couple of days and get started with perl.  I tried to get us to maintain
 that in Camel2, but it grew to almost 700 pages.  Camel3 is 1100 pages,
 about a 3 fold increase from Camel1.  I can weightlift with it now.
 Someone looking at that is going to think they have to know all that to be
 effective.

Programming Perl is a reference manual.  It is designed to cover the
whole of the language in detail.  It will be large.  Learning Perl
is the tutorial.  It is designed to cover just the basics.  It will be
small.  Trying to learn Perl from the Camel is like trying to learn
English from the OED.

Trying to make Perl easier to learn by cutting features is about as
sensible as making English easier to learn by tearing pages out of the
OED.  The size of the language has little to do with its difficulty,
its more about the minimum subset that must be learned to be useful
(the *actual* subset, not the perceived).

In fact, the Llama 2 (written for 5.004) doesn't cover much of perl5
at all.  I don't think it ever mentions OO or references except in
passing.  Llama 3 should be much the same.

What you are worried about is not a language issue, it is a perception
and DOCUMENTATION issue.  Please stop throwing your wooden shoes in
the cogs of progress and start helping.  Go to [EMAIL PROTECTED],
start up a perlsmall man page.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
How can I stoop so low?  Years of practise, that's how. It's been hard
going but now I can stoop lower than a pygmy limbo dancer.
-- BOFH



Re: Perl, the new generation

2001-05-17 Thread Michael G Schwern

On Wed, May 16, 2001 at 11:58:07AM -0400, Adam Turoff wrote:
 It's not so much that Perl shouldn't have data structures or modules.
 I think what Stephen is saying (and he's not the only one) is that
 the bare minimum amount of Perl you *must* know to be productive
 is increasing.  Either that, or we're giving the impression that
 it's increasing.

This may have gotten lost in the noise, so I'll mention it again.
Since all the features of perl4 are still in perl5 (mod a few minor
differences) it should still be possible to teach perl5 as you did
perl4, as a small utility language/shell scripting replacement.
Simply ignore anything that might get in the way of someone just
wanting to read a log file.

We could provide a seperate man page (perlsmall?) which describes this
mini-language-within-a-language.  It would skip things like OO (or
only as much as you need to use the occasional CPAN module), Unicode,
odd syntax details, etc... and focus on things like basic regexes,
string and file handling, basic data structures, map, grep, etc...

In fact, you could start with the perl4 man page (or Camel/Llama 1) as
the basis.

Seems a lot more productive than just pining about the olden days when
men were men, Perl was small and 640K was enough for anyone.

-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
...and I pull out the Magnum from under the desk where I keep it in case
someone laughs at a joke that's so dry it's got a built in
water-fountain, and blow the lot of them away as a community Service.
-- BOFH



perlsmall (was Re: Perl, the new generation)

2001-05-15 Thread Michael G Schwern

On Tue, May 15, 2001 at 03:01:47PM -0400, Stephen P. Potter wrote:
 It seems to me that recently (the last two years or so) and especially with
 6, perl is no longer the SAs friend.  It is no longer a fun litle language
 that can be easily used to hack out solutions to problems.

See, I have a basic problem with this.  Whatever you were doing with
perl4 ten years ago, you can still do with perl 5.6.1 (mod a few minor
differences) by simply ignoring all the new features.  Perl can be
taught/learned as a small, fun language (where 'fun' is a highly
relative term).  In fact, there's an O'Reilly book out just for that
purpose, Perl For System Administration.

While there are arguments about unnecessary language bloat and what
should be in the core and what should be relegated to modules (see
also, Second System Effect) if you take this too far you wind up with
a Luddite philosophy to language design.  I don't need feature X, so
neither does anyone else!

There's little need for a language fork.  The simple things will
remain simple (and hopefully simpler) and the hard things will remain
possible (and hopefully a bit more possible).


Perhaps instead of proposing a fork, you could write up a new man
page, perlsmall or something, describing just those useful
features of Perl as a small utility language (enhanced shell
scripting) and ignoring the useless stuff like OO and threads.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Let's enjoy the traditional custom in Peru of getting leprosy.



SECOND SYSTEM EFFECT!

2001-05-14 Thread Michael G Schwern

I'm covered in software engineering books at the moment writing up
conference stuff and I happened to crack open a copy of The Mythical
Man-Month and felt I should remind everyone about the...

-- *** SECOND   SYSTEM   EFFECT *** --

which I'm sure we all know about but sometimes forget.

The general tendency is to over-design the second system, using all
 the ideas and frills that were cautiously sidetracked on the first
 one.  The result ... is a 'big pile'.
-- Fred Brooks Jr, The Mythical Man-Month p 55

This isn't attached to any particular discussion going on at the
moment, I just thought it should be shouted loudly every once in a
while over the course of Perl 6's design to keep everyone on their
toes.  I'd recommend everyone who has a copy to just skim through
chapter 5 of MM-M once again.


PS Someone's going to argue that Perl 6 isn't a second system, its
the Nth system.  The exact value of N doesn't really matter, we're
still very much in danger of the second system effect.

-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
How can I stoop so low?  Years of practise, that's how. It's been hard
going but now I can stoop lower than a pygmy limbo dancer.
-- BOFH



Re: You will not have to rewrite your Perl 5 programs!

2001-05-11 Thread Michael G Schwern

On some date someone wrote:
 : option in (say) perl5.8 which would allow folk to find typeglobs etc,
 : and adjust code in advance.

It should be possible to do most of this externally as a B module.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Do not try comedy at home!  Milk  Cheese are advanced experts!  Attempts at
comedy can be dangerously unfunny!



Re: Perl, the new generation

2001-05-10 Thread Michael G Schwern

On Thu, May 10, 2001 at 12:56:36PM -0400, David Grove wrote:
 Of course your Perl 5 programs will still work, as long as you
 convert them to Perl 6. We'll have a parser that will be able to do
 this. Of course, you will have to write it yourself.

I think there's a communications foul-up here.  We're definately
providing some sort of Perl 5 translator/adaptor system and we're
definately writing it.  In fact, it was hotly debated on
perl6-language just recently exactly how to do it cleanly.

Have I missed something?  Have you missed something?


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
mendel ScHWeRnsChweRNsChWErN   SchweRN  SCHWErNSChwERnsCHwERN
  sChWErn  ScHWeRn  schweRn   sCHWErN   schWeRnscHWeRN 
   SchWeRN  scHWErn SchwErn   scHWErn   ScHweRN   sChwern  
scHWerNscHWeRn   scHWerNScHwerN   SChWeRN scHWeRn  
SchwERNschwERnSCHwern  sCHWErN   SCHWErN   sChWeRn 



Re: Perl, the new generation

2001-05-10 Thread Michael G Schwern

On Thu, May 10, 2001 at 11:55:36AM -0700, Larry Wall wrote:
 If you talk that way, people are going to start believing it.  The
 typical Perl 6 program is not going to look very different from the
 typical Perl 5 program.  The danger of us continually talking about
 the things we want to change is that people will forget to notice the
 tremendous amount of stuff that we aren't changing.

It might be useful to draw up a list of functions and features which
we don't plan on changing?  Maybe just run through each Perl 5 man
page and highlight everything that will still be the same and post
this somewhere?

-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
The desired effect is what you get when you improve your interplanetary 
funksmanship.



Re: Perl, the new generation

2001-05-10 Thread Michael G Schwern

On Thu, May 10, 2001 at 04:41:09PM -0400, David Grove wrote:
 My information on this comes from discussion (asking directly) in undernet
 #linux. If this is in error, tell it to them.

An IRC channel, in ERROR?!  On Undernet no less?!  THE DEUCE YOU SAY!! ;)

Next thing you're going to tell me the commentary on Slashdot isn't
totally impartial!


  Debian? They're not commercial, but they're still a pretty big OS distro;
 
 What? You mean they're actually accepting it a year and a half later in a
 testing version?

Debian is historically slow to release 'stable' distributions.  The
current 'testing' branch has been going on for quite some time.


 FreeBSD comes to mind, among others.

FreeBSD is also historically *very* slow about upgrading perl.  They
were one of the last hold-outs to upgrading /usr/bin/perl from perl4.


Please stop.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
purl Hey, Schwern!  THERE IS A HUGE GAZORGANSPLATTEDFARTMONGERING-
LIGHTENINGBEASTASAURSOPOD BEHIND YOU!  RUN, BEFORE IT GAFLUMMOXES YOUR
INNARDLYBITS!



You will not have to rewrite your Perl 5 programs!

2001-05-10 Thread Michael G Schwern

I'd just like to make this abundantly clear, since there seems to be
some confusion (and hopefully I'm not the one confused).


*** You will NOT have to rewrite your Perl 5 programs ***


Perl 6 *will* provide a backwards compatible Perl 5 parser.  The
details are not nailed down, but this definately will happen.

   I hereby declare that a package declaration at the front of a file
   unambiguously indicates you are parsing Perl 5 code. If you want to
   write a Perl 6 module or class, it'll start with the keyword module or
   class.
-- Larry Wall, Apocolypse 1

And yes, there will be something for programs as well.

For further details, see:
http:[EMAIL PROTECTED]/msg00285.html


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Let me check my notes...



Traffic lights and language design

2001-05-04 Thread Michael G Schwern
needs a few extra lights here and there to make it really work).


Yep, my brain is done with this.


-- 

Michael G. Schwern   [EMAIL PROTECTED]http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One
Any sufficiently encapsulated hack is no longer a hack.



Re: ANNOUNCE: smokers@perl.org Discussion of perl's daily build and smoke test

2001-02-19 Thread schwern

No.  This is silly.  End of discussion.

PS  I'm also an active non-smoker.

-- 
Michael G Schwern   [EMAIL PROTECTED]   http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One



ANNOUNCE: smokers@perl.org Discussion of perl's daily build and smoke test

2001-02-18 Thread schwern

If anyone's not familiar, a daily build and smoke test is the practice
of building the entire system and running its tests every night to see
if anything was broken durning the day's work.  Turn it on, see if it
smokes.  This reduces the scope of bugs and keeps things from
festering.  You know the bug was caused within the last day.

[EMAIL PROTECTED] is our smoking lounge.  Its where people can
volunteer machines and clock ticks for running the test, ask for
infomration about getting involved, report failures and discuss how to
run the test better.

If you've got a machine with some spare CPU ticks, and RC5 has gotten
old, step forward.  The weirder the setup the better.

Subscribe to [EMAIL PROTECTED] (or [EMAIL PROTECTED]
for help).  Archive is at http:[EMAIL PROTECTED]/


-- 
Michael G Schwern   [EMAIL PROTECTED]   http://www.pobox.com/~schwern/
Perl6 Quality Assurance [EMAIL PROTECTED]   Kwalitee Is Job One




Re: Perl-QA needs administrative help

2001-02-15 Thread schwern

Sorry, I didn't make myself clear on the "mailing list organization" bit.

What the job really is, someone to spot out-of-control threads (for
instance, the "par" discussion on perl6-language), split off a new
mailing list for it (by requesting from Ask), appointing a chair
(probably the person who's driving the thread) and then corral
everyone there.  As a current example, the "todo tests" discussion
should probably be split.

It also involves nudging off-topic conversations off-list.



RFC - Prototype RFC Implementations - Seperating the men from the boys.

2000-09-10 Thread Michael G Schwern

I've an idea to cut down and weed out the huge number of RFCs we have.
Its written out below.


=pod

=head1 TITLE

Prototype implementations for RFCs.


=head1 VERSION

Maintainer: Michael G Schwern [EMAIL PROTECTED]
Date:   Mon Sep  4 21:11:56 EDT 2000
Version:1
Mailing List:   [EMAIL PROTECTED]


=head1 ABSTRACT

RFCs should be followed by a prototype implementation of their
proposal which provides something concrete to develop the RFC from and
helps to avoid endless discussion.


=head1 DESCRIPTION

Its very easy and quick to write an RFC.  Its often quite a bit harder
to actually do what is proposed.  There is also a tendency for endless
discussions to come from them.

In order to avoid the inertia inherent in the Perl development
process, to discourage RFCs which have not been well thought out, and
to cut down on the sheer number, it is proposed that each RFC should
eventually be accompanyed by a prototype implementation before any
decision to include it in Perl 6.

Work on such an implementation will rapidly weed out those who wish to
work on the proposal and those who wish to simply talk about it.  If a
person has strong feelings about an RFC or a particular feature of an
RFC, their energies can be directed at working on the prototype rather
replying to emails about the RFC.  One who's opinion is backed up by a
well implemented patch will carry more weight than one who merely
proposes something without code.  In effect, it restores the
meritocracy of open source development.

The prototype will allow people to actually work with the proposal,
coding with and around it in a practical setting.  Many things will be
revealed during this process, and many issues which were never thought
about will come up.

It also allows documentation and testing cases to be drawn up
Bbefore any code is added to Perl 6.

In some cases, the prototype may work out so well that a core patch is
not necessary.  The prototype would become the implementation,
possibly released to CPAN and/or distrubuted with Perl.

It is, of course, expected that prototypes may be slower, less
portable and more buggy than their eventual complete implementation.
It is, after all, a prototype.  It doesn't have to be perfect or
complete, but it does have to give it a good try.

Many existing RFCs are very deficient in their discussion of its
implementation.  The most common reasons given are either "This should
be trivial" or "I an not a Perl core hacker".

For the former case, if the implementation is so trivial, the
prototype should also be trivial.  If that turns out not to be the
case, then maybe the RFC wasn't as trivial as originally thought.
Provides a good check.

In latter case, if the RFC author does not have the necessary time,
manpower, brainpower, etc... to implement the RFC then it is their
responsibility to find someone who does.  This also holds true for the
prototype.  If the RFC author feels they cannot implement the
prototype on their own, they must find people who can.  If they can't,
then they're not going to be able to find those to implement the
actual code either.


=head2 Weeding out dead RFCs.

An RFC which goes for a period without a prototype, or without any
patches to its existing prototype, will be considered "dead in the
water."  After sending out warnings to the maintainer to get things
moving and giving a grace period, the RFC will be moved out of the
main RFC archive and into an attic.

One the RFC begins motion again, the maintainer can ask to have it
reinstanted into the archive.

Two special cases exist.  An RFC for which no prototype can be written
(RFC 16, for example) and an RFC which considers its prototype to be
complete.  A complete prototype must not only be feature complete, but
it must also contain complete documentation and a complete testing
suite.


=head1 IMPLEMENTATION

Prototypes can be written as modules, wrapper scripts around Perl 5,
Filter.pm modules, Perl5 core patches, etc...  Not every RFC can have
a prototype, nor can every feature be implemented, but this is the
exception rather than the rule.

This will require the Perl 6 code repository to be set up eariler than
expected.

The RFC archive will have to be expanded to include a link-up between
the RFC and its latest prototype.  It will also require the RFC
librarian to weed out RFCs which have languished for long periods with
no prototype.

The RFC maintainer will also be the build maintainer of their
particular prototype.  They ultimately decide which patches go into
the main branch of the code.  Rival implementations may be maintained
as branches by their chief supporter.


=head1 EXAMPLES

Some examples of RFCs which can have prototypes and that which are exempt.

=over 4

=item RFC 1 - Implementation of Threads in Perl

This RFC's scope is so wide as to necessitate a complete rewrite of
Perl.  It would be exempt from a prototype.

=item RFC 5 - Multiline Comments for Perl

This ca

Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 01:49:36PM -0400, Peter Allen wrote:
 They have a catchy slogan for it.  They call it the
 
test  --  code  --  design
 
 development cycle.

That sounds bad.  I've heard about this style.  Code now, refactor
later.  Its supposed to avoid the need for sweeping architectural
decisions early in the project, allow you to recover from bad design
decisions and return flexibilty to old code.

It may be good for rapid development projects, but I don't think we
should apply it to Perl.  We have a very good idea of what our
requirements are (especially compared to most software out there), a
solid prototype to work from (perl 5), and some very solid ideas of
what the architecture should be.  Furthermore, I don't think there are
any refactoring tools for C.  I've only heard of them for Java and
Smalltalk (maybe C++).


 Of course, the design phase is characterized exclusively as
 'refactoring'...

For the record...

"Refactoring" is only one tool used in that design philosophy.
Unfortunately, its apporaching buzzword status lately and the
test-code-design approach you mentioned and the technique of
refactoring are kind of ooozing together in the public's perceptions.
I'd like to point out that they are seperate entities.

Refactoring is simply the automated alteration of code without
effecting its purpose.  A simple example would be reversing the order
of arguments in a subroutine.  A refactoring tool would be able to do
this for you automatically and in all code which uses that subroutine.
Handy.  It does this by defining a set of simple operations which a
refactoring tool must be able to perform.  From those simple
operations, it can do much more complicated things.

Unfortunately, Perl's dynamic nature makes most refactoring
impossible.  Furthermore, refactoring loses much of its power when
applied on Open Source libraries since you are no longer in control of
all code which uses said library.  In a controled environment, you can
alter interfaces to your heart's content.  With Open Source, if you
alter a function's interface you may break the code of hundreds of
programs.

Still, it has its uses and can be helpful in localized parts of the
code.  I've been going through the catalog of refactorings and trying
to determine what can currently be done in Perl and how much change in
Perl it would take to reimplement the rest.  It doesn't look good, but
I'll publish what I've got once its complete.


Martin Fowler wrote a book "Refactoring: Improving the Design of
Existing Code"
http://www.refactoring.com/

Bill Opdyke's original thesis paper on the subject is here
ftp://st.cs.uiuc.edu/pub/papers/refactoring/


 Also, don't you want to refer more to 'unit tests', rather than
 regression testing
snip

They could be called "Mr. Wosabe tests" for all I care. Terminology
was never my strong point (above rant is the rare occasion). :)

-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
Work like hell, tell everyone everything you know, close a deal with
a handshake, and have fun.
-- Harold "Doc" Edgerton