Forgot to add that starting close to the machinery is important for being able to debug when things go wrong. Now of course there is a line here of what I mean by machinery. Abstractions are helpful, I mean that is why we are writing in a higher level language like JavaScript and not in C++ or even assembler :-)
Sent from my Windows Phone ------------------------------ From: Glenn Block Sent: 2/26/2012 8:55 PM To: Marcel Laverdet; [email protected] Subject: RE: [nodejs] Re: Thinking asynchronously I agree with you. I came to node about 6 months ago having had 10 years of .net experience. I started off looking at helpers like step and async, but ultimately found that it was better to just learn how the machinery works. Once I understand it is easier to rely on a tool. It is the same experience I had working with IoC containers. Once I had done poor man's DI, I had a much better appreciation for what the container did for me. Mocking frameworks, bdd frameworks etc were all in the same category. Sent from my Windows Phone ------------------------------ From: Marcel Laverdet Sent: 2/26/2012 8:25 PM To: [email protected] Subject: Re: [nodejs] Re: Thinking asynchronously Well you need to understand what's going on under the hood at least to some degree, or someone on your team does to enforce best practices and so you'll have someone to go when things go wrong. When things go wrong and Fibers are involved, if you don't know what's going on then you're up a shit creek. Anyway, wasn't trying to turn this thread into something it's not! Recommend starting a new fibers thread if you want to talk about fibers [and I do love talking about fibers :) ] On Sun, Feb 26, 2012 at 9:35 PM, Chris Scribner <[email protected]> wrote: > > 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 > -- 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 -- 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
