On Sat, Feb 13, 2016 at 5:15 PM, Thiago Bastos <email@example.com> wrote:
> Good question!
> I think the three major points for comparison are the following:
> 1) Luvit is a runtime for (mostly) server-side applications, while Lift
> focus on being a framework for client-side tools, mostly development tools
> (I'm using it to write a dev tool for C++). In this respect, Lift is more
> similar to Gulp/Grunt/Jake/NPM than to Node.
Can Lift be used to create TCP server?
Technically you could create a TCP server using only luv. That would be fairly low level though, and I'm not sure which abstractions included in Luvit/Node you'd be missing (depends on your application I guess).
There are applications which are both servers and clients: proxies,
torrent clients, caching DNS resolvers. Can I implement them in Lift?
> 2) Luvit adopts Node's Continuation Passing Style (callbacks), which is
> conducive to "callback hell" and in my opinion more difficult to reason
> about. Lift implements a Direct Style in which concurrency is achieved with
> coroutines and without callbacks (which in my opinion leads to much simpler
>From https://luvit.io/ :
> If you don’t like callbacks and event emitters, use coroutines and write blocking style code without actually blocking your event loop!
Yes, but that's a very theoretical statement. In practice you need to create lots of abstractions, a scheduler, etc. In Lift all the work has already been done, and it took me a lot of work. All blocking calls in Lift use coroutines behind the curtains and you don't even need to know what a coroutine is.
> 3) While Lift fits into the standard LuaRocks ecosystem, Luvit decided to
> create its own ecosystem, with its own package manager and tools.
I think, it is a strong point of Lift.
> I'd say the only thing Luvit and Lift really have in common is that both
> projects use the "luv" library (the libuv bindings created for luvit, to
> which I'm also a contributor).
> On Sat, Feb 13, 2016 at 1:45 PM Nagaev Boris <firstname.lastname@example.org> wrote:
>> On Sat, Feb 13, 2016 at 3:33 PM, Thiago Bastos <email@example.com>
>> > Dear list,
>> > I'd like to announce the first (v0.1) release of Lift, a general-purpose
>> > task automation tool for Lua with support for multitasking, streams and
>> > asynchronous I/O powered by libuv. It's available on luarocks and works
>> > on
>> > Linux, OSX and Windows.
>> > Lift was inspired by projects such as Rake, Gulp and npm, but follows a
>> > unique Lua-ish design. Check out the full list of features at:
>> > https://github.com/tbastos/lift
>> > I'm currently looking for early adopters or even contributors to help
>> > guide
>> > the development. Would you rather use Lua to automate your development
>> > workflow? Do you think Lua is currently missing a more powerful build
>> > tool/task runner/other development tool? Please check out the project
>> > and
>> > give your feedback, say which features are important and so forth.
>> > Cheers!
>> Thank you for Lift!
>> What is the relationship between Lift and Luvit . Can you compare
>> them, please?
>>  https://luvit.io/
>> Best regards,
>> Boris Nagaev