Maybe it's time to port VSCode to native?

4 points by lifeplusplus ↗ HN
Recently I decided to work on my gaming pc, installed vscode and setup everything. I was taken back how fast it felt. The experience was just an improvement all around. This is despite being pretty annoyed by having to relearn windows's flavor of shortcuts

My $3k macbook is also good, but nowhere near gaming pc. So that got me thinking this must be due to vscode being based on electron.

I think electron has crucial role, it allows for quick iteration and which is what's making vscode great right now.

However, vscode has also matured and many features have stabilized. So maybe it's not a bad idea to start creating natively built version that implements all of the stabilized functionality but comes with performance.

Technically speaking, how much speed can be expected from IDE built in C++/Rust from scratch vs Electron.

18 comments

[ 4.6 ms ] story [ 30.9 ms ] thread
The VSCode team know performance is integral to it's success: https://twitter.com/robenkleene/status/1356276306237923330?s... .

I don't think it'd be worth porting over just yet, there's no other IDE/Text editor hybrid that comes close to it performance wise.

Geany comes to mind, as does Vim. KDE's Kate is also quite fast and well-rounded.
Sublime + lsp with add-ons is pretty fast, but that probably strays too far from a real IDE. What ever a "Real" IDE is these days.
purely for speed i used to use sublimetext but got real annoyed for buy now messages.. but it shows performance is very important feature.. if i had a choice between vscode as it's now vs soemthing as fast as sublime but with all vscode stuff, definitely going for faster one.
> but got real annoyed for buy now messages..

And have you considered buying it?

i bought sublimetext like 10 years ago. can't remember exactly. the license is still usable til now.

best $70 i have ever spent.

I wanted to articulate what felt faster

- faster to switch files

- faster to type / input latency

- faster color coding of a file when you open it

- fast autocomplete (not type and wait)

- fast jumping to references (not click wait then new file opens up)

- fast startup time

- fast right clicks (not sure if i imagined it but right clicks felt instantaneous)

I'm running it on a 6 year old machine and it feels very fast. Seems unnecessary effort to port it.
it's kind of a thing you only realize once you experience something better.
I'm sure! I'm going to replace my 2014 iMac with an M1 (or whatever) equivalent once they are released. It's amazing how this machine has held up though.
Your gaming pc screen may have a better refresh rate, like 144hz or 240hz. It could explain a part of why you feel like vscode it more smooth and faster compared to your MacBook with a 60Hz display.
Maybe it’s time to create a good truly cross platform ui library that would allow people not to use electron...
isn't that what QT is
it is not "realy" free very confusing license , and in the future license can be changed again
Flutter is great. Still unstable for web and desktop for now.
Which active ones do we have now?

  - Jvm: Eclipse, NetBeans, JavaFX (still a thing?), Swing/AWT
  - Flutter/Dart: not really/ready for desktop
  - C/C++: Qt (not really free), GTK+ (ugly non-Linux), others...?
  - Haxe
Here's a post[0] that describes the current state:

> People will say “But there’s WxWidgets, but there’s GTK, but there’s Qt” as if someone is looking for ice cream and everyone is going “But there’s frozen shoe leather, but there’s frozen peas, but there’s an empty refrigerator” -- /u/shawncplus

[0] https://blog.royalsloth.eu/posts/sad-state-of-cross-platform...

I've recently had a similar experience. Clean install of vscode after using the same profile for years, and the performance was night and day.

A few days pass, and it's gone. The more extensions I installed, the slower everything became.

vscode is much more responsive on linux (manjaro) than on my beefier desktop rig. no idea why.

the setup is the same. i use the sync features to sync all the config and extensions i use