jeka icon indicating copy to clipboard operation
jeka copied to clipboard

Add Kotlin support

Open djeang opened this issue 5 years ago • 3 comments

Jeka should accept build classes to be written in Kotlin. Beside, Jeka should propose a convenient way to build Kotlin project.

djeang avatar Feb 09 '20 18:02 djeang

Hi, I just wanted to give my opinion here, as someone who actually feels like Jeka can be a promising new build system for Java!

The main thing that attracted me to give this project a go is that it seems to be very lightweight and it feels like a Java library, not a heavy build system like Gradle.

It's really excellent that I can write build logic in Java, as it feels like it integrates well with my Java projects without introducing the complexity and maintenance issues with having a second language, like Groovy or Kotlin, to keep up with.

I actually love both Groovy and Kotlin, but over the years, I have suffered as a consequence as it's not trivial to keep up with the pace of changes in Java, which is evolving pretty fast these days , as well as Groovy and Kotlin (and in my case, Gradle, Spock, Kotest and all related stuff around that). Supporting Kotlin is much harder than it seems... Gradle, for example, has a long running issue due to plugins being written in one Kotlin version, the user wanting to use another, and Gradle itself internally using yet another version.

Having a build system that only requires me to have a modern enough version of Java would be a dream!

So , while I think it's great that you want to add support for Kotlin, I would like to suggest that the basic runtime do not include that (not knowing whether or not that's already what you plan to do).

The current distribution seems to be in the order of 6MB? Which is pretty great... adding a Kotlin compiler would triple that, probably? Anyway, just wanted to raise my concern because I would love to have a really lightweight build tool for Java, and I'm afraid including Kotlin by default could make it heavy (imagine having a build system so heavy you need a daemon to make it fast enough!).

renatoathaydes avatar Nov 26 '21 20:11 renatoathaydes

Thank for your feedback. Always good to hear.

Don't worry, Jeka won't get bloated by this feature and should even get lighter than it is now. Indeed, the Kotlin specific libs will be downloaded on the fly, only if needed.

In the future I will generalize this approach to get a far smaller distribution by removing things like ivy, classgraph, bouncycastle out of the main jar.

Last but not least, the next release will feature a completely reworked execution engine, leading in a quicker startup and a cleaner & lighter overall design. I'm currently focussed on it

djeang avatar Nov 27 '21 11:11 djeang

Great to hear that! This project is looking incredible!

renatoathaydes avatar Nov 27 '21 16:11 renatoathaydes

Kotlon JVM plugin has been release in 0.10.4

djeang avatar Jan 11 '23 20:01 djeang