I learned my C from various C man pages on google searches and asking
around on irc channels.

Regarding performance between luvit and node.js, it's not objectivly one is
faster than the other.  It is true that luajit and v8 are both very fast
JIT VMs with their own unique strengths.

The biggest difference I've seen is calling C functions from luajit lua
code seems to have a lot less overhead than calling C++ functions from V8
javascript code.  Also luajit uses a lot less ram than v8 for small
programs.  I haven't tested programs with large data structures so I can't
comment on how the data structures in the languages scale memory wise.


On Mon, Feb 11, 2013 at 11:28 AM, Bodo Kaiser <bodo.kai...@enabre.com>wrote:

> 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 <t...@creationix.com>:
>
> 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 <bodo.kai...@enabre.com>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 <t...@creationix.com>:
>>
>> 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 <bodo.kai...@enabre.com>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 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.
>>>
>>>
>>>
>>
>>
>> --
>> --
>> 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.
>>
>>
>>
>>
>>  --
>> --
>> 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.
>>
>>
>>
>
>  --
> --
> 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.
>
>
>
>  --
> --
> 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.
>
>
>

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