Skip Menu |

This queue is for tickets about the VSO CPAN distribution.

Report information
The Basics
Id: 75065
Status: open
Priority: 0/
Queue: VSO

People
Owner: Nobody in particular
Requestors: mst [...] shadowcat.co.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: A small list of disasters
Date: Thu, 16 Feb 2012 17:00:52 +0000
To: bugs-VSO [...] rt.cpan.org
From: Matt S Trout <mst [...] shadowcat.co.uk>
- using yourself as a superclass is stupid. 'use My::VSO::Class;' # BOOM - defined(@array) is deprecated and doesn't do what you think it does - your BUILD implementation is incompatible with every other such on CPAN - jamming validation code into the class is scary - your method modifier attempt is buggy and slow compared to everybody else's - $INC{$file} ||= $file; is a lie and will break things - all exports are now also methods on your classes, which is horrible - you have no explanation as to what your code provides that Moose/Mouse/Moo/Mo don't, except for a bunch of miserably wrong design decisions and bugs. - and in fact, Mo is massively simpler. Moo provides the same feature set and then some, but actually works. And Moose/Mouse are the real thing. I'm sure you had a lot of fun writing this, but if you're going to leave it on CPAN without a complete rewrite then it needs a big "warning warning don't try and use this for real code" sticker putting on it, and if you're going to do a complete rewrite then the end result is basically going to be Moo/Mo, so I'm not really sure I see the point. I'd encourage you to instead consider factoring out your VSO::Subtype code into something that can be used in Moo classes, and switching to that - if you wanted to have a go at that I'd be more than happy to help. -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.
On Thu Feb 16 12:03:58 2012, mst@shadowcat.co.uk wrote: Show quoted text
> - using yourself as a superclass is stupid. 'use My::VSO::Class;' # > BOOM > > - defined(@array) is deprecated and doesn't do what you think it does > > - your BUILD implementation is incompatible with every other such on > CPAN > > - jamming validation code into the class is scary > > - your method modifier attempt is buggy and slow compared to everybody > else's > > - $INC{$file} ||= $file; is a lie and will break things > > - all exports are now also methods on your classes, which is horrible > > - you have no explanation as to what your code provides that > Moose/Mouse/Moo/Mo > don't, except for a bunch of miserably wrong design decisions and > bugs. > > - and in fact, Mo is massively simpler. Moo provides the same feature > set and > then some, but actually works. And Moose/Mouse are the real thing. > > I'm sure you had a lot of fun writing this, but if you're going to > leave it > on CPAN without a complete rewrite then it needs a big "warning > warning don't > try and use this for real code" sticker putting on it, and if you're > going to > do a complete rewrite then the end result is basically going to be > Moo/Mo, so > I'm not really sure I see the point. > > I'd encourage you to instead consider factoring out your VSO::Subtype > code > into something that can be used in Moo classes, and switching to that > - if > you wanted to have a go at that I'd be more than happy to help. >
Thank you for reading through the code. Your ticket's title pretty much sums it up. Yes it was fun to write - and yes as you know, all your points are completely valid. VSO is going away in a few weeks' time and I'll be switching anything written against VSO to use Moose instead. Also, I recently discovered that my ASP4 and Class::DBI::Lite have some *major* problems beyond a certain scale. I've been working with someone who is much more senior and learning something new (and surprising) on almost an hourly basis. It's great to be out of the vacuum. Catalyst+DBIC+Moose - here we come (as quick as we can).
Subject: Re: [rt.cpan.org #75065] A small list of disasters
Date: Thu, 29 Mar 2012 14:44:56 +0100
To: John Drago via RT <bug-VSO [...] rt.cpan.org>
From: Matt S Trout <mst [...] shadowcat.co.uk>
On Wed, Mar 28, 2012 at 08:27:35PM -0400, John Drago via RT wrote: Show quoted text
> Thank you for reading through the code. Your ticket's title pretty much > sums it up.
On the upside, the code didn't make me throw up in my mouth. It was just buggy. Show quoted text
> Yes it was fun to write - and yes as you know, all your points are > completely valid.
Oh, I'm absolutely certain of that, I've made pretty much every single one of those mistakes myself! (except the class-as-exporter one which I encountered repeatedly in other people's code early enough to avoid :) Show quoted text
> VSO is going away in a few weeks' time and I'll be switching anything > written against VSO to use Moose instead.
Make sure to do a last release on CPAN saying all of this, and perhaps noting the problems just in case somebody tries to use it anyway. Show quoted text
> Also, I recently discovered that my ASP4 and Class::DBI::Lite have some > *major* problems beyond a certain scale.
Being unable to say "yes" to customer requests wrt Class::DBI is why DBIx::Class exists - the CDBI codebase just can't be bent beyond a certain point. You got about as far as I did :D Show quoted text
> I've been working with someone who is much more senior and learning > something new (and surprising) on almost an hourly basis. It's great to > be out of the vacuum. > > Catalyst+DBIC+Moose - here we come (as quick as we can).
Awesome. I look forward to seeing you putting your talents to use in the mainstream community, if I thought you were incompetent I'd've explained the bugs in this ticket in far more detail. Nice to see I was right that you'd understand 'em just from the brief notes. I'll see you there! -- Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue http://shadowcat.co.uk/blog/matt-s-trout/ http://twitter.com/shadowcat_mst/ Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst commercial support, training and consultancy packages could help your team.