I can't stand using VSCode so I wrote my own
bold-edit.com
bold-edit.com
Years ago I had an issue with VSCode: it was missing a small feature that was very important to me, with the GitHub issue stuck in limbo.
I ended up going into the source and implementing the feature myself. It took a few hours after bugfixing, I think the fix was ~100 LOC. Then I used the locally-built version. I recall building took a while, and the source and artifacts took a lot of space, but no other problems.
I also created a PR referencing the issue and it got merged rather quickly. Someone else ended up finishing the work since there were some problems (I think relating to coding conventions, and possible edge cases I didn’t need or handle).
Maybe I was lucky for the feature to not require much edits, and probably for the PR to get taken over and then merged fast. But it seems like the author's issues are also small, and it would be easier and more ergonomic to patch VSCode than to create an entirely new debugger.
Tldr: avoid rewriting software. Most likely the gigantic monolith got big because because of all the business logic encoded in there.
This is Cunningham's Law [1]! And it seems exceedingly plausible after observing behavior on many online forums!
I check with VSCode regularly because obviously an editor that is used by that many developers is worth keeping tabs on (pun n.i.).
I spend some time with it and then go back to Emacs because I can’t justify the trade-off, giving up the raw power and performance for just being more in sync with my team or something.
I’ll readily admit some of the extensions are very nice, like stuff for Kubernetes and so on, and they work well out of box. On the flip side, the customization story is not so great.
With Emacs, I usually spend a bit of time with a new package learning how it works and customizing it to my liking and then it typically becomes more powerful and integrated in my workflow than the VSCode equivalent. Plus the LoC count of a package is usually far far less than of an VSCode extension and I can audit it much faster.
I put in a bug report for this years ago but it got ignored :( https://github.com/microsoft/vscode/issues/137066
Vscode has gotten slower over time. It's true you can't get nanosecond performance out of JS, but anything under 17ms should be trivial. I believe the vscode developers are skilled, it's just they don't care (imo) enough about performance for whatever reason, and that's a shame.
Back in the day, I used to go get my coffee, shoot the shit in the break room for a few minute, and come back to find my debug runs just starting.
It was a very special compiler and they don't make them like that anymore.
Finally 30 years later, the pendulum is turning around.
Java is similar (but overall infrastructure around compiler makes it slow).
Golang also quite fast.
The point being that compilers would then target emitting reasonable machine code at speed, and The Real LLVM would do analysis/transform on the machine code.
(1) Single-pass compiler. No separate pass to convert to object or executable.
(2) Written in assembler (!). Helps that Pascal has fewer dark corners.
(3) No use of disk. A single file read or write would take 10-20s on a floppy. Instead, it's memory to memory.
That was peak Microsoft debugging experience for me, everything after that was worse, admittedly I did drop it and moved to Linux, so maybe it is good now. Although I very strongly doubt it.
There was a data entry program (I forget its name) that I liked too. I could enter a complete survey form without watching the screen, just by tab-ing. I memorized the sequences and shortcuts for dropdown. Made a dull job less frustrating.
You can disable it as long as Group Policy doesn't dictate otherwise.
Still, a second seems a bit much for a real-time scan.
So anecdotally (N=1) it’s not automatically horrible in US orgs.
After trying KDevelop, Kate, Eric, Sypder etc. I thought I could write my own.
I had a simple plugin system in mind, with similar to LSP style features (VSCode was not released that time).
The UI was inspired by Blender. Blender has such a fluent UI where you can customize everything.
So I wrote a small GTK library to mimic Blender's UI.
And started development of the text editor. But then got busy with school and left the idea.
Then I found out Emacs and Doom Emacs and dropped the idea of a custom text editor eventually :).
Two reasons: 1. Emacs was 200% configurable, which is what I wanted to implement in my editor too.
2. Emacs worked pretty good on my 2 GB laptop with all the goodies.
But compared to 10 years back (when I was trying these things), it is quite easy now thanks to LSP, Tree-Sitter etc. But it is always a fun ride with algorithms and data structures. :)
I haven't used VSCode, but it is really nice how it changed the text-editor platform with LSP etc.
Now I have a laptop with 24 GB RAM but I'm forever vendor locked-in with Emacs :D
How times have changed.
There were probably other expansions too.
Spacemacs was my answer.
The 'space' in Spacemacs is how all of the menu options trigger, and I find it a pleasant approach.
> I so, so wish there was a better way to do this without fucking electron.
I do all of those things in vim and it works fine. No GUI and I'm sure it's missing some fancy new features, but it's fast and reliable (and it's not electron).
At this point it's just laziness and inertia keeping me on VSCode, getting my neovim setup back (along with the muscle memory) keeps getting pushed off.
I do pretty much the same thing as you, what made you use vscode in the first place? What are the coolest features in your context?
I never got that deep into vim/emacs but I wasn't impressed with their versions of the features I listed compared to what is available in a good IDE like intellij/vscode. I do wish the performance was a bit better but I have a beastly workstation so it's not a big deal.
It does take a fair bit of configuration if you want to start from scratch, but there's also distributions (such as LazyVim [1]) which make it trivial to start from an editor basically as fully featured as VScode.
Of course, there's still the learning curve for a modal editor, but that's the whole point of using vim. I assume there are vi-style plugins for VScode, but then you're missing out on performance.
I would be surprised if emacs couldn't do the same.
I’d go with Jetbrains IDEs for their language stacks though, because they’re really good at what they do.
The disadvantage is of course that it's not integrated, but the advantage is that my editor never crawls to a halt.
It is your drives, no? Does the browser make your system drives work a bunch? Much more likely, it is VSCode running ripgrep (rg in htop/activity monitor) in the background to find symbols in your codebase.
That would be exactly the same regardless of GUI toolkit.
edit: misread "system drives me bananas" as pertaining to "system drives" nvm
In that sense I wonder if your computer just needs an upgrade?
I’m not advocating for e-waste but also if you’re a developer then you’re the most justified person to invest in a beefy system.
E.g., if you have any kind of Intel Mac, you absolutely should upgrade.
I don’t let my computers get older than 3-5 years because compromises to my workflow aren’t worth the cost savings (I just make sure I keep them in good shape and sell them to someone who is going to continue using them). I want to choose the best software for my workflow, which is not necessarily the software that is most resource efficient (that would be like choosing MS Paint instead of Photoshop).
Talk about something as simple as code folding. VsCode does the best job of it I know, and yet the other day it simply stopped working properly for pure JS code, not sure if that's because Microsoft prefers we use Typescript instead of JS. Nothing I did fixed it, and something as simple as that messes us with your workflow. And then I remember that VSCode has introduced a recent bug where after you collapse a piece of code, the file jumps to a weird location. And other paper cuts too numerous to mention, which seems to appear and go randomly
So I tried Sublime text again, only to find that "Collaspe All" does not work properly by design, whatever the reason for that. And it still insists on making many things un-ergonomic.
So I try Webstorm again, and after a few tweaks, it seems to do pretty much what I want. But, it is dog slow, and the display of collapsed comments is a bit weird. I start thinking of writing my own code editor...
My point is pretty much this: The various advanced code editors spend so much effort on advanced features, but they forget that the basic must work flawlessly for most devs to have a good experience. I wish they focused on the basics again to make common sue cases frictionless.
To my mild surprise, it opened in a few seconds, and while all the fancy checking stuff got disabled, basic syntax highlighting still worked so element tags were colorized. Finding and changing the offending element was not much different from normal. I checked memory usage, expecting it to be astronomical, but it was quite within reason (~3 GB IIRC).
I admit I did not expect it to go that well.
Have I got news for you. https://www.disabled-world.com/disability/statistics/
> Currently, around 10% of the world's population, or roughly 650 million people, live with a disability.
> In countries with life expectancies over 70 years of age, people spend on average about 8 years, or 11.5 percent of their life span, living with disabilities.
Sure, not all of the disabilities will apply to using an editor. But disabilities overall are very common. A significant proportion of users of anything are disabled in some way - it just may not be obviously visible.
Flat out you will eventually need glasses and your ability to see differentiate two different colors with a low contrast difference will fall apart.
Do you have a preferred com channel?
And the hundreds (if not thousands :D) of rants by Jon Blow saying how contemporary software performance sucks
The non-open license is a blocker for me; an editor is perhaps the most important tool for me as a programmer, I'm unwilling to risk not being able to use it how I want. This looks like the same reason that made the author write their own editor. I won't do that, I will stick to vim and emacs.
For large project it doesn't scale as well, which is where Rider comes into play, I still daily drive VSC as the editor since it's just way snappier and more fluid than Rider.
Electron makes it easier to build cross-platform apps, and certainly cheaper, but it's not like it's the only way to do it.
I use all three major operating systems on a daily basis, and typically preferentially prefer single-OS apps, as I can typically expect them to be more performant and to better follow a platform's UI conventions.
V8 can also JIT JS to something that runs fast, although the extra layers of abstraction between web code and platform interfaces do not help, and V8 can only do so much.
It was able to perform search and replace at an acceptable and responsive pace, nearly instant.
With VS Code, loading in a big file usually crashes it.
Thankfully I don’t have to deal with this as much as I used to.
Since the license says for personal use, I assume that means I can’t use this in a corporate setting?
Whats the generally accepted legal interpretation for “personal use”.
Point is, "personal use" is such a nonsense term.
I really want GUI programs that don't lose a frame no matter what.
It's written in C++ because I knew I'd spend time optimizing it. I've been writing C++ for 20years so I didn't hurt my foot or do anything that caused me harm
I can't figure out why they didn't use it as an opportunity to bring back Clippy.
I mean, for 7 years? Somewhere around early 2017 things started to get out of hand and VSCode was super hyped. To the point 99% on HN was saying it was very fast. Initially ( Pre 2017 ) it was compared to Atom which means the bar was low. And then somehow people start claiming it was as fast as Sublime or they see no difference.
As someone mentioned down below, both Lapce and Zed is designed with speed in mind. Or just use VIM.
VSCode may be flexible, but it is only fast by the measure of an electron App.
I tried out zed, I don't really find it noticeably faster, although I'm sure it is! I guess there are people who are more sensitive to this sort of thing but for me it's really completely fine.
I use Jetbrains IDEs and am migrating to neovim, even Jetbrains is basically instant searching across large codebases once on good hardware.
Open-source, runs all the VSCode extensions, etc.
Not that anyone would run a binary just like that, but I do find it interesting.
I have... simply the worst of news.
How else are we going to efficiently add 20,000 lines of code we haven’t read as dependencies to our project… this week?
We’d love to do things safer but it’s not in the sprint plan, which plan assumes speed only possible if you use third party tools and code you haven’t properly vetted for basically everything.
Never mind that then you slow to a halt when infosec sees a CVE rate of ten a week against all those packages you had to have, often against ones you’re not even using but are a dep-of—a-dep for some optional functionality you don’t invoke, and now your team spends 80 person-hours a week addressing those and messaging about doing those and having code reviews of one-line dep version bumps and running regression tests and moving them through the deployment pipeline (we’re Responsible and Safe, as you can plainly see, so of course we have at least three multi-step stages to get to deployment, wouldn’t want to be unsafe!), all because we want to “move fast” but also “be safe” (but not at the same time, so the left hand doesn’t know what the right hand’s doing until everything’s already all fucked up)
(Sigh)
Here's the original reddit post: https://www.reddit.com/r/programming/comments/1c8yhll/i_cant...
Very reliable and as fast as gdb is. But with all the problems just using gdb has.
You really dont have to take hours to install and tweak and debug 100 plugins anymore, if you dont want to
A lot of developers have moved on to Rider or VS Code + Rider combo nowadays.