I'll probably go back to Java for my next big project, and continue to switch back and forth as the languages overtake one another. Before working on graphics, I was involved with Craig Chambers 's Cecil research group. The Cecil group researches issues in programming language design and implementation, particularly with respect to OO languages. Predicate dispatching consolidates these various dispatch mechanisms into a single framework, where the condition of dispatch is expressed as a logical predicate over class tests and program expressions. I feel that there is still a massive gulf between our ability to conceive of solutions to computational problems and the usefulness of our tools for expressing those solutions.
Programming languages are so incredibly complex relative to the programs they are used to express.
This has ramifications in language design, compiler design, environments, and support tools. I feel that the solution may lie in some sort of visual paradigm, though I haven't yet stumbled upon the natural solution.