Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I always wondered why you used lua embedded into redis instead of tcl? Has that been written about before?


Because I thought it was not a good idea to script Redis using an opinionated language as Tcl. Lua is a lot more "algol like", more understandable to the casual script writer.

EDIT: However there is an even more important thing that resembles Tcl in Redis: the commands you send to the server to alter the data set are very similar to Tcl commands.


I find it somewhat amusing (but understandable) that you thought Tcl was too complicated for "script programmers", but fine as the standard interface to get anything done with (raw) redis ;)

It's a shame, Redis could've become the storage back-end for the next AOL server! ;)

Well, I suppose it probably is used with aolserver anyway.

For those confused by this comment, see:

http://philip.greenspun.com/panda/

And/or:

https://openacs.org/

NaviServer appears to be the "new" aolserver:

http://wiki.tcl.tk/2090

While aolserver still exists, I'm maintainence mode: http://aolserver.github.io/


Did sandboxing factor into the equation? My understanding is lua scripts in redis aren't sandboxed, other than the (possibly?) restricted api. But one could limit heap with a custom allocator for example, and cpu cycles with a hook, if desired.


I think that wouldn’t be an argument for Lua over Tcl, as Tcl has facilities built especially for this type of environment:

Safe Interpreters[0] and resource constraints[1] come to mind.

[0] https://wiki.tcl.tk/4204

[1] https://www.tcl.tk/man/tcl/TclCmd/interp.htm#M47


there is no such thing as casual redis script writer

if you are technical enough to write scripts for redis, you are not casual


I actually agree whole-heartedly with this comment.

But I wouldn't have written with such a dismissive tone to a living software god :-)

Anyway, Lua was a fine choice!


Yep but perhaps you want to glue two commands together. I wanted to avoid forcing this kind of users to learn a new language.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: