Loading ...
Sorry, an error occurred while loading the content.

The Bivio naming scheme and the Perl community ethic

Expand Messages
  • bauhaus@metaperl.com
    CPAN ... The Perl community shares openly, because they re lazy, and want to solve problems once and only once.
    Message 1 of 5 , Feb 25, 2005
    • 0 Attachment
      <quote src=http://www.extremeperl.org/bk/perl>
      CPAN
      ...

      The Perl community shares openly, because they're lazy, and want to
      solve problems once and only once.
      </quote>

      I was just staring at the Bivio release notes and could not help but
      notice Bivio::This and Bivio::That, where That and This have
      functionally similar modules on CPAN.

      It is kind of hard to understand why Bivio is not offered in separate
      easy to understand components:

      + Bivio has a naming scheme that is incompatible with CPAN. It is
      Java-inspired. I tried to ask for more info on Java naming:

      http://www.javajunkies.org/index.pl?lastnode_id=717&node_id=4159

      but really could not understand the motivation for it. As long as
      your package on CPAN has a unique name, it won't conflict with other
      packages.
      + Bivio is not on CPAN
      + Bivio implements all aspects of web application development but not in
      a way that isolated aspects can be used independantly. Contrast, for
      example, with HTML::Mason which has a number of modules of great
      utility outside of it: Params::Validate, Class::Container,
      etc.

      --
      Carter's Compass: I know I'm on the right track when,
      by deleting something, I'm adding functionality.
    • Rob Nagler
      ... Difficult question. The folks who haven t worked at bivio, probably can t answer this question. Answers from bivions probably look like an excuse. Double
      Message 2 of 5 , Feb 25, 2005
      • 0 Attachment
        bauhaus@... writes:
        > It is kind of hard to understand why Bivio is not offered in separate
        > easy to understand components:

        Difficult question. The folks who haven't worked at bivio, probably
        can't answer this question. Answers from bivions probably look like
        an excuse. Double bind. Oh well, I'll give it my best shot.

        > + Bivio has a naming scheme that is incompatible with CPAN.

        TIMTOWTDI. :-) Why is CPAN incompatible with the world? The postal
        system was designed a couple of years before CPAN. Why are addresses
        in Europe big endian and addresses in the US little endian? Such is
        life.

        Frankly, I've never been able to figure out CPAN's naming or
        categorization system. Let's look at:

        http://cpan.uwinnipeg.ca/chapter/Opt_Arg_Param_Proc

        ("chapter" in the URI is a "category", why two names?) On this page,
        you have: App, Bio, ClearCase, ctflags, GetArgs, HH, Maypole, P4,
        Parrot, Script, AppConfig, Bryar, Config, DNS, Getopt, Java,
        OpenInteract, Pangloss, POEST, User, Argv, Buscador, ConfigReader,
        Fry, Haver, Mac, OpenPlugin, Params, Resources, and XAO.

        This is a whimsical naming scheme at best and chaotic at worst. Why
        is Bivio::* any different than ClearCase::*?

        > It is Java-inspired.

        Once and only once doesn't mean "the CPAN way". Java isn't the only
        way either, but we shouldn't ignore its solutions. Rather we should
        study them, and adopt/adapt them to solve our problems. The same is
        true of other systems, such as, Python, Ruby, Lisp, C, C++, Modula-2,
        Pascal, Ada, ALGOL, and FORTRAN.

        I have always taken the Perl community ethic to mean that we think
        about what we are doing, and don't do something just because someone
        tells us that it is the right way. There is no right way, just the
        way that works best for your problems. bOP evolved with this ethic in
        mind.

        > I tried to ask for more info on Java naming:
        >
        > http://www.javajunkies.org/index.pl?lastnode_id=717&node_id=4159
        >
        > but really could not understand the motivation for it. As long as
        > your package on CPAN has a unique name, it won't conflict with other
        > packages.

        The folks who invented Java had 20+ years on the folks who invented
        CPAN. They lived through the "hosts" file being passed around every
        night before DNS was invented. DNS solved the unique name problem
        elegantly and simply, and well before CPAN or Perl was invented.

        > + Bivio is not on CPAN

        Feel free to mirror bOP on CPAN.

        We have no business need to put bOP on CPAN. Indeed there are many
        things that CPAN doesn't offer us, such as, letting us run a demo of
        the Bivio::* classes (petshop.bivio.biz) and our "view source"
        feature.

        > + Bivio implements all aspects of web application development but not in
        > a way that isolated aspects can be used independantly.

        A misconception. Consider that J2EE is distributed in a bundle (much
        larger than bOP). Anybody doing J2EE is making a choice to buy into
        the J2EE ecosystem. They don't want to download a new module every
        time they want to expand their use/knowledge of the ecosystem. That
        doesn't mean that J2EE is a monolith. It's a collection of layered
        classes just like bOP is.

        > Contrast, for example, with HTML::Mason which has a number of
        > modules of great utility outside of it: Params::Validate,
        > Class::Container, etc.

        Great utility is in the eyes of the user. Params::Validate is of
        little or no utility if you dislike strong typing. Perl is
        weakly-typed. If I wanted strong typing, I'd be programming in Java.

        I can't figure out why I would need Class::Container. Is there any
        problem solved by bOP that would be better solved by Class::Container?
        Parameters are the least of my problems when dealing with inheritance.
        It's unexpected behavior that messes things up.

        Rob
      • bauhaus@metaperl.com
        ... Well, just one unless you want to create a shell script: If you used CPAN, you could have a Makefile.PL whose PREREQ_PM specified all of the modules Bivio
        Message 3 of 5 , Feb 26, 2005
        • 0 Attachment
          Rob Nagler <nagler@...> writes:

          > bauhaus@... writes:
          >
          >> + Bivio is not on CPAN
          >
          > Feel free to mirror bOP on CPAN.
          >
          > We have no business need to put bOP on CPAN.


          Well, just one unless you want to create a shell script:

          If you used CPAN, you could have a Makefile.PL whose PREREQ_PM
          specified all of the modules Bivio needed.

          Alternatively, you might just upload a Bivio::Bundle file which
          specifies the modules to install. It's just a small file which will
          drive the loading of other files.

          Just an idea. I know no one has time for what is not really necessary.

          --
          Carter's Compass: I know I'm on the right track when,
          by deleting something, I'm adding functionality.
        • Rob Nagler
          ... If this weren t an XP list, I wouldn t belabor the point... This is not a business need. This is a technical possibility. The world is full of technical
          Message 4 of 5 , Feb 27, 2005
          • 0 Attachment
            bauhaus@... writes:
            > > We have no business need to put bOP on CPAN.
            >
            > Well, just one unless you want to create a shell script:
            >
            > If you used CPAN, you could have a Makefile.PL whose PREREQ_PM
            > specified all of the modules Bivio needed.

            If this weren't an XP list, I wouldn't belabor the point... This is
            not a business need. This is a technical possibility. The world is
            full of technical possibilities with absolutely no business value.

            Rob
          • Adrian Howard
            ... A round of applause for dragging it on topic :-) Adrian
            Message 5 of 5 , Mar 2 4:16 AM
            • 0 Attachment
              On 27 Feb 2005, at 18:33, Rob Nagler wrote:

              >
              > bauhaus@... writes:
              >>> We have no business need to put bOP on CPAN.
              >>
              >> Well, just one unless you want to create a shell script:
              >>
              >> If you used CPAN, you could have a Makefile.PL whose PREREQ_PM
              >> specified all of the modules Bivio needed.

              A round of applause for dragging it on topic :-)

              Adrian
            Your message has been successfully submitted and would be delivered to recipients shortly.