Nice Language

The Nice Language is an extension of the Java Language. It has advanced features like Parametric Polymorphism, Multiple Dispatch, Higher Order Functions, Design By Contract, tuples, Keyword Parameter Passing and Optional Parameters. Unique features also include Abstract Interfaces and a type system preventing Null Pointer Exceptions at compile time. The compiler is Open Source, and the design of the language is open to public review and contributions.

Like many Other Languages For The Java Vm, allows full access to the Java libs.

nice


Clever. It feels a lot like the Dylan Language, but with static typing, Parametric Polymorphism, and Java Virtual Machine integration. Not a bad language, as such things go, but some of the syntax feels a bit more verbose than necessary. Not the ultimate language, but nice. So to speak.

A design decision for Nice is to stay close to Java, except when introducing a difference provides a clear advantage. This is supposed to make learning the language easier, but also comes with the price of some legacy, especially in the syntax. Is this what you are referring to, or is the verbosity in the syntax of the Nice-specific features? Could you give examples? -- Daniel Bonniot


Interesting. An especially unique feature is the idea of an Abstract Interface. As everyone knows, a normal interface tags an object as having a given set of methods and is part of the object's type, but doesn't provide the methods. In Nice, an abstract interface doesn't affect the object's type; rather, it simply tags the object as having the methods. This becomes uniquely useful with method generics. See the Nice manual. In short, it provides something that looks very much like Aspect Oriented Programming.

It looks like an Abstract Interface is like the "Concepts" which were proposed for (and removed from) C++0x? -- Ron Romero

I guess this is generally known as a Mix In ?


See original on c2.com