What I Hate About Your Programming Language
Subject:   What do you hate about AspectJ?
Date:   2003-05-13 19:22:33
From:   anonymous2
AspectJ might have been an interesting case. It supplies something like mixin's for Java by allowing inter-type member declarations on interfaces which are inherited by any class declared to implement the interface. Also, it surfaces the runtime model of interception (as Java might be said to have done with Threads/locks and the synchronized keyword). However, pointcuts can drag Java programmers back into regular expression land...

You use functionality as a rough equivalency test for programs, but they often differ most in the 'ilities, like robustness, portability, maintainability, integration, etc. (through the magic of re-use by libraries, frameworks, patterns, and so forth). So I guess an interesting question would have been what parts of the runtime model belong as API's or should get language-level support?

One answer is that a language should express the programmer's mental model, and automagically take care of things excluded from the programmer's model. The extreme example there, of course, is Visual Basic.

Finally, why do programmers like their languages? That could actually drive away from the principle of transparency towards the clubbiness and security of obscurity.