- From: Brandon Jones <bajones@google.com>
- Date: Thu, 21 Mar 2013 12:52:20 -0700
- To: Dirk Schulze <dschulze@adobe.com>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Rik Cabanier <cabanier@gmail.com>, James Robinson <jamesr@google.com>, Benoit Jacob <jacob.benoit.1@gmail.com>, "public-fx@w3.org" <public-fx@w3.org>
- Message-ID: <CAEGwwi0FGkdjKe_bsB3=-tPid4EmYWDrh1wX+ntX1Kd0_DRcLw@mail.gmail.com>
I'd like to throw another voice in against throwing exceptions. The faulty assumption here being that if a matrix fails to invert this is worth stopping the entire app for. Realistically most authors will blindly invert and never give a second glance to the result. If invert throws this will result in many apps simply halting, with the only way to get it back being a refresh. If invert returns NaNs or similar most apps will have a bit of graphical data flicker, become lit incorrectly, or possibly disappear. Depending on the structure of the app this may naturally resolve itself within a frame or two. While you can argue that a throw will make invert issues easier to debug I feel that most authors would rather have a suboptimal user experience than no user experience. If you absolutely MUST retain compatibility with this aspect of SVGMatrix then so be it, but I would highly favor including a non-throwing variant and promoting that one as the preferred call. --Brandon Jones On Thu, Mar 21, 2013 at 11:59 AM, Dirk Schulze <dschulze@adobe.com> wrote: > > On Mar 21, 2013, at 11:52 AM, "Tab Atkins Jr." <jackalmage@gmail.com> > wrote: > > > On Thu, Mar 21, 2013 at 11:47 AM, Rik Cabanier <cabanier@gmail.com> > wrote: > >> On Thu, Mar 21, 2013 at 11:36 AM, James Robinson <jamesr@google.com> > wrote: > >>> On Thu, Mar 21, 2013 at 11:33 AM, Rik Cabanier <cabanier@gmail.com> > wrote: > >>>> I'll formally object to an exception being thrown here. > >>>> > >>>> SVG matrix throws an exception and since this is a drop-in > replacement, > >>>> Matrix needs to throw one too :-( > >>> > >>> This is a clear example of SVG making a (bad) mistake that we should > not > >>> inflict on the rest of the web platform. > >> > >> Are you objecting to any exceptions being thrown? > >> There are exceptions in all authors facing APIs. > > > > No, he objects for the same reason I am - a matrix being singular is > > not a particularly exceptional situation > > A singular matrix does not mean the same as NaN and Inf values in the > matrix. > > However, you need to take a look when you use inverse() for transformation > matrices (again, that is the focus here). They are used to transform > between coordinate spaces. And then a returning singular matrix does not > make sense. > > Dirk > > > , and whether an > > implementation considers a matrix singular will depend in some cases > > on the exact algorithm and FP implementation being used. This is, > > thus, a *terrible* example of a place to throw an exception, as > > authors won't expect it, and it'll vary between platforms for no > > important reason. > > > > ~TJ > > > >
Received on Friday, 22 March 2013 13:22:53 UTC