- Named parameters. Which would allow me to say
foo(src: object1, dest: object 2)the advantage of this is I won't have to get confused as to which one comes first source or destination. I got dinged with this from BeanUtils.copyProperties().
- Package versioning and loading. This would add extra constructs to the
importcommand to automatically download libraries from external sources as long as the
SecurityManagerallows it. Something along the lines of
import somepackage.name.goes.here.* "groupId" "artifactId" "1.0";. The jar load can be done from a
maven-type repository. This should reduce dependency hell a bit since you get the libraries on demand.
- Regular expressions as part of the language. I liked this in Perl, but I don't really mind doing
new RegExp("blah")in Java.
- Version numbers as part of the language. I also liked this in Perl, but I don't really mind doing
new Version(major,minor,subminor)in Java assuming they provide that class as part of the language.
- Eliminate double, int, etc. This I liked in Ruby and Perl because I have arbitrary length numbers automatically. However this is something not really possible in Java I think because of performance issues.
- Support units and currency as part of the language. This would be good, in order to replace something like
new UnittedValue(233, Unit.MILLIMETER)with something like
233 ["mm"]but I think its better done through APIs instead.