On Thu, Aug 22, 2013 at 4:02 PM, Eldar <eldar...@gmail.com> wrote:

> I am sorry, I had to write more detailed explanation of my above
> statements.
>
> *Postel low (Robustness principle)*
>
> You can have a look at wikipedia article about it
> http://en.wikipedia.org/wiki/Robustness_principle.
> It contains explanation about why the robustness principle is harmful and
> contains a link to the corresponding RFC.
>
> About browsers. I am not much aware history of browsers wars, but I am
> aware about
> HTML parsers and what a shit they are and heard about how much efforts it
> took to make
> all that quirk stuff be a standard.  Although browsers had a greater
> excuse for that than a pure machine protocols.
>
> Finally, I personally suffered from "robustness" even within my *private*
> tool chain :)
>

I'm sorry, but again, this is misguided. The complaint in that article is
that by being liberal, you're masking potential problems in the calling
code. The only potential problem comes from other API developers begin
inconsistent and allowing sometimes-sync callbacks. Whether you want to
believe it or not, forcing always sync is both the strict and liberal
implementation. It's strict because it guarantees a specific order. It's
liberal because it guarantees the caller can't write broken code. So
perhaps this isn't the robustness principle exactly, but the fact remains
that the safest thing for everyone is always async.

*process.nextTick*
> *
> *
> Downsides of process.nextTick are
>
> 1) It is none-standard, not available in other environments and even can't
> be shimed (with promise of the same performance).
>

We're talking about node. If you're writing a multi-environment module,
then all node standards are out. The standard already exists directly in
node core. The core team has publicly stated that you should force always
async in a thread I already linked to.

2) It has performance costs. Significant or not depends on your use case.
>

It's quite rare for modules to actually have significant performance costs
based on forced async. It does happen, but very rarely.


> 3) It disables some use cases.
>

This cannot be true. You cannot have a sometimes-async API which breaks
when not always async.

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to