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.

Tags Software Development Compilers
Licenses GPL
Operating Systems OS Independent
Implementation Java Other

Tweet this project Short link

Rss Recent releases

Changes: 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.

Changes: 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.

Changes: 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.

Changes: 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%.

Changes: 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.

4a67f3a0e029a9881d135c2bec24cbcc_thumb

Project Spotlight

Tasktop

Enterprise-ready productivity software built on Eclipse Mylyn.

000bd42243d03259200e9b756ff58bcd_thumb

Project Spotlight

phpMyAdmin

A tool that handles the basic administration of MySQL over the Web.