On Wed, 31 May 2006, James Edward Gray II wrote:

> 1.  CSV's compatibility mode handles most of the issues very well and I'm 
> pretty sure I can remove most of the speed penalty.  If we go with that, we 
> have a pretty workable solution right now with one big gotcha:  you can 
> require a file named csv.rb and use CSV just fine, but the good stuff will 
> actually be hiding under FasterCSV (in the same file).  I have to keep them 
> separate, because of the compatibility issues mentioned above.  This, to me, 
> is the only sane way to go if we want to target the 1.8.x branch.  It would 
> still break some software, if they use the unusual features of CSV, but I 
> suspect this is quite rare.
> 2.  We could drop compatibility and rename FasterCSV to CSV.  This way people 
> get all the good stuff where they expect it.  However, this would break a lot 
> of CSV software (most of it, in fact), so it only seems reasonable when 
> targeting 1.9.x and up.
>
> My thought is that the second option seems preferable.  If we train people to 
> use FasterCSV, then we just have to switch them again down the road if we 
> want to revert to CSV.  We don't really gain many big advantages for the 
> switch either (speed, if I can eliminate the penalty, but not header parsing 
> or the other good FasterCSV features).  That doesn't sound like it's worth 
> breaking software over.
>
> In summary, I recommending targeting 1.9.x with no compatibility mode and 
> renaming FasterCSV to CSV.  Am I making sense here?
>
> James Edward Gray II

i know matz is against it, but i really think we should have both.  we have

   ftools and fileutils

   date and date2

   getoptlong, getopts, parsearg, and optparse

   monitor, mutex, and sync

   runit and test/unit

and so on.

i have quite a bit of code that does things like

   CSV::Row

   CSV::Cell

etc.  it'd be very upset if i had to re-write all of it.  it does little to
help people love ruby when scripts that worked stop working after an upgrade.
that said, i'm 100% for having faster csv in the dist.  i just don't see
what's wrong with a few extra pure ruby files in there - they are very tiny.

cheers.

-a
-- 
be kind whenever possible... it is always possible.
- h.h. the 14th dali lama