in reply to How much is Perl6 the community rewrite of Perl?

Don't imagine that because Larry plays a big part in the community that it isn't a community effort. There is no hard delineation between one man's work and a community's work unless that one man does it all on his own.

There are parts of language design that don't work very well as a pure democracy. Some things are done the best by a single mind. Some are done best by a small, tightly-bound committee. Some are suitable and even helped by wide and varied points of view. Those groups of tasks are best done by the part of the community to which they are best suited.

Things like RFCs, testing, asking good questions, making suggestions about possible oversights or killer features, and generally providing multiple points of view are great tasks for a community at large. Implementing the well-specified designs and setting up the standard test suites are good jobs for more dedicated community members.

Things like hashing out the details of the design and implementing the core in an internally consistent way are good jobs for a smaller group within the community. Providing a coherent overall design with the flavor of Perl is a good job for Larry, although he was initially hoping some other people could pull it off.

I've never yet seen a community project in which everyone put in perfectly equal effort and won perfectly equal results for the group with those efforts. Some people are more suited to certain work. Some people put in more effort. Some people are just in a better situation at the right moments to make a significant contribution. This is true in raising funds for a charity, selling cars in a dealership, or developing software. Some people will work harder. Some people will do more. Those two are strongly correlated, but one is not always a proportionate reflection of the other.

To present Larry's work and the community's work as some sort of dichotomy I think misses the point. Larry is himself a part of the community, albeit a very central and important part. He even takes the time when he has a chance to talk to people about Perl 6 (and many other topics) who've had little or nothing to do with its development.

Larry could have written something from scratch by himself in his little free time and called it Perl 6. He has more than earned the right to call his language designs Perl, after all. Yet he has a group of people working closely with him in public view. There is a larger group working a little less closely, and an even larger group working around the fringes. I've never seen a functional community over the size of about five people in which every member contributed to every decision and bit of work. Why should Perl be any different?

  • Comment on Re: How much is Perl6 the community rewrite of Perl?

Replies are listed 'Best First'.
Re^2: How much is Perl6 the community rewrite of Perl?
by zby (Vicar) on Jan 05, 2009 at 16:30 UTC
    Hmm - OK. Maybe a better question would be - is there something new to learn about scaling Open Source projects from the Perl6 development effort? I understand that you say - that not much - it is just like any other Open Source project.
      Perhaps the most important lesson is the one that's mentioned several times in the thread already. Some tasks scale better to larger groups of people than others.

      As programmers, this should be somewhat intuitive. Certain tasks scale better to multiple threads or multiple processes than others. Loosely coupled problems are easier to do in parallel. Problems that are tightly coupled due to interdependency often require so much communication and coordination overhead as to be infeasible or inadvisable in broadly scaled implementations.

      Everything that is difficult about interdependency, communication, and coordination among some otherwise simple subroutines is compounded when you replace those bits with people. Coordination and communication between people is not so simple and constrained, and therefore the costs rise even faster.

      If you really want to be part of the core Perl 6 team, then all you have to do is earn your keep among them. This is much like what Eric S. Raymond calls "Meritocracy" -- everybody is given an equal chance democratically, but their contribution toward the goal is what gives them their final influence. Your share of the action is what you make of it.

      In fact, I'd say that if things were not this way, nothing would get done at all. Why hold back the progress being made by those willing and able to do the work waiting for input from people not willing and able to provide it?

        Hmm, maybe I should have used the word 'non-intuitive' instead of just 'new' in my question?