Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Nu (programming language)

From Wikipedia, the free encyclopedia
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
OSOS X
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 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.

Example code

[edit]

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

[edit]

References

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