Nu (programming language)


title: "Nu (programming language)" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["lisp-programming-language-family", "class-based-programming-languages", "free-and-open-source-compilers", "procedural-programming-languages", "object-oriented-programming-languages", "programming-languages-created-in-2007"] topic_path: "technology/programming-languages" source: "https://en.wikipedia.org/wiki/Nu_(programming_language)" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::data[format=table title="infobox programming language"]

FieldValue
nameNu
year
designerTim Burks
developerTim Burks
latest_release_version2.3.0
latest_release_date
influenced_byLisp, Objective-C, Ruby
typingdynamic
paradigmstructured, imperative, functional, object-oriented
platformx86
operating systemOS X
licenseApache, v. 2.0
website
::

| name = Nu | year = | designer = Tim Burks | developer = Tim Burks | latest_release_version = 2.3.0 | latest_release_date = | latest_test_version = | latest_test_date = | implementations = | influenced_by = Lisp, Objective-C, Ruby | typing = dynamic | dialects = | influenced = | paradigm = structured, imperative, functional, object-oriented | platform = x86 | operating system = OS X | license = Apache, v. 2.0 | website =

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, a conference for indie Mac developers held in August 2007.

Example code

This Nu code defines a simple complex numbers class.

::code[lang=lisp] (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.

::code[lang=lisp] (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.

References

References

  1. "Burks: Bridges and Beyond".

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

lisp-programming-language-familyclass-based-programming-languagesfree-and-open-source-compilersprocedural-programming-languagesobject-oriented-programming-languagesprogramming-languages-created-in-2007