Nu (programming language)

Nu
Paradigmstructured, imperative, functional, object-oriented
Designed byTim Burks
DeveloperTim Burks
First appeared2007; 19 years ago (2007)
Stable release
2.3.0 / July 29, 2019; 7 years ago (2019-07-29)
Typing disciplinedynamic
Platformx86
OSmacOS
LicenseApache v. 2.0
Websiteprogramming-nu.github.io
Influenced by
Lisp, Objective-C, Ruby

Nu is an interpreted object-oriented programming language, with a Lisp-like syntax, created by Tim Burks as an alternative scripting language to program macOS through its Cocoa application programming interface (API). Implementations also exist for iPhone and Linux.

The language was first announced at C4, a conference for indie Mac developers held in August 2007.

Example code

This Nu code defines a simple complex numbers class.

(class Complex is NSObject
  (ivar (double) real
        (double) imaginary)

  (- initWithReal:(double) x imaginary:(double) y is
    (super init)
    (set @real x)
    (set @imaginary y)
    self))

The example is a basic definition of a complex number: it defines the instance variables, and a method to initialize the object. It shows the similarity between the code in Nu, the equivalent in Objective-C, and the similarity with Ruby.

(unless @prefix
        (set @prefix 
             "#{((((NSProcessInfo processInfo) arguments) 0) dirName)}.."))

(unless @icon_files 
        (set @icon_files 
             (array "#{@prefix}/share/nu/resources/nu.icns")))

This sample, from the nuke tool bundled with Nu, shows the influence of Objective-C, Lisp, and Ruby in the design of the language.

See also

References

  1. ↑ "Burks: Bridges and Beyond". Archived from the original on 2011-05-14. Retrieved 2011-04-11.