Live data from Hacker News

JetBrains Fleet drops support for Kotlin Multiplatform

blog.jetbrains.com

111–120 of 276 posts

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#111
post #88

Most comments here either praise IDEA-variants as "outstanding", or blame it for being "slow and complicated", both of which feel odd to me (especially the first one). I strongly prefer JetBrains products over anything else, so if it's possible to use PyCharm, I will use PyCharm instead of Vim/VSCode. Yet I cannot imagine calling it outstanding. Maybe, that's just my bad character overall, but I just am surprised why…

A lot of what you're talking about is open source. Here's the extract method refactoring (Version 2):

https://github.com/JetBrains/intellij-community/tree/44a42be...

As you can see it's not that easy. At the core of an IDE is a database that has to incrementally update itself based on real time edits that can arbitrarily break the datasource (code) that the database is modeling, often in highly confusing ways. Refactorings often require sophisticated data analysis in order to not break code themselves, they aren't simple at all.

The LSP architecture complicates things further by introducing an asynchronous data structure synchronization problem between frontend and backend. Jetbrain's architecture is conventional, with analysis and UI running in-process. They can share data directly and use locks for mutual exclusion. The downside of this is that if locking isn't fine grained enough, or if the GC causes stalls, you can get UI hitches and sluggishness. The upside is that it's a pretty dramatic productivity upgrade because you aren't solving all these hard distributed computing problems that the LSP design introduces.

So the question becomes who solves their problems first? Jetbrains and Oracle have done a ton of work in recent years on solving these problems. Java GC pause times have been driven down aggressively, now there are fully pauseless GCs available although I don't know if IDEA uses them yet. GC pauses haven't been visible for me in years at any rate. And Jetbrains have done lots of work over time to reduce the amount of lock contention that can cause UI stalls, to introduce limited amounts of asynchronous replication within the process and so on.

The thing is, when you're in-process you can use the same ideas as in the LSP to reduce UI latency but to whatever extent makes sense or is necessary in a specific context. Nothing stops you tossing in an actor with a queue if you want that, or introducing a lock if a UI stall is in fact preferable to the alternatives (and sometimes it is). But you aren't bound to it all the time. Whereas the LSP design with separate processes and a hard address space separation doesn't allow that. To add anything you need to extend the protocol and handle the possibility of data skew between frontend and backend, which introduces a lot of surface area for bugs, which then drains time that could be spent on fixing refactoring bugs or adding new static analyses. So it's a hard tradeoff and one isn't clearly a winner to the other.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#112
>With Fleet you can collaborate on code in real time

Genuine question - Does anyone actually do this? What for?

I have been writing code for about 25 years and not once did I wish for someone else to start editing the same files I’m editing in real time. Yet, this seems like a huge selling point for some of these editors.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#113
post #112

>With Fleet you can collaborate on code in real time Genuine question - Does anyone actually do this? What for? I have been writing code for about 25 years and not once did I wish for someone else to start editing the same files I’m editing in real time. Yet, this seems like a huge selling point for some of these editors.

It's helpful for mentoring or pair programming with another person. They can more clearly see the code as you change it, like Google Docs, rather than just watching a screenshare.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#114

I still don't understand where Jetbrains is going with Fleet. Is it a platform to prototype ideas for their IDEs? Is their long-term goal to replace their IDEs with Fleet? Is it just a standalone product? So far, it seems like they're very slowly recreating their IDEs from scratch in Fleet while continuing development on the IntelliJ Platform and related IDEs, doing twice as much work for nothing.

I've been hoping that Fleet would emerge as a true multi language IDE. I code in GoLang and Python regularly. I currently have the Python plugin in Goland which is not the professional plugin. If I want them I have to use a different IDE and switching back and forth is a pain. Also, with a rewrite I've hoped that remote development will be less buggy than it currently is with Goland. It's laggy too and you see weird…

Can you not use IntelliJ IDEA (the Java one) with the Python and Go plugins?

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#115
post #112

