×

Sign In

Sign in with your username and password to access your account.
×

Atom.io ♥

When I first started learning JavaScript by following along with “The Coding Train” on YouTube (formerly Daniel Shiffman) one of the first things I did was to download a text editor with a cool looking dark theme. Up to this point, the only things I used were CodeBlocks and Notepad++, which are both great tools, but with a light theme very much unfit for serious coding. At least so I thought. /s (maybe just partially back then 😅)

Even though I can’t really remember why I settled on Atom.io , Daniel was using Sublime if I recall correctly, I fell in love with it quickly. Out of the box, it is a capable yet simplistic tool, with everything a non-power-user coding beginner needs. As your skill level increases and nitpicks about the editor pile up, you can start looking into packages to install and make your editor your own. Over the years I customized Atom with multiple extensions to my liking. Maybe among them, there is also something for you.

Basic Features

These features are an absolute must. When creating this list I was a bit surprised that some of these are packages I had installed in the past and aren’t part of Atom by default. These are the absolute minimum you should have installed. :)

Language Comprehension, Suggestions and Debugging

These packages turn Atom from a text/code editor with syntax highlighting and basic word suggestions into a full-blown IDE for certain languages. You get an actual debugger, language comprehension with contextual suggestions and live linting.

atom-ide-ui is a base package that provides functionality for other IDE packages. I recently found out that it is deprecated and should be replaced with atom-ide-base . It still works for me which is why I haven’t switched yet. But some newer packages already expect you to have the replacement.

Autocomplete-python used to work pretty well, as it is powered by Kite, but when trying it out again for this article it seems to be broken. I didn’t even notice as it is ages ago that I wrote anything in Python longer than ten lines.

Web dev hot reloading

When creating a web page or app it is super useful to have it reload automatically when something is changed in the source files. Especially when playing around with the stylesheet, seeing how a change affects the look and feel immediately is great. Also when trying to fix JS bugs with console.log debugging is way faster this way. :^)

The only thing I have noticed is, that atom-live-server seems to crash whenever I put my laptop to standby or close it. But that might be just me, as the standby behavior of my laptop is a bit weird in general.

Minimap

The minimap and highlight selection features could also be part of the “why is that not in Atom by default” section, because now I’m so used to them being there. Scrolling with the minimap is super quick and useful when searching for some kind of eye-catching structure in your code like a big switch-statement, or lookup table with static data.

Regrettably, pigments broke for me lately. For some reason, it lags out the whole editor when scrolling and typing, rendering it basically unusable. At first, I thought it was a fluke, but the behavior is consistent as of late.

When trying to figure out what’s happening I found out, that pigments spawns a child process doing the file processing I would assume. The call to create said process seems to bug out for some reason and as it seems I’m not the only one who profiled Atom with the same question .

Teletype

Teletype is a package that allows working with multiple people on the same project remotely. It functions somewhat like when multiple users are writing in a Google Docs document at the same time, but shockingly well. I used it a bit when working with one of my friends on a project in high school. It is super fun (and admittedly kinda chaotic) seeing two people hacking on the same file in multiple places simultaneously.

Atom quokka

Quokka is a scratchpad to play around with code and get live results. I usually just open the dev tools in a new browser tab and use the console REPL for prototyping. When I found this package recently, I really liked how easy and fast you can write and test an algorithm prototype. It was particularly helpful when I had to analyze some algorithms written in pseudo code for a university assignment. Sadly the full version costs money and it nags you whenever you start up the editor, which is why I mostly disable the package all together when not using it.

Line statistics

Who doesn’t love statistics? If you want to see how chonky the file is you’re currently working on, you can display the line count in the status bar with line-count-status . The other package gives you even more detailed statistics for all of your files. I don’t use it that frequently, but it can be fun at times.

Z80 assembly

Yeah, this one is a bit random. In high school, I had multiple assignments to program in Z80 assembly. Having some kind of highlighting was super nice. As the code had to be translated manually as part of the project and keyed into the machine in hex, converting ASCII string constants with the package below made life way easier.

I haven’t used both packages since, but I still thought they are neat and added them to the list.

Script runners

Running a script directly from the editor is sometimes very handy. When working on an Electron app for my diploma thesis, I always started it via npm-plus to eliminate an unnecessary window switch to the terminal.

Atom in 2021

During web dev classes in high school, I made it my mission to convert my classmates to Atom users with quite a lot of success. I was especially happy, when I heard, that on his first day as a software dev intern a friend of mine and former classmate installed Atom as one of the first things on his new work computer.

But to be honest I have to admit that the feeling around Atom has changed drastically. As an exciting new application made by GitHub creating the whole new platform of Electron Apps (back then known as Atom Shell), it was the goto opensource editor. But recently the project has started to show its age, with competition from VSCode many packages and the editor as a whole seems to be in maintenance mode. After the acquisition of GitHub by Microsoft it also makes sense why the internal focus might have shifted towards VSCode.

There might be a reason why there come up dozens of forum posts when googling “Is Atom dead” with people arguing whether VSCode killed of Atom. I also have thought about switching and have used VSCode when working on an Angular project once. However, I prefer Atom’s UI and it still is getting official updates.

last edited 8th Jul 21