What Microsoft got right about power users, but not quite
Recently Windows team made a few stunning announcements, which seem to try to win over Linux and OSX developer bunch. Their main target is power users since this group is traditionally overlooked by official Microsoft. Now Windows has entered a battle for developers with their new and shiny tools that mimic a proper development workflow. I’m talking about the following:
PowerToys — a bunch of utilities inspired by PowerToys for Windows 95 which include Spotlight-like launcher and window-switcher, key remapper and, some more.
So I decided to boot into Windows to check them all out. And they are nice and useful until you include user experience into consideration. And let me spoiler it for you — it just sucks.
Want to read this story later? Save it in Journal.
Terminal and WSL 2
Let me start with the Windows Terminal experience. Overall, it works fine. You can do your development work in a neat Linux environment. But the first launch of the Linux subsystem after system reboot is unbelievably slow. Apparently it needs to initialize a hypervisor once, and then WSL launches fine subsequently. My XFCE Terminal starts almost instantly on the same machine. And it doesn’t matter if I launch it the first or tenth time.
Not to mention that wsl$ folder is inaccessible in File Explorer before the first launch of the terminal. You basically cannot skim through your Linux files without enduring this wait.
The next thing in Windows Terminal that really bugs me is the menu. Why is it animated? Or, even if it is, why is animation so slow? I want any dropdown menus to be fast, at least not slower than the speed of thought. And it is not like animated menus are common across in Windows software. To me it seems like this one was specifically tailored for edgy teenagers to boast about their cool new terminal application. Not for professionals.
My next concern is the settings editor. Being a Linux user I’m used to editing text configs. But, really, Microsoft? You choose Notepad as a default editor for settings stored in JSON? It doesn’t have no syntax highlighting, nor indentation editing, which is quite necessary for editing JSON. But altering your settings manually using your favorite text editor is not an easy task either since documentation is outdated on their official Github page and points to the wrong file path.
I haven’t evaluated all utilities of PowerToys. I’m particularly interested in “PowerToys Run” to fire apps quickly since I use similar functionality on other platforms. But once again it is just impossible to work with. It visibly lags and blinks when I type. My laptop fan starts to rotate loudly while I am at it. And it sits in tray. I still don’t get why every windows application feels obliged to sit in a tray.
Moreover it doesn’t index newly installed applications. I guess we’d say it is an early release and hope for a later fix. Notably it has 23k Stars on Github at a time of writing. I don’t think there is any other alpha software given that much love.
But it made worse by the fact that even default windows search lags and blinks all the time. It generally searches better, but not by much. And lacks window switch functionality. If you try to search by part of the name it may not even work. I thought fuzzy searching was a solved problem, huh, Microsoft? You’ve done it right in VS Code, can you borrow that one employee to help for this specific task?
General windows experience
And now for my favorite part of using Windows. Open or save file Dialog is just the worst in all regards. I don’t know how this happens, but it is super jerky when appearing. My guess is some kind of compositing problem overlapping with an attempt to draw widgets asynchronously. And it is not like you can replace it with a third-party utility of some sort.
The right-click context menu is another favorite annoyance of mine. I don’t get why the context menu should contain all the actions available for this file type. Especially insignificant ones like “Print” or “Edit with Paint 3D”. This oddity is worsened by the fact that sometimes the system needs to load these context menu items and makes me wait, effectively interrupting my thoughts and irritating me.
The context menu itself looks amateurish. Some items have icons some don’t and I haven’t found any way to get rid of all of the unnecessary ones. All I want as a user is a few important generalized actions like “Open with” and “Properties”. And maybe a submenu for specialized ones. I don’t care about “Print” or “Give access to” since these operations are perfectly doable using other means.
I’m not sure if rendering lags are my hardware fault. I have a reasonably powerful laptop: Intel i7 6500U running on full performance, SATA 3 Solid-state drive, DDR4 RAM. Rendering is done on Intel HD520 GPU which is decent enough for the modern desktop. My OS isn’t cluttered, it is only stuffed with a minimal amount of software necessary for development work. Linux UI runs fluidly on this hardware even with a bit heavier Desktops like GNOME3. I’m pretty sure if I install Windows XP right now it will be as fast as any Linux desktop.
But even if it is my hardware fault, why would terminal emulator loading take any noticeable time? A system-wide search should not be as sluggish and unreliable. Guys at Microsoft are going in the right direction, but I don’t think performance is their concern yet (or ever, for that matter). And it is not surprising: with the rise of heavyweight JS applications everything not-Electron is recognized as fast nowadays. People rely on “better hardware is coming” for fixing software performance issues.
It is tempting to implement new and shiny features and tell about it in a development blog. But as you cut corners here and there, the overall user experience is lacking. And this is especially important for power users who need to get their work done fast and not break the flow of thought in the process.