Yes, but with certain downsides. The app is going to be larger than it would otherwise be. The development process is going to be far more difficult that it would otherwise be (configuring things, getting it to work, dealing with new versions of your tools). If you're writing a real-time game, it's probably not going to fly to do this, because in a game you need complete control over all memory allocation to avoid or control garbage collection. Something like Scala spins off a whole bunch of little objects non-stop in ways you can't control, in addition to using far more memory than a normal Java app.