Software I used for Programming in 2022


Python

This year I really worked a lot on Python web technologies so I came to appreciate all the work that the JetBrains team does to make all the little things (like running Django test server commands) incredibly easy. I essentially did all my Python development in Pycharm.  I’ve had access to the paid JetBrains suite because of the work I’ve done for my open source project: Extra Life Donation Tracker. Since development has slowed a bit on there, I may not be able to renew the subscription. If that’s the case, there’s a big chance that I’ll start saving up some money for a Pycharm Professional license. The only real exception to using Pycharm for programming was when I was editing code on a server. There I would use vim or nvim (more on that later).

Ruby

Just as last year, all my Ruby code was for Advent of Code. I used Rubymine. I, therefore, get a lot less out of Rubymine than I might if I were developing real projects in Ruby.

Go

While a good chunk of my Go programming was for Advent of Go, I did give a shot at programming my DNS updating project in Go. Things didn’t go well since it JSON is a lot harder with Go than Python. I really love how Goland, which I used for AoC and the DNS project, knows about the standard libraries and will add imports for me if I use it within the code. If I lose access to the JetBrains toolbox, I hope I can configure VS Code, Kate, or Nvim to do something similar.

Programming Language independent

I actually didn’t use Kate much this year. Most of my Python code was part of a project large enough to involve Pycharm or small enough to do in vim or nvim. I believe I did use it a bit early in the year for Perl and Haskell in Advent of Code.

I’d previously been using Mu to program CircuitPython for the various Adafruit boards I own. But it was pretty barebones and not a joy to use. Then I saw John Parks (of Adafruit) using Atom on an Adafruit video. I found out that it had plugins to connect to the Adafruit boards and work just as well with CircuitPython as Mu did, but in a more modern interface. I used it to work with my MagTag and Funhouse boards and all was well. (But hold that thought!)

Then in June I decided to finally give VS Code a try. Whenever Michael Kennedy (of Talk Python and Python Bytes) asks folks what editor they use, it seems to be a tie between Pycharm and VS Code. After using it for a while, I was a bit on the fence about whether I preferred it to Kate for small projects. 

But then in June I found out that Github was sunsetting Atom. In retrospect, this was not surprising since Microsoft owns Github. Microsoft had developed VS Code as a follow-on (a fork?) of Atom, so why maintain two codebases? (Another article about the transition) Luckily for me, there’s a VS Code Circuit Python add-on. I have used it a few times. It’s not as easy to reconnect a board to the serial terminal window as it was in Atom, but overall it works very well for developing CircuitPython. I would *love* to see Adafruit throw some developers at this, but I think both they and Arduino see the future in web-based IDEs. 

I got into JetBrains’ Fleet beta preview. Fleet is their answer to VS Code and the interface looks more like VS Code than a typical JetBrains IDE. I made a video where I took a look at Fleet.

JetBrains Fleet

Even though this blog post is more about what I used, than about news, here’s some more interesting stuff in the Atom/VS Code realm:

If VS Code is not your thing, some of the folks who were mad that Atom was discontinued decided to work on a new IDE called Zed. Up until recently, you couldn’t use it. It’s currently on a wait-listed beta. It looks like the devs are going to go with an open core model which is not my favorite. But I guess that’s probably not so different than Pycharm Community and Pycharm Professional. 

Also, VS Code is apparently developed somewhat like Google’s Chrome. It’s mostly open source and then there’s some proprietary Microsoft stuff added on top. So, if you want the VS Code equivalent of Chromium, check out: https://vscodium.com/

Last year I mentioned an issue I was having when launching vim, especially when I had a Python virtual environment enabled. Turns out that was due to using powerline (or at least because I had it installed at the system level?). I switched to using vim-airline and that fixed the issue. It also made neovim stop complaining every time I launched it. This allowed me to start using neovim in favor of vim. 

My next steps are to setup LSP (language server protocol) (maybe with https://github.com/autozimu/LanguageClient-neovim or maybe it’s built in with the last nvim releases?), and  https://github.com/nvim-lualine/lualine.nvim. And once I get that configured, I want to use Ansible to propagate it out to all my computers, servers, and laptops.

Git

When it comes to git-related utilities and sites, there was only one new thing I started using – pre-commit. I set it up for some of my repos to check things like Python import sorting, yaml file syntax, and so on. It helps to minimize the diffs in commits to only what has truly changed.

I admit that I mostly forgot about the existence of gh this year. I only remembered it when I ran an update and saw that it was one of the packages updated. When interacting with Github, I mostly used the site. 

I continued to use Github Actions to automate aspects of repository maintenance, including generating release notes for some of my repos. 

I continued to use a local instance of Gitea to maintain my private git repos.

Mentioned in prior years, but not used this year

MS Visual Studio for C#/Unity

This year I didn’t do any video game development, so I had no need for MS Studio or Unity. 

Drone

Since I mostly use Github Actions and I didn’t work on the package that I do use Drone for, I didn’t really make any use of it this year.

Mu 

As I mentioned above, I switched over first to Atom and then to VS Code for my Circuit Python coding needs.

GitQlient

I’m not even sure if this project is still in development, but until I stop using JetBrains software, I won’t really have a need for it anymore. I may take it off the list next year.

GitKraken

Since I use GitKraken when I’m programming Unity on Windows and I didn’t do any video game programming, GitKraken didn’t really get any use.

Arduino

I generally prefer to program in CircuitPython so I didn’t really use the Arduino IDE this year. I’m excited that the new UI is finally out of Beta, but I don’t know when I’ll next use it.