Consistency of syntax
- Simple, unified and universal name and namespace handling
- Context-free, consistent, left-to-right type expression syntax
- Syntactically unified function/lambda construct
- Intuitive and unified syntax for arrays, collection types, ranges, and sequencors / iterators
Strong yet easy to use type system
- Strong, compile-time type checking
- All values are syntactically treated as objects, but without "boxing" overhead
- Generic types, parameterizable with both types and values
- Consistent polymorphism (all values are objects) with single inheritance plus interfaces
- Automatic type inference
- Safe and intuitive type checking and type conversion
- Values and types are immutable by default, must be explicitly declared as modifiable
- Type-safe references; no null reference vulnerability
Guaranteed thread-safe data for high-performance concurrency
Work in progress:
- Dataspaces are a core feature of the language
- Compiler statically guarantees no memory data race vulnerability
- Modifiable data never visible to more than one thread at a time
- Dataspaces are a light-weight, static syntax with no run-time overhead
- Data can be shared by passing memory references - no copying required
Modern source file, module, and compilation handling
- Order of declaration doesn't matter
- No redundancy, no forward declarations
- All parts of a source code entity in one place
- interface
- annotations
- implementation
- documentation
- Language support for defining the external/public API of distribution packages
Possible features on vision-list
- Safe unions (so-called sum types) as a built-in language feature
- Comprehensive run-time type information
- Built-in efficient serialization and de-serialization
- Zero-boiler-plate proxying (type delegation)
No comments:
Post a Comment