Kotlin's for building large software systems using the tightly-integrated IntelliJ plugin, both from Jetbrains. It was built with that use case firmly in mind, and even had contributions from James Strachan (Groovy's creator) and Alex Tkachman (creator of Groovy 2.0's, ummm..., inspiration Groovy++).
Groovy's for gluing together Java and JVM apps, testing Java objects, scripting for Grails, 20-line Gradle build scripts, and what not, anything that doesn't scale.
What large software systems have been written in Kotlin? I was under the impression that until at least v1.0 (sometime next year?) there is no guarantee of API stability (i.e. there have been and will be breaking changes).
Perhaps Kotlin will be for building large software systems is a bit more accurate.
As for Groovy, Grails performs surprisingly well[1] with Groovy as the primary language (i.e. that the developer uses to create controllers, models, etc.). Would have expected it to fall on its face with a dynamic language in use, but no, hangs in there right around the middle of the pack.
> Perhaps Kotlin will be for building large software systems
Are you arguing over what tense I used? When Jetbrains first announced it was building Kotlin, they wrote it would be designed to be used with IntelliJ, and that they'd then use it for their own internal software product builds. So it is for building large systems, that's its purpose.
When Groovy's creator announced Groovy, it was to be used to script Java. When Graeme Rocher took it over, he put in a MOP so it could be used with Grails, and later a DSL syntax for Gradle and a static compilation mode because it was there.
Is that remotely true? It's been a long time since I benchmarked it but groovy performance (outside of primitives) was dreadful last time I looked. I'd be pleasantly shocked if it could overcome the dynamic language costs.
Not sure when you last looked, but it gets a performance boost from invokedynamic on JDK 1.7 [1] and another from @CompileStatic [2]. Groovy 2.0+ is much better than previous versions.
Related, Grails 2.4 adds support for using @CompileStatic in controllers and services, whereas previously you had to keep that in separate classes in src/groovy.