Hacker News new | ask | show | jobs
by xrd 2622 days ago
Can anyone who has stayed with Atom after evaluating VSCode comment on why to stay with Atom? I switched to VSCode and would never consider going back to Atom at this point.

Since the GitHub acquisition, it makes no sense for MS to maintain both and I agree 100% with the parent comment that this will be killed soon.

15 comments

Two things about VSC, in comparison to Atom, that are Done Wrong: 1) Extensibility. There's like a dozen times more friction involved in creating a plugin for VSC than for Atom. Atom was built to be as easy to change as a web app. They also created apm, which is sort of a clone of npm, for installing plugins. 2) Configurability. I can set personal keyboard shortcuts very easily, and in a way that's easily transportable between installations. I can create a new theme in minutes. Also, the way it handles the config for individual packages is well thought out. Plus, I can tarball my packages directory, extract it to a new machine, and it's basically ready to go with everything.

It's very possible for VSC to improve in these areas. In fact, I'd love to see an "Atom mode" that changes the UI/UX to more closely resemble Atom (and, somewhat by extension, Sublime). You laugh, but there's a reason that every editor takes a swing at a "vim mode". People get comfortable with the aesthetics of their tools.

> there's a reason that every editor takes a swing at a "vim mode". People get comfortable with the aesthetics of their tools.

To be fair, vim is radically different in terms of navigation, keybindings, capability, etc. than your average gui-based text editor. I am not saying that your point is wrong, but vim is sort of an extreme example of a. the difference between vim vs. other editors, and b. the zeal with which vim users tend to cling to it (as a vim user).

It looks to me that keyboard configuration is pretty similar:

https://flight-manual.atom.io/using-atom/sections/basic-cust... https://code.visualstudio.com/docs/getstarted/keybindings#_k...

With VSCode, I haven't had any trouble moving my keybindings file between installations, even between my Windows and Mac environments (I do the same with my theme, and it works great as well).

What functional difference between the configuration styles did you run in to?

Simple is not always better. Especially with plugins you often also want a certain level of quality, organisation and control. I don't know much about the difference between Atom and VS Code on that front in detail, but compared to the more customizable editors (Emacs, vim, Sublime) I was always impressed with the quality of VS Codes plugin-system. While Atom made for a more messy impression, and it was at last the reason why I started to use VS Code more as a side-editor, instead of Atom.
Funny, I just commented on my desire to pick one of the top editors to write a complex plugin in.

While VSC sounds like a better editor, I want to write a multi-cursor, modal based editor with some UI tweaks. Ideally I'll use Xi long term, but I'd like a prototype working first. By your description, it sounds like I should stick to Atom for plugin development then?

I think you'll find that it's easier to do in Atom. However - Atom's API is also probably easier to shoot yourself in the foot with.

Maybe try getting started on both, and see which one is easier or more comfortable?

Atom's user interface feels more ergonomic. Atom can show panels on the left and right at the same time, so you can set it up to have the file explorer on the left, and Git on the right, enabling you to work without having to switch between views. The small buttons for quickly folding panels are also a nice touch.

https://github.com/Microsoft/vscode/issues/26777

Personally I strongly prefer the UI of Atom, especially the iconography, settings menu, and visual layout. VS Code has a lot of extra features it shows by default that for me are just distracting. I love zen mode in Atom and the package ecosystem has been fantastic for me. Teletype is a killer feature, it's such a joy to use and makes me feel like I'm in the future. I've seen a lot of complaints about typing latency but I haven't noticed a difference between Atom and Sublime on either my OS X laptop or my work PC.

I also have a massive personal bias against Microsoft, so take this with a grain of salt.

Psst - Microsoft owns Atom too...
I followed the crowd on the switch from Hot Dog Pro to Notepad++, then followed the crowd again to TextMate. Then again to Sublime Text. Then again to Atom. I installed VSCode and it took over my file extensions without asking me and I got annoyed and was going to go back to Atom, but then wondered why I was still playing this game. So I switched to Emacs.

Now I wish I did that 20 years ago!

Emacs is amazing and I still use it when I'm inside an ssh session. But I'm a convert to VSCode because of the node debugging capabilities. Those are just awesome.
Why? (compared to Sublime Text, Atom and VSCode)
I think it's a case of "you can't be told, you have to discover for yourself"... I've written it off a few times in the past. I thought Emacs was just a text editor - and after trying it a couple of times it seemed like a clunky relic with really stupid keybinds.

This time when I tried it I started to realised that Emacs is a text editor like a saucepan is a popcorn maker: it can do it, but that's not the point.

Once you commit the stupid keybinds to memory, it works the same in most "modes" - git mode, JS mode, file management mode, ftp/remote file mode, hackernews mode... Now I rarely leave Emacs - my entire workflow is inside it and everything starts to feel like "one". It's replaced a dozen third-party apps and websites I'd normally use. I'm annoyed when I have to leave.

It's crap by default, you have to make it your own. Then it's lisp all the way down. You can ask "what is the command bound to the down arrow key?" and it says "next-line". Then you can ask "what is 'next-line"? and it tells you all the function, including a hyperlink to the actual executable source code that you can inspect, or change in place, or use in your higher level scripts.

It's simultaneously living in the past and way in the future. I wouldn't outright recommend it to anyone trying to choose between VSCode and Atom though... you'll just have to discover it for yourself in 20 years time ;)

