I've lurked on comp.lang.forth for a long time. One thing I couldn't understand is why people constantly compared Forth with C, which was pointless in my eyes because they where in whole different categories.
It became even more pointless when Lua began to gain traction, because as a lightweight interpreted language, it was a serious contender. That's even more true for Newlisp.
+ Lua and Newlisp are about the same binary size, but Newlisp packs a lot more functionality out of the box
+ Newlisp doesn't rely on garbage collection (but the pass-by-value semantics that ORO requires are sometimes difficult to deal with)
+ Newlisp has macros
+ Newlisp's documentation is better
+ Newlisp is a simpler language, so I believe that parsing speed is better than Lua.
- Lua is faster, even without JIT
- Lua has better debugging support
- Lua has coroutines (Newlisp has IPC but it's heavier and not 100% multi-platform)
- Lua has much more mind share (nothing you can do about it, except make Newlisp better)
All points are not equally important. Lacking lightweight threads isn't a big deal as long as one has non-blocking I/O. Debugging support is important because bug squashing can kill productivity - especially for late-bound dynamic languages in which a simple typo can result in a bug (that's why most such languages have a so-called "strict mode"). Being slow can be acceptable to some extend, as long as interfacing with C (or eventually with external programs but that's really a last resort) is easy.