I started my coding journey with Jupyter Notebooks which worked well for the initial stages. But it got to a point where I needed something a little more “robust”.
Enter, Atom.
Described as “A hackable text editor for the 21st Century”, Atom has served me really well, and continues to do so.
Here’s my Atom setup.
The theme
I code in the One Dark UI and Syntax Theme
There was a time where I just couldn’t get why people used dark themes.
I then tried it out myself, and never looked back.
It’s so much easier on the eyes!
The packages
I have a lot of packages installed – 95 to be precise. BUT, majority of these are the default one’s that come with Atom.
My custom packages include:
- Hydrogen
- autocomplete-python
- file-icons
- linter-flake8
- script
- python-tools # for refactoring
- python-indent
- platformio-ide-terminal
Some of which are visible here:
My all time favourite package
Of all the packages, my favourite one has to be Hydrogen.
Hydrogen brings the capabilities of Jupyter Notebook to Atom. It allows me to run my code line by line and see the outputs then and there, instead of having to save the file and run it via the terminal.
This is particularly useful when I’m conducting some sort of exploratory data analysis.
My somewhat least favourite package
I’m not a huge fan of linter-flake. Undoubtedly, it helps me write cleaner and better code.
But sometimes, when you’ve just got 2-3 characters over the 80 character limit, and linter-flake sends warnings like the Earth is on fire…
That just gets really annoying.
Fortunately, you can set it up so it ignores certain “errors” (like the 80 character limit).
Hydrogen allows me to get a nice, slick preview of the data I’m working with (using df.head()
of course).
Issues with Atom
If you’ve read articles about Atom, it’s highly likely you’ve read that Atom is ‘slow’.
It’s not.
Well, not really.
Atom starts to struggle if you’ve ended up writing a programme that’s printing hundreds of thousands / millions of statements, for instance. #BeenThereDoneThat
But really, you don’t need to print that many statements.
What you’ll want is “status updates”, which you can implement by “counters”.
So I think it’s fair to say it’s slow for some things – but those things arguably shouldn’t be there to begin with.
It’s almost like you can treat Atom’s “slowness” as a warning / “tripwire” to suggest your code’s likely messy!
Leave a Reply