Do you use it as a debugger? For me, this was the difference in switching (when I am in a desktop environment) to VS Code. The debugger is just so powerful and I have no learned (despite using Emacs for 20 years) how to replicate that in Emacs.
https://github.com/emacs-lsp/dap-mode brings vscode debugger into Emacs.
Nope, just lsp-mode (and Tide). Perhaps that'll take me another 20 years, but I've poured so many hours into debuggers and have never found them as useful as I think they should be. I'm probably "holding it wrong", and if so - I'll get there eventually!
I got it, but I'm not sure I'm ready :-) Thanks for sharing!
I personally never liked VSCode's UI. That's 100% subjective, I'm not claiming Atom's UI is better, I just like it a lot and it was kind of a “love at first sight moment”, and VSCode just didn't gave me that feeling.

Also, I'm using a ton of Atom plugin that didn't exist on VSCode at the time I tried (this may have changed, but since I disliked the UI, I'm not going to try VSCode again).

Atom's Vim-Mode-Plus is amazing. VSC's vim plugin still has a way to go. (It's buggy, sometimes things just don't work) VSC is just not as extensible. If I want to change that bottom bar color, I have to set it in a config file, there's no hook to change it on the fly. If I want to navigate around the interface only via keyboard, it's not a pleasure. If I want to simply open a file in the file explorer on MacOS, I can't just hit <enter>... and I don't think anyone's figured out a way around that yet.
> Atom's Vim-Mode-Plus is amazing

Its even better than vim itself... multi-cursors Vim Mode in Atom is insanely good.

i know you can basically do the same thing with native vim, but having instant feedback like in atom makes it just so easy

Still stick with Atom as my main text/code editor here. I started out with it mainly to write LaTeX, but since do most of my code editing also in Atom. I looked at VSCode back in '17 but found it quite clunky and not as intuitive as Atom. Things like changing key-binding based on a profile for example needs a quick Google - or maybe I am just slow!

I keep going back now and then to VS Code especially when I need to use the debugger to step through some code. But otherwise, my workflow since has evolved around the little niggles of Atom(like having to open separate terminal windows) so I don't feel the need to switch.

I, for one, couldn't get used to VS Code look and feel for some reason. I mostly do Sublime Text, but I combined it with Atom a lot in the past. So yeah, not about features or anything.
I switched from Atom to VSCode (rather enthusiastically). My biggest loss is the find/replace interface from atom -- it was _such_ a nice interface -- so fast to browse over all the matching contexts and replace piece by piece or all at once.

Atom's find/replace interface was the favorite version of the feature I've used in any editor -- would be cool to see how that design evolved to support other kinds of automated edits (like refactorings).

I stayed with Atom for a long while because my main use case at work is editing single text files on remote servers... There's not a great plugin for this in VSCode. Atom makes it easy to quickly open, edit, save, and close over FTP/SFTP.
Tree Sitter. Being able to do Alt+Up/Down and have syntax blocks selected with such a confidence has really changed the way I write code.
This! Tree Sitter is the only thing I miss in VSCode
I still use atom over VSCode because of the UI and the extensions.

The extensions in atom seem to have quite a few more permissions to change the ui than they do in vscode.

At least for clojure development.

I don't use Atom, but one feature it has that I wish VSCode has is "atomic tabstops". It means if you are forced to work against your will on code that inexplicably uses spaces for indentation, it will act as if they really used tabs.

Atom is the only editor I've seen that has it unfortunately.

I was with Atom for years, switched to VS Code and feel in love (save for the find and replace as cited above, I still felt/feel Atom's is better than VS Code's) and stuck with it (VS Code) for months.

The thing that made me switch back was that there was some combination of plugins I was using in VS Code (I think it was the VIM plugin and something else maybe) started freezing periodically and the whole editor would become unresponsive and I'd have to restart. After that became normal I decided to switch back.

In the end I preferred to spend my time coding rather than hunt down the problem.

Also Atom's VIM plugin is strictly better for my use case. The highlighting effect to show you what you just `yw` for example is great!

Funny, I had a similar (but somewhat opposite) experience: was a happy Atom user for some years until it started slowing down, freezing at increasing frequency; it was due to my having a massive tree of folders and files (top-level folder with all projects), with lots of symbolic and hard links. I had checked out VS Code a few times, but finally a couple months ago I was forced to make a switch - then pleasantly surprised how easy it was to migrate to it.

VS Code is not as hackable of an editor, but it comes with great sensible defaults out of the box. I gave up trying to fully customize it, settled with a few tweaks, and have been very satisfied with it as a daily driver. At least for my use case, it's been more reliable and performant than Atom.

The type hinting and "IntelliSense" is one of my favorite features (I'm sure Atom has a plugin for it). I think VS Code hits the sweet spot between an editor and a full-on IDE.

EDIT: Oh, I didn't see this in the article, but it seems Atom is addressing the exact issue I was having:

> The fuzzy finder’s project crawling performance has been improved dramatically by switching to a ripgrep-powered backend. This is most noticeable in projects with large numbers of files - for example, we measured a 14x speed boost in a project with 270K files.

Atom has always 'Just Worked' for me. For my projects (which are mostly Ember and Laravel) VSCode always had some issue, something to do with import maps. It also feels more sluggish to me than Atom.