1. 4
    1. 7

      We plan to sunset the default REPL implementations in the Kotlin compiler […] We will continue to promote the Kotlin Notebook plugin and IDE Scratch files as solutions for interactive Kotlin development.

      This is the kind of thing that makes me completely ignore Kotlin, even though it is a very nice language. It’s completely hamstrung by JetBrains’ incentive to sell an IDE for it.

      1. 1

        I think there’s also a chicken and egg problem there. Sometimes they release stuff that doesn’t require the IDE like this REPL was, and how many people used it? I do Kotlin backend development for a living and I think it is very under appreciated. But many people still think is only useful for Android development. Jetbrains libraries like Exposed or Ktor are very nice too, but even in backend we tend to prefer Java based libs instead of the pure Kotlin ones, which is a shame.

        1. 2

          Following that logic, Kotlin should sunset any use outside of Android then, since how many people are using that? I’m not saying people aren’t using the REPL (I sure as hell haven’t in the time I used Kotlin), but that there is a tendency in JetBrains, as stewards of the language, to prioritize features which sell IntelliJ licenses and sunset features which don’t. You cannot tell me with a straight face a notebook plugin and IDE scratch files are alternatives to a REPL; the fact that JetBrains does shows that they don’t care about you using Kotlin if it doesn’t mean they can sell you an IntelliJ license. That’s the biggest thing holding Kotlin back. Even Apple doesn’t do that with Swift.

          1. 3

            That is concerning. A similar thing happened for C# and that was what made me quit using it, after 10 years of using it as my main language.

            I think if I ever try Android development I’ll just stick with Clojure.

            1. 1

              No, what I’m saying is that (and this is a personal feeling, very subjective), JetBrains has been trying to create a good Kotlin ecosystem, independent of the Java one, but the company isn’t big enough to push all the projects they start and the community isn’t there to continue them. So they create nice stuff, but very few users, they do not consolidate, in the end, some people don’t even bother to enter the community because the ecosystem isn’t different enough to the Java one, and Java has improved too, so the ecosystem doesn’t improve further by external developers. You say JetBrains makes stuff to sell IDEs. It might be true even though both IntelliJ and Android Studio have free versions. But the REPL was a feature developed by JetBrains too. They also made the Ki Shell, which according to the announcement will also be deprecated

              BTW, Java didn’t have a REPL for decades and it wasn’t a problem for people

              1. 4

                JetBrains has been trying to create a good Kotlin ecosystem, independent of the Java one, but the company isn’t big enough to push all the projects they start and the community isn’t there to continue them.

                That’s what I mean by Kotlin sunsetting anything outside of Android. Nothing else has the community to continue it fully, except maybe kotlin for backend with spring, but even that is a tiny portion and I’m not even sure that would survive if JetBrains dies off. If that’s what JetBrains is concerned about, they wouldn’t be plugging notebooks as an alternative; I doubt notebooks have more of a community supporting them.

                You say JetBrains makes stuff to sell IDEs.

                I’m not the only one saying it. JetBrains said it themselves: https://blog.jetbrains.com/kotlin/2011/08/why-jetbrains-needs-kotlin/

                The next thing is also fairly straightforward: we expect Kotlin to drive the sales of IntelliJ IDEA. […] And while the development tools for Kotlin itself are going to be free and open-source, the support for the enterprise development frameworks and tools will remain part of IntelliJ IDEA Ultimate, the commercial version of the IDE.

                Emphasis mine. They openly resist making a language server for Kotlin, explicitly because it would eat into their bottom line. So yes, while they made a REPL to begin with, the fact that they’re sunsetting it in favour of plugins for the IDE they sell shows that they don’t want you writing Kotlin if it doesn’t happen in their environment. Even Microsoft - who as @kameko pointed in a sibling comment try very hard to make you use Visual Studio for .NET - at least let you use a somewhat gimped LSP for it.

                BTW, Java didn’t have a REPL for decades and it wasn’t a problem for people

                Java was never billed as a scripting language, which JetBrains is clearly trying to make happen for Kotlin.

                1. [Comment removed by author]

          2. 1

            My main issue with any JVM based language for scripting is the long startup times. Having a good REPL definitely helps (I had pretty good experience when using Clojure for scripting for example), but the end result still feels awful to use with multiple seconds to start even a simple program.

            This paired with the fact that scripts fairly often involves passing data around other programs to allow better manipulation (there are workarounds of course, for example saving a temporary file with the computation, but this breaks the flow), and I pretty much always prefer to use Python for those tasks (Go is becoming a strong second candidate though).

            Edit: there is the issue with dependencies in Python that are kind annoying, but I generally fix those with Nix. Also, there is the PEP-723 that finally allows Python to have inline script dependencies, and uv already supports it.