| Aggregate/defined datatypes: strings, structs, sets, enums, unions |
Previous work:
Previous discussion:
|
| Fully unified object system (ALL types are objects). |
Previous work:
Previous discussion:
|
| All datatypes, functions, and bound methods are first-class. That is, they can be used and passed anywhere. |
Previous work:
Previous discussion:
|
| Paramaterized typing. |
Previous work:
* Modula-*
* ML
* C++ templates
Previous discussion:
|
| Static type-checking based on type-signatures of: structures, enums, interfaces, sets. |
Previous work:
Previous discussion:
|
| Module system with nicely nested namespaces. |
Previous work:
* Python (although it dosn't nicely nest)
* Java,C# (but avoiding the import chain-reaction)
Previous discussion:
|
| Type description of compiled components, structure layouts, etc. within compiled library packages for any public interfaces. |
Previous work:
* Java
* Microsoft .NET Assemblies
Previous discussion:
|
| Reflection and dynamic method dispatch based on type-library information for public type signature elements. |
Previous work:
* Java
* Microsoft .NET Assemblies
Previous discussion:
|
| named optional arguments, multiple return values |
Previous work:
* Python
* Lua, TOM
Previous discussion:
|
| automatic foreign function (C/syscall) argument marshal/unmarshal without stubs |
Previous work:
* VB
* C#
Previous discussion:
|
| Exceptions, with standard stack-unroll try/except |
Previous work:
Previous discussion:
|
| Recursive functions. |
Previous work:
Previous discussion:
|
| Debugging extension capabilities.. for example, when debugging a GUI, it
would be nice to be able to add the stack backtrace of where the components
were instantiated to the "name" of the component, or some other thing
accessable in the debugger. |
Previous work:
Previous discussion:
|
| Optional Checked Exceptions. Java has pretty much proven that requiring
checked exceptions is both helpful and hurtful. I propose a scheme where
exceptions thrown MUST be declared for public methods. This prevents the
most common problem with checked exceptions in Java, namely that you are
forced to add extra code either to (a) catch exceptions or (b) declare
that you throw them. The compiler will be able to infer the exceptions
which are possibly thrown from all private or protected methods, and
it can read the specification of any public methods in other assemblies.
This will give us the "predictability" that Java's checked exceptions
provide, without the needless work. |
Previous work:
Previous discussion:
|