> Yeah fibers as a crutch isn't recommended. It should be a tool, but not
> until you can do it without the tool :)

It feels odd for me to disagree with the person who wrote fibers, but
I'll present another viewpoint. I've seen these sort of comments often
when I bring up fibers, and I think they unnecessarily conflate node's
threading model with writing code in Continuation Passing Style.

The best way I've always learned a new language or framework is just
to jump in and get something working. There's so many details I don't
know yet -- I need some small bits that I can focus on first.

I think it's completely reasonable someone could jump into node and
use fibers to remove the complexity of writing code in CPS. It's a
gentler introduction to coding in node, as they can more readily apply
knowledge they likely already have of c style languages.

They can learn CPS when needed -- which at first would just be for
reading others' code.

Whether you use fibers or CPS, you still have to learn node's
threading model and how it handles I/O. This is really the heart of
node, and it's the same knowledge for both cases. There's no intrinsic
link between async I/O and writing code in CPS.

In Scheme and LISP it's not uncommon to use CPS form when writing
synchronous code. In .NET 5 the async and await keywords, which are
similar to the fibers approach, are available.

I wouldn't feel that I need to tell a .NET coder to learn the old way
of doing async first (unless I just wanted him to feel my pain),
because using async / await will be much more straightforward. And I
feel exactly the same way about fibers in node.

Chris

-- 
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to