[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: [ANN] Luvit - Lua + UV + Jit = NodeJS re-implemented in Lua
- From: Tim Caswell <tim@...>
- Date: Thu, 1 Dec 2011 14:51:42 -0600
Right, I keep forgetting to mention luanode. I don't mean to slight Ignacio.
First, the reason I made my own instead of contributing to his project
is my goal was to learn libuv and lua bindings. What better way than
to re-implement node in lua using libuv. Now that I've done most the
prototyping, I've gotten busy with work and moving and other stuff so
I'm presenting my work to the community to see how it stands on it's
Luanode is probably more mature and certainly been around longer. It
uses C++ and Boost ASIO. I use C and libuv which is the exact same
library used by node itself. I haven't benchmarked luanode at all so
I can't speak for it's performance.
On Thu, Dec 1, 2011 at 2:44 PM, Emmanuel Oga <firstname.lastname@example.org> wrote:
> On Thu, Dec 1, 2011 at 3:01 PM, Javier Guerra Giraldez
> <email@example.com> wrote:
>> On Thu, Dec 1, 2011 at 12:03 PM, Fabien <firstname.lastname@example.org> wrote:
>>> Coroutines. Look at any non-trivial node.js program, it's an awful mess of
>>> nested callbacks; very hard to read, impossible to maintain. Coroutines fix
>>> that, and that's a killer feature by itself.
>> callbacks-driven pseudomultitasking isn't anything new; it was the
>> only way to get good responsiveness in classic MacOS. it was used only
>> for slow I/O for a reason: it's _ugly_
>> current node.js proponents say that it's not so bad, or that you only
>> have to shift your reasoning process. still, there are lots of people
>> (and growing) that find it unmaintable for anything non-trivial.
>> coroutines do fix that; up to a point. as the Copas (and Xavante)
>> experience teach us, you have to be careful not to stall too long
>> without I/O (to give a chance to the scheduler to yield). besides
>> that, it's just as if you had multiprocessing without the overhead.
>> BTW, how would Luvit compare with Xavante with a limited number of
>> connections? i guess that over a hundred or so, any event-driven
>> scheme surpasses the select()-based Copas, but below that, it's not so
>> There are also some event-library bindings, and i thing some of them
>> included a Copas replacement that allowed you to run Xavante.... how's
>> luvit different from that?
> Could also be interesting to compare it with https://github.com/ignacio/LuaNode
> EmmanuelOga.com - Software Developer