Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

$50 towards a laptop for the winner

by perlfan (Vicar)
on Jul 28, 2020 at 05:14 UTC ( [id://11119879]=perlmeditation: print w/replies, xml ) Need Help??

I've come here again to make a suggestion to break up this OOP log jam.

Inspired by this bit of history (Chapter 7 intro) of Cozen's Perl 5 Internals tutorial:

In 1996, someone
* (I think it was Chip. Must check.)
announced a challenge - the first person to write a compiler suite for Perl would win a
laptop. Malcolm Beattie stepped up to the challenge, and won the laptop with his B
suite of modules. Many of these modules have now been brought into the Perl core as
standard modules.
I propose a similar offer be made for "OOP" in Perl. Here's how I envision it going:

  1. Perl inteligensia lock themselves in a dark, smokey room - not being allowed to leave until they generate a minimalfunperlish "spec" for OOP Perl.
  2. Said spec is published with the offer that the first person to publish a $WORKING CPAN module implement it (maybe to an agreed upon top level name space like O:: meant for other implementations) will win a laptop.
  3. Implementation also gets included in Perl core. (this avoids "15th competing standard" problem)
  4. Continue to encourage others to throw their own implementation under said official namespace or (better) work to improve the first one that is created that works.

Goals:

  • make it fun, build some excitement,bring everyone (or most everyone) back together
  • focus on a minimal spec mostly unconnected to silly implementation details
  • encourage participation and competition from everyone
  • make the weight of one's opinion on the matter comensurate with their actual code contributions
  • create a spec worthy of perl and all that is loved about it

What do I mean by minimal?

  • as simple as possible, but not simpler
  • won't prevent future phases or extensions
  • doesn't necessarily require much or any internals hacking
  • lets us Perl golf and doesn't constrain us to putt-putt

If we can get something like this going at the highest levels, I will be the first one to throw down $50 in escrow. If it succeeds, I'd be happy to throw in more towards buying the winner a laptop.

And not to spoil it with my opinion, but I think whomever is involved in the minimal (and fun and perlish) spec creation should at least do themselves the favor of taking a look at how Qore presents OOP in a very Perl-like language. That's not necessarily an endorsement, I don't think it's perlish or fun enough; but it is one more source of inspiration (yanno that we can steal).

Replies are listed 'Best First'.
Re: $50 towards a laptop for the winner
by davido (Cardinal) on Jul 28, 2020 at 15:04 UTC

    The Perl Foundation does fund grants for specific contributions to the Perl ecosystem. If you have a grant proposal visit https://www.perlfoundation.org/grants.html. A well planned and organized effort will usually achieve a better outcome.


    Dave

      Sure, thank you. Can I just send TPF $50 ear marked for going towards a laptop should such a bounty be established? I'm not good at writing grant propals or organizing these kind of things. But I do have $50 to give towards something like this that the community might find fun, exciting, and unifying.
        Rather make it $5000, or find 100 others to join you via crowd-funding.

        IIRC is most of the money donated to TPF earmarked.

        I suppose the overhead to manage a micro-grant will outweigh the $50.

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

Re: $50 towards a laptop for the winner
by Corion (Patriarch) on Jul 28, 2020 at 05:53 UTC

    I doubt you can find anything with support from higher levels than Cor.

      Thank you. I assumed so. This was all inspired this after rewatching Ovid's TPPiTC talk; so my assumption is this would likely be the foundation of any real specification convention.
Re: $50 towards a laptop for the winner
by tobyink (Canon) on Jul 28, 2020 at 07:57 UTC
      Hi Toby,

      I'm not sure if names like Zydeco or Kavorka help making your modules popular.

      Unless you don't want them to be known... ;-)

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

      Thank you!

      Note, the alternative to trying to achieve the One True OOtm in Perl is the OOP Soup that we have and is currently growing. I am not opposed to this either and would offer the same sort of contribution to a reward to the person who wrote the 100th minimally functional OOP module on CPAN (or alternative, the person who wrote the most minimally functional alternatives approaches in a 6 mos period). TIMTOWTDI after all.

Re: $50 towards a laptop for the winner
by marto (Cardinal) on Jul 28, 2020 at 11:33 UTC

    "If we can get something like this going at the highest levels"

    "Perl inteligensia lock themselves in a dark, smokey room - not being allowed to leave until they generate a minimalfunperlish "spec" for OOP Perl."

    Again have you run this past whoever it is you consider "inteligensia", or the perl core team?

    "as simple as possible, but no simpler"

    if something is as simple as it is possible to be, how could it be simpler?

Re: $50 towards a laptop for the winner
by jcb (Parson) on Jul 28, 2020 at 23:50 UTC

    Arguably, we already have a minimal OO spec for Perl — the "classic" Perl 5 object system uses only two primitives: bless to associate a vtable (in the form of a package STASH) to a data reference, and the method call operator (variably written as $obj->$method(LIST) or method $obj LIST) that searches those vtables, implementing inheritance as "look here next if not found" semantics from the package variable @ISA in each package used as a vtable.

    So I ask: how does the "classic" Perl 5 object system not meet your criteria?

    (Yes, the arrow operator accepts a scalar naming the method to call.)

      > (Yes, the arrow operator accepts a scalar naming the method to call.)

      Only half the truth, if $method is a code-ref it'll be called like a method (i.e. with $obj as first argument)

      Sorry for nitpicking :)

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

        No real nitpick — I learned something new: the arrow operator also accepts a scalar containing a code reference.

      That's a good question. I'm not the one with the itch this won't scratch. Maybe that's the problem. People don't know what they want. The most I ever learned about Perl was when I decided to tackle OOP many moons ago. It pulls in a large number of existing, very powerful features that worked beautifully together. As a result, I not only learned how to put them together, I had those constituent parts at my disposal as well (closures over subs for RO, e.g.). If more people took the time to learn the MEAT, they wouldn't be asking for the sugar. Let's bring classic oop back. Surely Damian would like to sell some more books circa 2000. It's all I ever needed.
Re: $50 towards a laptop for the winner ($100 )
by Anonymous Monk on Jul 28, 2020 at 07:45 UTC
    Lol. I'll give you $100 to go away to school
      deal. Your move.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://11119879]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-18 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found