Aman Mittal

ATOM- An Editor of 21st Century

The Atom I am talking about is not a small particle in the world of developers. Built and maintained by Github and the community, it is more than just an editor.

In our world, in the world of developers, an editor plays an amount of significant role when it comes to writing code. They might seem just a tool, as a matter of fact, they are, but for someone who takes pleasure in writing code, it is an essential piece in their setup.

Using an editor is really a matter of choice, your comfort zone but the game of plugins have a big role to play. As yourself, I have tried my hands on different editors & IDEs and for now I have decide to settle with Atom for its enormous amount of plugins available. Another reason for me is that it’s written in JavaScript (exactly CoffeScript & since I am a JS enthusiast) and is completely free to use because of its open source normality.

It is inspiring to open-source community as well. Few months back, Facebook released there version called Nuclide which focus more on mobile development. Then there is Electron for building cross-platform desktop application. Both are based on Atom Shell.

Atom is mature in terms of plugins when comes to keeping the pace with newer technologies. When I started out with Node.js, I tried to stick with Webstorm IDE but soon Atom lured me for its support of frameworks like Ionic (a plugin called Ionic-Preview and I am still exploring) thanks to the community plugins and the other matter of fact that it’s open source.

1

Packages

There are more than 4.5k +packages published already. To view, Open the Settings view by clicking Packages > Settings View > Open in the menu bar or by using the (cmd + ,) keyboard shortcut.

Atom Packages are categorized further into:

  • Community packages: Packages written by people outside of GitHub’s Atom team.
  • Core packages: These are developed by the Atom team and come bundled with Atom but you can disable them if they are no use to you.
  • Development packages: Packages which you have on your machine and use in Atom from that local source.

Core Packages do provide support for most favorable programming/scripting languages but if you are using something out of the box then you must check the Community packages. Chances of finding the one are in your favour there.

If you are still unable to find what you are looking, you should try developing a package for yourself and then if you like share it with the community.

TIP- Decreasing Startup Time

There may come a period of time when your Atom might behave sluggishly. What will you do?

  • You’ll remove all the packages (a.k.a plugins) you don’t use but for some reason you had them installed,
  • or there isn’t much use of that particular package and you can do without it,
  • or it was there just for fun. But before removing the packages, one must know which package is consuming how much startup time. You might want some of those unnecessary packages to stay with you if you know they are not the real culprits who are slowing down your development environment.

2

I have seen (mostly on online forums) some developers groan about this kind of sluggishness but I haven’t met it yet.

Recommended Packages

Most of these packages are helpful in my daily JavaScript coding environment. I think they will be helpful to you too.

  • open-recent (to continue where you left)
  • sync-settings (do you work more than one machine? This for you)
  • Ionic-Preview (for people who are working Ionic Framework)
  • terminal-plus (terminal inside atom)
  • atom-jade (there is support for ejs, handlebars, mustache too)
  • jade (if you are into jade, this is a snippets package)
  • js-hyperclick (as your project goes bigger, you will get addicted to it)
  • atom-lupa (nice one if your daily musings includes React)
  • autocomplete-modules (Node.js devs: autocompletes require statements)
  • atom-pair (developed by the guys at Pusher, a must if you do pair coding)
  • javascript-snippets (JavaScript and Node.js snippets)
  • atom-nodejs-snippets (this is another Nodejs & JavaScript snippet package, made by me. Supports ES6 syntax)
  • linter + linter-jshint
  • atom-ternjs (JavaScript code intelligence for Atom)
  • encourage (a nice one to have, if you are having a dark day, fun)

The main advantage of an editor like Atom is that you can highly customize it. You can hack it, make your own packages, or use the one that are already there in the community and bend them as per your needs.

Lastly

3

Note: At the time of writing this post, Webstorm IDE did not have support for frameworks like Ionic and the latest Atom Version is 1.8.0.