This article describes how NaaN is structured. The overall goals are to provide code portability across a variety of environments, extensibility to simplify adding new features, uniform debugging and logging access for reliability, and above all simplicity wherever possible.
Modern software involves an intricate dance among connected systems. Often the communication mechanism is an RPC or API, but NaaN provides the more versatile and dynamic approach of Remote Evaluation.
A computer language may have all of the purity and elegance in the world, but it can never be better than the platform underneath, or the ecosystem it inhabits.
Libraries have always been important to the viability of a computer language and its ecosystem, but now they are essential. A key strength of NaaN is that it can readily integrate libraries from the NPM registry of over two million packages.