Nu (programming language)

{{multiple issues|

{{notability|date=June 2018}}

{{primary sources|date=June 2018}}

}}

{{infobox programming language

| name = Nu

| year = {{Start date and age|2007}}

| designer = Tim Burks

| developer = Tim Burks

| latest_release_version = 2.3.0

| latest_release_date = {{Start date and age|2019|07|29}}

| 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 = {{URL|programming-nu.github.io}}

}}

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,{{Cite web | title=Burks: Bridges and Beyond | url=http://www.viddler.com/explore/rentzsch/videos/13 | access-date=2011-04-11 | archive-url=https://web.archive.org/web/20110514222548/http://www.viddler.com/explore/rentzsch/videos/13/ | archive-date=2011-05-14 | url-status=dead }} 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 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

{{Portal|Free and open-source software}}

References

{{Reflist}}