Sublime has been the undisputed text editing champion for a while now. But a new contender – GitHub’s Atom – is stepping into the spotlight, making noise and trying to steal the not-so-old champion’s thunder. Some 30 versions after the release of Atom’s beta, we felt it would be a good time to test these two head-to-head. On the left corner, in the black shorts with the orange stripes – the long standing champion Sublime. In the green corner – the young and “hackable” contender – GitHub’s Atom.
Here at Takipi we already have a few new Atom fans and the battle is raging. We’re used to fighting monster Java bugs, so we took our chances with a different kind of fight – Text Editor Battles! Let’s get started:
1. Setting up
Both editors are cross platform and available for Windows, Linux and OS X. Sublime’s stable version is 2.0.2, and version 3.0 is in beta for over a year now. As with the recent beta of Atom (v0.120), you’ll have to jump through some hoops for Windows and Linux. On windows it’s recommended to install through the Chocolatey package manager and on Linux you’ll have to build it yourself.
One thing you’ll quickly notice is that Atom weighs well over 60Mb while Sublime weighs 6x less. We’ll talk about that when we’ll drill down into performance. Once installed, you’re ready to roll.
Bottom line: Installation is easier with Sublime, but Atom is still in beta.
2. It starts with a little peek at Atom
If you’re already familiar with Sublime, Atom will feel just like home. The look and feel of the UI, selection shortcuts and command palette are very similar to those of Sublime. Some might even say too similar, to say the least.
A nice addition you’ll quickly see in Atom are the keyboard shortcut hints that appear on the backgrounds of blank tabs. A useful shortcut or feature you’ve ignored in Sublime might become more accessible in Atom. Other than that, here’s a challenge – try closing your eyes for a few seconds going ⌘+Tab (Or alt+tab god forbid), and then try figure out which editor you’re looking at.
Bottom line: There are a few subtle nuances in the look & feel, Atom has a slight rounder touch to it.
3. Find, select, replace and some magic tricks
My first memory of Sublime going past the dark theme was multiple markers. I guess that’s the way editors show off. Combine this with the ⌘+D multiple selection / find next hybrid and you have one of the flagship features of advanced editors, a fast find & replace that allows quick renaming of variables or attributes.
With Atom it’s very similar and the editors even share the same keyboard shortcut. More than that, the command palette from Sublime is also available in Atom (once again, with the same keyboard shortcut), showing all available commands for a certain context. With Sublime it’s also easy to find HTML tags using the fuzzy finder, try opening it with ⌘+P, and then prefix your search with a hashtag. Atom currently lacks this feature.
Bottom line: Atom and Sublime perform pretty much the same here.
4. Tree view, tabs, navigation and file handling
Next up, we would want to load multiple files or projects and see how the editors react. There’s a nice command line shortcut that comes out of the box with Atom. To activate it go through the app’s menu and do Atom -> “Install shell commands”. Navigate through terminal to your desired folder, type atom and there you go, all your files loaded into view. The same is possible with Sublime’s subl tool, but like many other features, Atom just comes out of the box with this.
Once we have the files loaded, the fuzzy finder allows us to navigate between them real quick, exactly the same in both editors. Playing around with tabs, throwing them around and switching between them also works just the same.
The tree view on the other hand (or sidebar as it’s called in Sublime) is a bit different, notice the color changes (both on a dark theme) and the icons. Another thing that should be coming soon to Sublime’s next version and already available on the Atom beta is image previews – right in the editor. It could be useful in skipping the hassle of going out of the editor when working with images.
Bottom line: Could be a matter of taste, I personally like the way it’s done in Atom.
5. Source control integration
Naturally, GitHub’s Atom comes ready with git integration,
committing from the editor is a different story though (Edit: here’s a package that also allows committing to git). When editing a project you’ll find that the tree view has color indicators for .gitignore files and tree view files with changes that have not been committed yet. It also has a status bar with your current branch, a Git Diff package and open on GitHub shortcuts. More advanced features are yet to come.
Sublime is cleaner, but has wider variety of tried and tested integration from external packages including Git, Mercurial and SVN. Atom’s community is showing great signs but it still needs time to prove itself in creating an extensive package ecosystem.
Bottom line: Sublime’s external packages for the win.
6. Web Vs. Native goes back to the desktop ring
Sublime is written close to the metal in C++ using a Python API for plug-ins. A nice little feature not many people are aware of is the ability to open up a Python console from within Sublime or run your Python scripts directly through it without any external packages (except Python of course).
On the other hand, the most amazing thing about Atom is that it’s an all web based desktop app. In fact, it’s built on top of Chromium, Google’s open-source web browser, so… wait wait wait … does this mean… we can fire up the dev tools?
Other than Chromium, Atom is built with C++, Node.js, CoffeeScript and of course HTML, JS and LESS. But how does that affect performance? Well, pretty badly. Atom takes the web native, which means every single tab, window or frame is rendered locally from HTML. Recently it switched to React to improve performance but you can still feel the difference (try resizing Atom or moving to full screen mode for example). One more downfall is that Atom can’t currently handle file sizes larger than 2Mb.
Bottom line: Sublime will keep performing better, but it would be interesting to see just how far Atom could push the envelope of web performance.
7. Packages and customization
The first thing you notice when visiting Atom.io is the tagline: “A hackable text editor for the 21st century”. It also comes comes with over 50 packages pre-installed around its core, everything is hackable and interchangeable. Since it’s web based, creating packages (written in CoffeScript) gives you more control over the editors’ components (even installing packages is easier with Atom’s settings menu). For example, check out this recent package that integrates StackOverflow search results and snippets right into Atom without having to leave the editor:
“Ask Stack” on Atom: https://atom.io/packages/ask-stack
On Sublime’s front, the editor comes with less bundled packages (written in Python). But it’s nonetheless extendable. Even the popular package manager, Package Control, is an external plug-in. A quick look at its front page, and baam – the day has ended, and all you managed to do is play with plug-ins. Themes are available for both editors of course.
Bottom line: Atom, being web based, offers some new exciting possibilities to editor extensions, but Sublime’s community already produces and keeps on producing a feature-rich ecosystem.
Sublime has a huge following of users with hundreds of questions each month on StackOverflow, countless blog posts on any feature by power users, recommended workflows and packages (Even a quite good unofficial newsletter) – mostly pushed by the users themselves with little to non official involvement. Official platforms are quite hard to maintain considering Sublime is mostly a one-person show. Check out this recent post confirming it is still alive and kicking despite the lack of communication.
It’s interesting to spot the differences on this front between Sublime and Atom, whose still taking its first steps. However, since Atom is open-source, backed by GitHub, and developed on it, everything looks modern, shiny and bright: From the website, through the discussion board (compared to Sublime’s “oldschool” phpBB) to the presence and action on GitHub itself.
Bottom line: You’re less likely to get lost with the established Sublime Text, but GitHub knows its stuff when it comes to community management and support.
Atom is open-source and free under the MIT license while Sublime costs $70 per user (This includes the long awaited version 3 update). There are no differences between the paid and free Sublime versions, apart from getting the “unregistered” status off and losing an occasional pop-up screen. Also, the Sublime Text 3 beta is available publicly, but the latest build is for registered users only. That said, $70 for a practically independent developer with an awesome product actually seems alright as a token of appreciation.
Bottom line: Atom is free, Sublime is “Winrar free”.
10. A note about the release cycle
This is a short one, take one quick look at Sublime’s release notes compared to Atom’s release notes. You’ll see that Atom is going ahead full throttle with new weekly releases while Sublime’s are far and in between. In fact, Atom probably already had more releases in its short lifespan than Sublime had since its inception.
Bottom line: When it comes to new releases and bug fixes Sublime is unbelievably slow, while Atom is moving super fast.
So what’s the final verdict?
It’s great to see a new major player in the text editors landscape, especially a web based one. This challenges some basic concepts and gets the conversation going – Always a good thing. Is this a fair “fight” with Sublime’s Jon Skinner and GitHub’s octocat army? Sublime is the undisputed champion with a huge community and it will always have better performance. Although if Atom’s performance issues will not push users away – Sublime better speed up the release cycle, brush up its small UX tweaks, and consider letting in more contributors because it looks like this is where Atom may finally have the upper hand.