> I think the distinction between *doing* node and *using* is good call.

+ 1, in most cases I don't care about interoperability of my npm modules or 
complying to some ideologies at all. I just want to get things done with 
simplest and fastest way. 

On Monday, April 29, 2013 6:30:40 AM UTC+4, Marcel wrote:
>
> I think the distinction between *doing* node and *using* is good call. I 
> wrote a tampering HTTP proxy server in node; I used streams and callbacks. 
> I wrote a web application with lots of waiting on database and filesystem 
> chatter; I used fibers w/ futures.
>
>
> On Sun, Apr 28, 2013 at 11:22 PM, Bruno Jouhier 
> <bjou...@gmail.com<javascript:>
> > wrote:
>
>> Hi Nuno,
>>
>> Your post is helpful. I'll try to challenge it in a constructive way. I 
>> think that most of disagreement comes from a different perspective on means 
>> and ends.
>>
>> From your perspective, node is an end in itself: you **do** node; you 
>> build streams; you write callbacks; etc. For you, adherence to node's core 
>> philosophy is paramount.
>>
>> From my perspective, node is just a means to an end: we **use** node. For 
>> us, the end is to more our product forwards. Node is just one piece of the 
>> puzzle we are assembling (an important one). For us, node's core philosophy 
>> is "interesting" but it is not binding.
>>
>> Our team is growing and when I'm bringing new people on board I'm not 
>> teaching them callbacks and streams; I'm teaching them streamline. This is 
>> because I need them to get up to speed quickly and I also need to have a 
>> code base which is simple, robust, easy to maintain and homogeneous. They 
>> can still learn callbacks and streams on their own and I'm encouraging them 
>> to be curious but our internal coding standard is streamline.
>>
>> Also, I considered node's philosophy when architecting our new system. 
>> But I have difficulties to fit what we are doing into the streams and pipes 
>> paradigm. It does not feel "natural" and I don't see what benefits I would 
>> gain. For me, it is much more natural to architect our system as classical 
>> modules that **consume** streams than as streams that would be piped into 
>> each other. I find the pure asynchronous nature of node very appealing but 
>> I find the streams & pipes philosophy less appealing. Maybe there is also a 
>> question of maturity: the asynchronous APIs are something we can very 
>> easily build upon today (in part thanks to streamline); the streams & pipes 
>> looks more like an experiment in progress, which may turn out to be a real 
>> breakthrough but which would be introducing too much complexity for us 
>> today. 
>>
>> I also have a different perspective on node's APIs. I followed the 
>> discussions on the new streams API and I was always amazed by the very 
>> strong focus on the "building streams" side. I find this very complex and 
>> fragile. In our system, we very rarely build a stream but we consume a lot 
>> of streams. So we have a small wrapper that gives us a very simple API to 
>> consume streams. We are not following the core philosophy but it does not 
>> really matter for us. What matters is that we can build our product.
>>
>> Now, when a person comes the the mailing list with a question, I wonder 
>> what his perspective is. Does he want to **do** node, or is he just trying 
>> to **use** node to build something? If his goal is to **do** node, then 
>> yes, Mikeal is right with his hard line: people should not blur the message 
>> and give him advice that may distract him from node's philosophy. But what 
>> if all he wants is to **use** node, maybe in ways that are not completely 
>> aligned with node's core philosophy, like we do? should we stick to the 
>> hard line, or should we let him explore "other ways" that may be a better 
>> answer to his needs.
>>
>> The node ecosystem is growing fast, with people that **do** node, and I 
>> don't want to disrupt this. But I feel that there is a great opportunity 
>> for node to go more mainstream (like PHP and RoR). I don't think that node 
>> will go mainstream by trying to convert mainstream developers to the 
>> callbacks and streams paradigm, simply because it is too hard. I think that 
>> it can do so by being open and letting people just **use** node, and this 
>> is where alternate tools may help.
>>
>> I don't have a good answer to what the line of conduct should be on the 
>> mailing list. But I don't think that excluding discordant voices is the 
>> right solution (in this specific case but also in general). 
>>
>> Bruno.
>>
>>
>> On Sunday, April 28, 2013 3:01:05 AM UTC+2, Nuno Job wrote:
>>>
>>> Node means a certain set of things, and part of those things are 
>>> callbacks and streams.
>>>
>>> Callbacks and streams are hard to learn because its a new 
>>> programming paradigm you don't learn in school. It was hard for me too and 
>>> I did it when this was still up for discussion. And I had good friends to 
>>> teach me that really knew node.
>>>
>>> Developers will always try to fast track to their already understood 
>>> paradigms; but that is not node. This existing paradigm makes sense to 
>>> build network proxies; which node is awesome for. To node programs are 
>>> proxies.
>>>
>>> A person should always start with callbacks and streams until he 
>>> understands them, closures, and the event loop. Then he can make informed 
>>> decisions on what to use when.
>>>
>>> However node is not the solution to all problems and if you wanted to 
>>> build a general purpose replacement for Ruby on Rails in JS you probably 
>>> wouldn't use callbacks and streams by something else as discussed. 
>>> Personally i think this would be great, an would follow closely such a 
>>> project. It could even interopt with node and npm but its not node!
>>>
>>> Given my opinions above it makes sense that i would advocate that a node 
>>> beginner should start with the standard idioms: callbacks and streams. It 
>>> might even make sense to make these documented as "the standard" on the 
>>> site.
>>>
>>> However its possible that this is not the best solution for the person 
>>> that asked the question, but then maybe that person shouldn't be using node 
>>> and instead the brand new super cool thing someone will build. Or maybe he 
>>> needs to learn how node works and then decide, by himself, that something 
>>> else makes more sense.
>>>
>>> The ecosystem exists, it has an interoperability model, and works great 
>>> for what node is for (check node success). Improvements on this model are 
>>> possible (like streams2) but even those aren't without backlash. Breaking 
>>> changes are also awesome, but its not node
>>>
>>> Nuno
>>>
>>> Ps. Cause this doesn't seem obvious to everyone, these are just my 
>>> personal opinions. And I expressed them here mostly in respect to Bruno who 
>>> did a blog post i thought was respectful and thoughtful, and i felt 
>>> compelled to respond in the same manner. We have a great community and i 
>>> respect a lot the work and passion community members put into their 
>>> projects
>>>
>>>
>>>  -- 
>> -- 
>> 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 nod...@googlegroups.com<javascript:>
>> To unsubscribe from this group, send email to
>> nodejs+un...@googlegroups.com <javascript:>
>> 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+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>
>

-- 
-- 
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