www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Noop language

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
Sep 17 2009