On Jul 14, 10:52 am, Shantanu Kumar <[email protected]> wrote:
> 1. Data should be immutable by default. I like Clojure's > implementation of immutability and atom/ref (STM). Clojure's transient > are useful too. Hmmm ... need to think about this. > 2. Implementation inheritance should be disabled. No abstract classes > either. :) Not practical because inheritance is needed sometimes. Even Go supports it though it is not advertised. But I agree inheritance is generally to be avoided. My thinking is that by default classes will be final unless you explicitly allow inheritance. Need to think about the syntax for this. > 3. Inter-operable and binary compatible with Java. Should be able to > call Java code. There should be a mechanism to call from Java. Agree. No special mechanism should be required - as the language should transform to an equivalent Java program. > 4. Syntactic sugar for defining and implementing Thin-interfaces > (interface with just one method signature) - then it looks like a > closure. Not sure what you mean by this; could you give an example. > 5. Checked exceptions should be regarded like unchecked ones. Agree, need some advice on how to do this in a generic way. > 6. No "static" blocks of code. It would be nice to avoid, but static initialization of modules is often needed. > 7. No "synchronized" keyword. Language should have better concurrency > primitives. Queues / message passing (actor/agent model?) may be > favored. Certainly not something as verbose. I am thinking of supporting explicit locks (mapped to java.util.concurrent.locks). > 8. Should not introduce monkey-patching. But anything like Lisp macros > would be great. Not familiar with this. > 9. [Optional feature] Regular expressions at a language level. Not a big use case for me ... > 10. [Optional feature] Conditions and restarts as in Common > Lisp:http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-... > try-catch-finally seems good enough to me. Regards Dibyendu -- You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en.
