NX is derived from lessons learned during the development and long use of XOTcl designed in projects containing several hundred thousand lines of code. XOTcl was designed to provide support for object-oriented design patterns and to provide a highly-dynamic programming environment. NX adds to this design features for language-oriented programming.
By removing sources of common errors, NX makes it easier to maintain large systems involving teams of developers. It encourages developers to write better structured programs by providing clear interfaces. Explicit interfaces improve reliability and reuse of components. NX facilitates language learning for novices by adopting a streamlined terminology.