a general purpose library and file format for storing scientific data. It arranges data into datasets (multidimensional arrays) and groups (a structure for organizing objects). With extra software support like a viewer, etc...
an interface for array-oriented data access and a library that provides an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data.
Guy Steele's keynote at the 1998 ACM OOPSLA conference on "Growing a Language" (mostly about JAVA) discusses the importance of and issues associated with designing a programming language that can be grown by its users.