There are obviously orthogonal problems here.
If we were doing this as code, these would be separate functions and most everyone would agree that it would make both testing and understanding easier.
Why is it different with specs? The hardest part of specs is choosing which one is right. The second hardest part is dealing with ambiguity (and the larger the function, the more difficult figuring out intention, at least IMHO)
-=R
On Oct 24, 2012 8:44 AM, "Ian Hickson" <ian@xxxxxxxx> wrote:
On Wed, 24 Oct 2012, Christophe Lauret wrote:
>
> As a Web developer who's had to write code multiple times to handle URIs
> in very different contexts, I actually *like* the constraints in STD 66,
> there are many instances where it is simpler to assume that the error
> handling has been done prior and simply reject an invalid URI.
I think we can agree that the error handling should be, at the option of
the software developer, either to handle the input as defined by the
spec's algorithms, or to abort and not handle the input at all.
> But why not do it as a separate spec?
Having multiple specs means an implementor has to refer to multiple specs
to implement one algorithm, which is not a way to get interoperability.
Bugs creep in much faster when implementors have to switch between specs
just in the implementation of one algorithm.
> Increasing the space of valid addresses, when the set of addressable
> resources is not actually increasing only means more complex parsing rules.
I'm not saying we should increase the space of valid addresses. The de
facto parsing rules are already complicated by de facto requirements for
handling errors, so defining those doesn't increase complexity either
(especially if such behaviour is left as optional, as discussed above.)
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'