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.