I would also be happy with some C Tutorial :)

PS: To luvit: Interesting that it is possible to use the Node basement with 
different languages and also that this is faster than JavaScript (because of 
the native c bindings?). I will follow the project and look how it will 
develope.

Regards,
Bodo

Am 11.02.2013 um 18:13 schrieb Tim Caswell <[email protected]>:

> I'm a C++ newb myself, so I can't recommend any good resources.  I learned 
> most my libuv through porting node to lua (luvit.io), but that was all plain 
> C code (which I consider much easier than C++).
> 
> 
> On Mon, Feb 11, 2013 at 10:05 AM, Bodo Kaiser <[email protected]> wrote:
>> Hello,
>> 
>> thank you for your answer!
>> 
>> This sounds really amazing. I hope I find the resources to understand this 
>> some days.
>> 
>> Could you recommend a good tutorial for learning c(++) so I can understand 
>> and play around with libuv (and later on understand the bindings you linked 
>> to)?
>> 
>> Regards,
>> Bodo
>> 
>> Am 11.02.2013 um 16:34 schrieb Tim Caswell <[email protected]>:
>> 
>>> The language itself has no I/O at all.  Even setTimeout and setInterval are 
>>> implemented by the libuv bindings using uv_timer_t instances.  In the 
>>> browser the language VM is bound to the browser natives and APIs.  In node, 
>>> the language is bound to libuv and other natives that node exposes.
>>> 
>>> As far as callbacks, *every* true event source must come from C somewhere.  
>>> JavaScript cannot create new event sources on it's own.  You can create a 
>>> function that wraps an async source (like the uv_timer_t interface) and 
>>> exposes a different API in javascript (like setTimeout).
>>> 
>>> In node, there are bindings providing all the I/O (timers, tcp, pipes, tty, 
>>> fs, udp, dns, etc) and some C bindings for operations that CPU intensive or 
>>> hard to implement (http parsing, crypto, compression, etc..)
>>> 
>>> For specifics, here is the C++ <-> JavaScript binding bridge for uv_timer_t 
>>> https://github.com/joyent/node/blob/master/src/timer_wrap.cc .  And here is 
>>> the JS API wrapper to expose this as the well known setTimeout interface: 
>>> https://github.com/joyent/node/blob/master/lib/timers.js#L180-L214
>>> 
>>> Hope this helps, let me know if you have more questions.  There is a lot 
>>> going on here.
>>> 
>>> -Tim Caswell
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Mon, Feb 11, 2013 at 8:47 AM, Bodo Kaiser <[email protected]> wrote:
>>>> Hello,
>>>> 
>>>> last weekend I asked how nodejs event loop worked and I became a great 
>>>> link about it: http://nikhilm.github.com/uvbook/basics.html#event-loops
>>>> 
>>>> Unfortunately I still got a major understanding problem about nodejs:
>>>> When we use some node modules which itself look like plain javascript then 
>>>> in the background libuv has to handle them somehow (e.g. tcp sockets) but 
>>>> how could I imagine this?
>>>> Does the javascript get parsed by v8 which detects defined classes and 
>>>> informs libuv to do the tasks the overlaying tcp sockets are configured 
>>>> for?
>>>> And what is about some "normal" javascript-language callbacks (e.g. 
>>>> setTimeout). Are they also handled by v8 or libuv?
>>>> 
>>>> 
>>>> I think I do not understand what the v8 engine does exactly and how the 
>>>> other libs are bound into. Could somebody clarify me?
>>>> 
>>>> Regards,
>>>> Bodo
>>>> 
>>>> 
>>>> -- 
>>>> -- 
>>>> 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
>>>>  
>>>> --- 
>>>> 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 [email protected].
>>>> 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 [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
>>>  
>>> --- 
>>> 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 [email protected].
>>> 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 [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
>>  
>> --- 
>> 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 [email protected].
>> 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 [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
>  
> --- 
> 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 [email protected].
> 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 [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

--- 
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to