>>7
Thanks for the serious response.
>> Support dynamic (duck) typing
I'm undecided as to whether I like this or not. One one hand it makes coding quicker and easier, generally speaking, which is one reason I like Python. On the other hand, (in the case of Python anyway, I'm sure you could get around it, in which case duck typing all the way!) it appears to make code completion in editors difficult, which slows coding down (in work I make heavy use of eclipse's code completion).
* Higher order functions
Agreed.
* Garbage collected
Agreed.
* Support for a JIT compiler (compile to (fast) native code)
as well as a native FFI system (ability to call functions from external native libraries. Marshalling of args and return values should be done by VM core)
Assuming a VM based language rather than a native compiled language, I agree with this completely. Ultimately, I want a language that offers 3 options:
- VM interpreting bytecode
- VM JIT compiling bytecode
- bytecode can be (optionally) native compiled during install
Option 3 allows high perfomance native compiled execution but also allows checking and verification of bytecode at install time to ensure it does what it's supposed to (maybe have a manifest where programs specify what resources they use and at install time this is verified, but this is not needed when the VM executes it as it can be checked at runtime).
I want an OS which only allows the admin to install software but users can run anything they like in a VM.
* Have a powerful macro system (defmacro)
Definitely agree with this.
* Support for unicode is a must
I'd take this one step further and say unicode by default.
* Classes and inheritence
Agreed.
* Nested procedures would be cool
Don't particularly mind, but wouldn't complain if it existed. They are useful sometimes.