Components not an IDE?

Richard Gaskin ambassador at
Tue Nov 24 11:58:45 EST 2015

David Bovill wrote:
> Richard below I am actually suggesting using npm as is - not simply
> implementing a library in LiveCode. That way any node developer could get
> up and running using LiveCode with a single "npm install livecode" call.
> The Livecode package would be described in package.json and would install
> the needed binaries / engines.

Unless LiveCode objects are directly interoperable with Node.js, what is 
the advantage of that format?

JSON is a great solution for exchanging data between programs that don't 
need to know much about each other's internals, a more streamlined 
alternative to the role XML played just a few years ago.

Useful as plain-text representations are for exchanging data, programs 
generally don't actually use the data until it's been de-serialized from 
its plain-text format into a local object/array.

MongoDB uses BSON ("Binary JSON") for more efficient storage and 
transfer, and in LiveCode we have what I like to call "LSON", 
associative arrays serialized into a compact binary form with the 
arrayEncode function.

The engine-level support for LSON is robust and very efficient, 
performing probably at least an order of magnitude over any plain-texxt 
representation like JSON.

The code to serialize and deserialize LSON is already written in C++ and 
compiled into machine code in the engine - and better still, 
field-tested for many years.

We have several JSON libraries in the community, and while they're 
becoming more robust and efficient I don't believe it will ever be 
possible for any scripted solution to perform as well as what we can do 
today with LSON.

I appreciate the benefits of using existing standards, even de facto 
ones, where relevant; for this reason I submitted an enhancement request 
for BSONencode and BSONdecode as options for workflows where we 
currently use only arrayEncode and arrayDecode:

But unless the data contained within the format is useful within the 
system for which the package manager was designed, it would seem the 
benefits would be limited, and ultimately whether we choose npm or apt 
or rpm would make little difference.

All that said, my experience with Node.js has been far from hands-on; 
I've read only a hundred pages or so on it, but have never actually used 
it for any practical task.  Is there something in Node.js I may have 
missed that would make it practical to exchange LiveCode objects with it?

  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  Ambassador at      

More information about the use-livecode mailing list