Nu (programming language)

Nu
Paradigm structured, imperative, object-oriented
Designed by Tim Burks
Developer Tim Burks
First appeared 2007 (2007)
Stable release
2.1.0 / April 15, 2013 (2013-04-15)
Typing discipline dynamic
Platform x86
OS OS X
License Apache, v. 2.0
Website programming.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 OS X through its Cocoa application programming interface (API). Implementations also exist for iPhone and Linux.

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

Considered a niche tool, possibly because of its Lisp-like syntax,[2] it is notable as part of a rise in use of functional programming languages as of 2014.[3]

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 and the equivalent in Objective-C; 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 sample, 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. Brandon Werner. "The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp". Retrieved 2014-05-21.
This article is issued from Wikipedia - version of the 9/26/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.