Also I think that the marshalling you need for IPC is not so different than the boxing and conversion that you have under the hood if you write in an interpreted language, e.g. Python or JavaScript.
I changed my mind over two electron editors/IDE. I use RStudio and it is really been getting so fast on my old computer that I can't tell anymore. VS Code by Microsoft is so fast and nimble that I have been using it 75% of the time with no felt overhead. It really is an amazing piece of software in terms of speed, now the ram usage is still much higher but for my uses I don't notice it at all on my 8 year old Dell corporate computer.
It's not an either/or problem though.
You actually see this in many IDEs that more features make editing feel more sluggish. This shouldn't happen with this structure.
Both can (and have) been achieved without a client server architecture.
You can also do it async style and have neither of the drawbacks - if the user types too quickly, the autocomp just doesn't show up.
Or are you talking out of your ass?
From looking at similar projects, overhead tends to be in the millisecond range per call, so performance depends on the ammount of back and forths.
Add in all the overhead for serialization and IPC and in practice it looks a lot like the round trip in same data center latency here:
https://people.eecs.berkeley.edu/~rcs/research/interactive_l...
If the performance hit is not noticeable, nobody really cares about the waste of CPU cycles. Especially since a text editor uses something like 1/10 the resources a large, complex program uses anyway.
Some IDEs go as far as to offer low power modes where they throttle external plugins.
I'm hoping to find the time to get more comfortable with Rust and try to contribute at some point
UIs and actual functionality are completely separate implementations. Loading and displaying text are entirely decoupled, so the display doesn't have to care if the actual file is 10kb or 2gb in size.