Projects / The Nice programming language

The Nice programming language

Nice is a new object-oriented programming language based on Java. It incorporates features from functional programming, and puts into practice state-of-the-art results from academic research. Among the advanced features: generic types, anonymous functions, multi-methods, tuples, optional parameters to methods, design by contract, detection of many errors during compilation (in particular, concerning casts and null references). This results in more expressivity, modularity, and type safety.

Operating Systems

Recent releases

  •  05 Jul 2005 10:19

    Release Notes: This release has many new convenient features, like better nullness analysis (which prevents NullPointerException at compile time), value returns in void methods, binary literals, and more. It also improves integration with Java code by making Nice interface methods available in Java.

    •  28 Feb 2005 16:56

      Release Notes: This release adds many improvements to the possible interactions with Java libraries and tools. It improves some error messages and fixes a large number of bugs. Native compilation with gcj is twice as fast. An important part of the Nice compiler has been converted from Java to Nice itself.

      •  06 Oct 2004 20:16

        Release Notes: This release introduces several type checking improvements. Assertions about the type of variables are used by the typechecker, so that casts are not necessary. There are new library methods for list slicing (l[1..2]), indexing relative to the end, and filtering (l[test]). Underscores are allowed and ignored in literal numbers, like in 'long x = 1_000_123_000_456;'. The nicedoc tool is also much more usable than before.

        •  15 Jul 2004 17:03

          Release Notes: This release has numerous improvements that make integration with Java libraries and tools easier. It also improves the handling of nullness markers on type variables. Compilation speed was improved by about 20%.

          •  11 Mar 2004 01:08

            Release Notes: This release introduces covariant return types along with a syntax that should make the transition from Java easier. When importing Java packages, it is now possible to specify globally if methods accept null arguments, so that the compiler can prevent NullPointerExceptions. The Eclipse plugin now works with Eclipse 3.0 M7 (although 2.1 is still the preferred version at this point). It is available in the eclipse package.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.