There are now (after the improvements currently being discussed: a new module system, super-packages, closures etc.) only a few ways in which Java is losing out to other languages such as Python, Smalltalk or CLOS:- Multiple dispatch, first-class methods: Some design problems inherently demand multiple dispatch.