John Karahalis

softwaredevelopment

Progress bars—those little horizontal bars that fill from left to right as your laptop or phone updates—are notoriously unreliable. One moment, a progress bar might be 10% full. The next thing you know, the work is done. If a written estimate is provided (e.g., “10 minutes”), you might notice it change dramatically in an instant.

As it turns out, building accurate progress bars is extremely difficult because it's almost impossible for the computer to know how long the work will take without actually doing it.

This is the problem of software project estimation in microcosm.

#Business #SoftwareDevelopment #Technology

The Helix text editor fascinates me.

Vim has been my primary text editor for more than ten years now. (Technically, I've been using Neovim for two or three years, but for the sake of simplicity, I'll use the term Vim generically in this post. The two editors aren't that different, in the grand scheme of things, and their differences aren't relevant here.)

I think of Vim as an IDE that one builds themselves. That can be good and bad. I have a deep understanding of my editor's capabilities, for example, because I enabled many of its features myself. It's also completely free and it supports just about every popular programming language out there. However, configuring it takes time and handling conflicts between plugins can be annoying. I also find that it's difficult to keep abreast of the state of the art in text editing this way. It took me a while to discover that other people were using multiple cursors, for example, because that feature wasn't added to my editor automatically. I'm sure there are lots of other useful features I could add to Vim, if only I knew they were common in other editors. I don't know what I don't know.

Ultimately, if I were just starting out today, I'm not sure that I'd make the same investment in Vim. When command-line editing is truly required (my original motivation), Micro is a great choice, being much easier to use and more than powerful enough for most tasks. For everything else, JetBrains IDEs are pretty magical, if occasionally overwhelming.

Helix seems to sit somewhere in the middle. It's console-based, with modal editing and Vim-like keybindings, but with Everything Everyone Wants built-in: LSP, tree-sitter, fuzzy-finding, etc.

I'm not sure which editor I'll be using in ten years. Maybe I'll still be using Vim because it's comfortable, or JetBrains because it's straightforward. I'll add Helix to the list of contenders, though.

#SoftwareDevelopment #Technology #Usability #UserExperience