5. It should be "interpreted, threaded, and dynamic".
I can see how the first 4 are good goals but 5 makes no sense what so ever. What do you mean by this? Supporting threading maybe (and many languages do this), interpreted why [and Java is arguably not interpreted] and what exactly do you mean by dynamic?