7 ms·
Yeah, the Kotlin inter-op is really well done. Having IntelliJ just work is always discounted more than I think people should. I do wish Kotlin had more patter
by vvanders 11y ago
Yeah, the Kotlin inter-op is really well done. Having IntelliJ just work is always discounted more than I think people should.
I do wish Kotlin had more pattern matching semantics but that's just me being picky, it's a really nice language.
- logicchains 11y ago>Having IntelliJ just work is always discounted more than I think people should. To be fair, Kotlin has the advantage of being created by the company that makes IntelliJ, so it's got a big head start IDE-wise.
- aembleton 11y agoYes, and that is really important when it comes to language use. The more people who use the language, the more it can develop and the more libraries that can be built for it. The other advantage of Kotlin is that it builds on top of the existing Java code base. Java has had decades to build up an ecosystem of frameworks and libraries. Kotlin builds on these with excellent interop.
- mike_hearn 11y agoI like Kotlin too but in fairness this is a Ceylon thread ;) From what I can see, Ceylon has a blend of strengths that should make it appeal to a certain segment of the market. On one hand, it's a fresh start and has a lot of the cleanness and terseness that I like from Kotlin. On the other, Gavin is clearly very much into type systems and type theory, and Ceylon has a more complex/powerful type system than Kotlin does. I'll admit that I'm not totally sure whether the additional complexity is worth it, but I'm very open to being persuaded. So it seems to me like Ceylon should appeal to people who currently like Scala or Haskell and push the type systems to the limit, but really want something without historical baggage like XML literals and other oddities. And I'm sure there are plenty of programmers like that. The real question will be interop costs. Kotlin doesn't have any and that's the main reason people can consider it in existing projects, or introduction inside large corporations. Ceylon takes a more Scala-like approach where it has its own standard library, its own collections, etc.
- gavinking 11y agoWell the thing is that Ceylon offers fantastically smooth interop with both Java and JavaScript. That's one of it's main selling features for most people.
- mike_hearn 11y agoRight, but by "interop" I didn't just mean the ability to call into Java code and vice-versa, although I admit that's the traditional definition. Scala can do that too. What I meant is, Kotlin raised the bar in the interop department to new heights: it uses the same collection types, so there's no conversion between Java and some other SDK, but still manages to enhance them via compiler magic and extensions. It has an auto-converter tool so nobody has to waste time rewriting code that already works in order to use the new features. It can use annotation processors, etc. Of course it also pays a fairly steep price to get that.
- justthistime_ 11y ago> but still manages to enhance them via compiler magic and extensions The thing is that Scala tried to do that for years, and after years of battling subtle, leaky abstractions, they picked a different design. It feels like Kotlin designers are completely unaware of what other languages tried and keep repeating all the mistakes ...
- mike_hearn 11y agoHardly. The Kotlin designers specifically call out Scala's mistakes when discussing why they do things differently. In my experience it works well. I've yet to encounter anything surprising or leaky. Actually the abstractions it provides are fairly thin: you can normally look at Kotlin code and understand quickly what it compiles down to. It may be that in the end, Kotlin succeeds where Scala struggled, simply because the Kotlin designers do a better job.
- justthistime_ 11y ago
- UnFroMage 11y agoCeylon also has excellent Java/JVM (and JavaScript) interop. You should try it :)
- UnFroMage 11y agoCeylon has an IntelliJ plugin in the works that builds on the solid foundation of the Eclipse plugin, so it's picking up features really fast. It should be out in a few months.