Jump to content

Nu (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Etatoby (talk | contribs) at 22:26, 10 April 2011 (Added references. Hopefully solved notability issue. Added another snippet of code, showing string interpolation.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Nu
Paradigmstructured, imperative, object-oriented
Designed byTim Burks
DeveloperTim Burks
First appeared2007
Stable release
0.4.0 / November 17, 2009; 15 years ago (2009-11-17)
Typing disciplinedynamic
LicenseApache License, v. 2.0
WebsiteProgramming Nu
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 Mac OS X through its Cocoa API. Implementations also exist for Linux, and iPhone.

The language was first announced at C4[1], a conference for indie Mac developers held on August 2007.

Although being for the moment confined as a niche tool, possibly because of its LISP-like syntax[2], it is generally considered stable[3], and is notable as part of a recent rise in functional programming languages[4].

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 Nu code and the equivalent Objective-C code; it also shows 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 snippet, from the nuke tool bundled with Nu, also shows the influence of Objective C, LISP, and Ruby in the design of the language.

See also

References

  1. ^ "Burks: Bridges and Beyond". Retrieved 2011-04-11.
  2. ^ Paul Graham. "Being Popular". (section 7. Syntax). Retrieved 2011-04-11.
  3. ^ Jason Grossman. "Nu Seems Stable". Retrieved 2011-04-11.
  4. ^ Brandon Werner. "The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp". Retrieved 2011-04-11.