This month’s development setup experiment has two goals.
- Install packages without Homebrew
- Try Fleet and JetBrains WebStorm.
Why
I’m always trying new things. For the last couple of months I have been using a largely command-line based set of tools.
My Neovim config turned Neovim into an IDE with LSP and more.
Command-line based setups are minimal and fast, but they have a steep learning curve and take a lot of time to configure. People constantly tweak their Neovim configurations, and I was no exception. There is even a Neovim plugin which tells you how many days have passed since your last configuration change.
I began to wonder - How might a developer set up a Mac for software development while relying on packages managed by the software authors themselves? I also was curious to see how the JetBrains family of IDEs had changed over the years.
Software installed without Homebrew
Setting up Multipass
First, instantiate a VM.
multipass launch -n c9r --cloud-init cloud-config.yaml
Mount your home directory.
multipass mount $HOME c9r
Multipass aliases allow commands in Multipass VMs to be run from the host OS.
multipass alias c9r:tree tree
Now I am able to run tree
from macOS.
JetBrains WebStorm
Pros
- Little customization needed out-of-the-box; everything just seems to work
- Full-featured Git client and terminal
- Excellent plugin for Vim keybindings
- Robust autocompletion
- Built-in HTTP client
- Dependency diagrams
- Support for a wide number of front-end frameworks without having to install a third-party plugin
- ESLint integration
Cons
- Webstorm noticeably drains my battery life
- Many of the default keybindings do not follow common conventions on macOS. ⌘-] does not indent, for instance
- I can’t seem to get the hang of window splits
- The overall visual design of the application lacks continuity with macOS, but that is to be expected from a cross-platform product
- JetBrains follows a subscription model which can get quite expensive if you want to use several of their IDEs - I will likely use PyCharm, GoLand, and PhpStorm