Fork me on GitHub

@seancorfield: Well, as I wrote there I disagree, but I don’t think we’ll get anywhere going over it again. I think it’s going to be more Kotlin for me, which makes me sad.


Yours is definitely a very interesting "edge case" in terms of Clojure projects, so deeply embedded with existing Java code, so full of null values.


I wondered whether you could build a sort of Kotlin "wall" around the Java and have happy Clojure inside that?


Well, a lot of people using Cursive are using it because it has good interop support. This must be hurting them too. Rich made the decision to embrace the host - interop is generally considered idiomatic.


Maybe, I’m not sure. Honestly, I’m just not sure how much I’d gain by doing that.


I mean, I’ll have to when I talk to nREPL or lein or whatever, but for application logic I’m starting to feel like I’m fighting the language.


I already run a significant fork to improve the interop.


^ I didn’t realize that. What sort of changes have you made?


And what version of Clojure is it forked from?


I have two new forms, define-class and extend-class, which allow me to extend abstract classes, call super methods etc. One is like deftype which allows class extension, and the other is like reify but allows class extension.


It’s based on 1.7 right now, I’ve actually rebased it to 1.8 but haven’t tested and started using that yet.


It has various other niceties, some of which have made it into Clojure proper now (allowing a deftype to load its containing namespace when the class is initialised, and a few others)


And a few bug fixes from JIRA


After using Kotlin a while, I have a bunch of other things I’d add to it, but I’m going to wait a bit and decide what I’m going to do before investing more time there.