home contents changes options help

Rochus Keller wrote:

Lua is one of the best scripting languages I'm aware of (and you can believe me I used quite many of them). It was written by R. Ierusalimschy, L. H. de Figueiredo and W. Celes from Tecgraf, PUC-Rio, Brazil, starting more than ten years ago. The concepts and implementation are very slim and straight forward. The compiled C code is only about 100kB including standard libraries and runtime services (i.e. garbage collector, etc.). The virtual machine is very efficient and robust (one of the fastest according to computer language shootout and my own experiences from other projects). The host API is very flexible and easy to adapt to C++ (the host language of CARA). I had no problems compiling the sources on all platforms supported by CARA (no ugly ifdefs and make-file orgies). All in all Lua is mature and excellent work .

The semantics of the language are quite similar to Self or EcmaScript? (even omitting some of their peculiarities). The meta table concept of Lua 5 is nice (better than in Lua 4) and allows rapid coding. The object model of CARA is easier to adapt to Lua 5 than for example to Tcl or Perl. I also noticed that the syntax and semantics of Lua is easier to handle by typical CARA users (who are NMR spectroscopists) than for example Python, Ruby or even JavaScript?.

Lua is well documented. Anyway one doesn't have to read hundreds of pages to be able to use the language and its libraries. The reference manual is easy to read. There are also tutorials and examples, a dedicated users group and a Wiki. You can also expect a growing number of CARA scripting examples to be available within the next months.

Some Terms:
CARA is built on top of the "NMR Application Framework" (NAF) and the "CARA Object Model" (CARM). The Lua programming language with its standard libraries is conceptually orthogonal to CARA.
CARA is the host application of the built in Lua virtual machine and visible to Lua scripts by means of the "CARA/Lua Application Programming Interface" (with the working title CALUA). It is an adapter to large parts of CARM and also the CARA tool windows like MonoScope etc. in near future.