Java está de moda. Todo el mundo se lanza a programar en java pero realmente, se puede hacer cualquier cosa en java?
La respuesta es no. Y precisamente sus limitaciones las impone su gran ventaja: la multiplataforma. Ello impide que podamos acceder a ciertas apis de los sistemas operativos. Por ejemplo, en java no podemos hacer una aplicación que se ejecute en una ventana flotante, sin perder la característica de multiplataforma.
Para qué sirve java? Sobre todo, para aplicaciones con uso intensivo de conexiones de red, o internet, o donde sea muy importante la seguridad.
Por supuesto, si lo que buscamos es portabilidad, la opción más clara es java, aunque haya que tener en cuenta sus limitaciones.