The following module was proposed for inclusion in the Module List:

  modid:       Persist
  DSLIP:       ampOb
  description: Write-once/use-anywhere style persistence.
  userid:      HANENKAMP (Andrew Sterling Hanenkamp)
  chapterid:    7 (Database_Interfaces)
  communities:
    http://contentment.sourceforge.net/

  similar:
    Persistent

  rationale:

    First, I'm not stuck on the name Persist. It's just the one I've
    stuck to because I really couldn't find anything that was more
    descriptive or appropriate. In fact, I didn't even start with this
    name. The original name I chose was Persistent. I made this choice
    partly because the existing Persistent was so similar and partly
    because Persistent seems to be the best descriptive term available.

    However, I switched away to Persist to avoid conflicting with
    Persistent as it has very similar functionality and some similar
    package names. I originally tried to contact the author of those
    modules, DWINTERS, but was unable to get any response to my emails
    on the possibility of merging my ideas into his modules. That is one
    reason for the new project.

    Other than that, I've agonized quite a bit over the choice of the
    name Persist and several times about why I needed a module separate
    from Persistent. However, the differences between Persist and
    Persistent are too great to be reconciled. Both Persistent and
    Persist present a unified Perl API for accessing their back-ends.
    Both provide access to table schema for the creation of new tables
    or whatever storage abstraction the back-end provides.

    However, Persist also provides a filtering language that is used to
    query all back-ends. Persistent uses the back-end's own query
    language. Persist translates its query language into the native
    language of the back-end. The query language is based upon SQL to
    make common drivers easy to write (no or almost no translation) and
    because SQL tends to be easy to understand and easy to parse.

    Further, Persist provides more than just table schema, but also to
    database instances. Persist allows for the creation and destruction
    of new back-ends through a simplified interface. Finally, types are
    provided through the use of constants in Persist rather than objects
    in Persistent.

    The Persist library is made up of 10 modules under Persist:
    Persist, Persist::Driver, Persist::Driver::DBI,
    Persist::Driver::DBI::PostgreSQL, Persist::Driver::Memory,
    Persist::Filter, Persist::Join, Persist::Source, Persist::Table, and
    Persist::Tabular. More classes will be added under Persist::Driver
    as more drivers are implemented.

    I would rather have named Persist as Persistent, but that, I feel,
    would conflict with that namespace and create confusion since both
    ideas are similar--perhaps I'm wrong as I have not paid too much
    attention to the Perl modules lists. I would probably rather the
    name be Persisting as Persisting::Source has a much nicer ring to
    it.

    I've chosen a rootlevel namespace because I couldn't find an
    existing namespace that made more sense to me. I searched quite a
    bit, but didn't find one. I'd be more than happy to stick Persist
    somewhere in particular if it does make sense to. However, Persist
    has an almost proprietary feel to it's API since it is rather
    specialized, so a rootlevel seems to make sense anyway--but I'm
    still not completely sold on any direction.

    I'm working this project primarily as a means of supporting another
    (described at http://contentment.sf.net/), so the name isn't really
    important to me.

  enteredby:   HANENKAMP (Andrew Sterling Hanenkamp)
  enteredon:   Wed Jul 23 05:40:58 2003 GMT

The resulting entry would be:

Persist           ampOb Write-once/use-anywhere style persistence.   HANENKAMP


Thanks for registering,
-- 
The PAUSE

PS: The following links are only valid for module list maintainers:

Registration form with editing capabilities:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=53300000_7c6a3693ea4108d8&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=53300000_7c6a3693ea4108d8&SUBMIT_pause99_add_mod_insertit=1

Reply via email to