>With Fleet you can collaborate on code in real time Genuine question - Does anyone actually do this? What for? I have been writing code for about 25 years and not once did I wish for someone else to start editing the same files I’m editing in real time. Yet, this seems like a huge selling point for some of these editors.

It's helpful for mentoring or pair programming with another person. They can more clearly see the code as you change it, like Google Docs, rather than just watching a screenshare.

"Code with me", is still a feature i use in IntelliJ. Never used fleet.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#116
post #112

>With Fleet you can collaborate on code in real time Genuine question - Does anyone actually do this? What for? I have been writing code for about 25 years and not once did I wish for someone else to start editing the same files I’m editing in real time. Yet, this seems like a huge selling point for some of these editors.

It’s a nice bonus, but it’s certainly not a critical feature.

In every instance, I’ve needed this I’ve already been on a Zoom call and can simply ask the other person to push their code.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#118

Earlier quoted context omitted.

I think Fleet's their hopeful answer to VSCode. IntelliJ is powerful, but so, so messy, with a convoluted UI from the 90s/2000s. Even the simplified one is much klunklier than VSCode, especially for everyday/every-hour tasks like NPM scripts, debugging, etc. Every essential function is hidden in tiny competing side panels triggered by some obscure icon in a different part of the screen. I love and use Jetbrains IDEs…

You forgot to add "IMHO". IDEA has fantastic UI, it's fully configurable and 100% usable through pre-assigned hotkeys. For example, fuzzy search is available everywhere , in every tool window, in the database window, in search results, etc. The same key combination (ctrl+alt+arrow up/down on my instance) can be used to jump between search results, symbol usages, TODOs, linter results, and so on. They thought through…

I don't know, being uber configurable isn't necessarily what you want when you're not familiar with a tool and you don't know yet what you need to configure or faff with

I've only recently started using JetBrains, so I'm only familiar with the new UI but I distinctly feel like I don't know what I'm missing on extra functions because I'm just not aware of it existing

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#119

I'm a Vim user, but I occasionally try JetBrains/VSCode to see what I'm missing out on and RustRover, CLion, Goland etc. are by far the most sluggish pieces of software I've used. I am demonstrably slower on them than using Vim with my fuzzy finder, LSP, and AI integrations. I thought Fleet might add the "magic" to something more VSCode like, but I also don't understand the long term vision.

IntelliJ IDEA is their real product. Once you've added a debugger, test runner, and decompiler then you're ready to program Java.

Pretty sure IntelliJ comes with all those things?

That's why I use JB products. I download them, start them up and that's it. I don't need any separate plugins, they just work perfectly out of the box.

Re: JetBrains Fleet drops support for Kotlin Multiplatform

#120

Earlier quoted context omitted.

I think Fleet's their hopeful answer to VSCode. IntelliJ is powerful, but so, so messy, with a convoluted UI from the 90s/2000s. Even the simplified one is much klunklier than VSCode, especially for everyday/every-hour tasks like NPM scripts, debugging, etc. Every essential function is hidden in tiny competing side panels triggered by some obscure icon in a different part of the screen. I love and use Jetbrains IDEs…

You forgot to add "IMHO". IDEA has fantastic UI, it's fully configurable and 100% usable through pre-assigned hotkeys. For example, fuzzy search is available everywhere , in every tool window, in the database window, in search results, etc. The same key combination (ctrl+alt+arrow up/down on my instance) can be used to jump between search results, symbol usages, TODOs, linter results, and so on. They thought through…

VSCode can do all of that, and for most languages, VSCode's/OSS LSPs are often more performant/feature rich than whatever running inside IDea that takes tens of minutes to index a project in my computer.

Who should I take seriously now? The "power users" who claim that vim with lsp and terminal is the way, or the "power users" who claim that bloated UIs is the way?

As far as I am concerned, "power users" only really need the functionality to be there and accessible with a command palette, do away with "power users" panels and buttons please.

Post reply on HN