Nice ist eine vergleichsweise neue
Programmiersprache. Ihre
Syntax ähnelt stark der von
Java, und auch der Compiler erzeugt
Bytecode für eine Java-
VM. Im Unterschied zu Java unterstützt Nice eine ganze Reihe von Sprachelementen, die aus der Welt der
funktionalen Programmiersprachen bekannt sind. Neben echten Funktionen zählen dazu auch die von
LISP bekannten
Multimethoden (multiple dispatch),
Closures und Higher-order-functions.Nice setzt das Paradigma der
statischen Typisierung um, weicht dieses jedoch durch einen Typ-Inferenz-Mechanismus auf. Aus diesem Grund ist es nicht notwendig, jedem Parameter zum Zeitpunkt des Programmentwurfs einen Typ zuzuordnen, insofern sichergestellt ist, dass dieser zur Laufzeit dynamisch ermittelt werden kann. Zudem beherrscht Nice
generische Typen, wie sie mit Version 1.5 auch in Java eingeführt wurden. Dabei wird das Ziel verfolgt, Class-Cast-Exceptions soweit wie möglich zu verhindern. Eine Besonderheit dabei ist, dass der
Nullwert (optional, um die Interoperabilität mit Java nicht zu behindern) als eigenständiger
Datentyp betrachtet wird und es so mithin möglich ist, dass Auftreten eines Nullzeigers bereits beim Compilieren als Typfehler zu erkennen.
Mehr unter Wikipedia.org...