Google labs are thinking about another language that runs on the JavaVM, named Noop, "A testable programming language": http://code.google.com/p/noop/
It has no subclassing, no primitives, and by default variables (references) are final & not null. It uses properties by default. More details: Noop says Yes to: * Dependency injection in the language, see: http://code.google.com/p/noop/wiki/ProposalForNewableVsInjectable Noop says No to: * Any statics whatsoever * Implementation inheritance (subclassing) * Primitives Fundamentals * No primitives * Has properties * No facility for statics * There is always a seam between any pair of classes, for testing Immutability * final is the default, mutable is a new keyword Strong inferred typing * Avoid null, Types shouldn't allow null value by default Class parameters and properties * class Foo(Bar bar) {} defines the default constructor, has a read-only property bar, like Scala. First Class Properties: http://code.google.com/p/noop/wiki/ProposalForFirstClassProperties Proposal For Composition. Perhaps inheritance can be completely replaced by composition plus polymorphism: http://code.google.com/p/noop/wiki/ProposalForComposition Bye, bearophile
