windows-desktop.md (9510B)
1 # The year of the Windows desktop 2 3 Last year I started a new job, and my company gave me a laptop. 4 This laptop runs Windows, an operating system I have used in the 5 past, but that I am not very familiar with. It is a closed-source 6 OS, developed by a company called Microsoft, whose main paradigm 7 is letting the user interact with the system via a 8 [graphical user interface](https://en.wikipedia.org/wiki/Graphical_user_interface). 9 10 I have tried Windows a couple of times in the past, but I never stuck 11 with it. Around the year 2000 my family had Windows ME desktop, and a 12 few years later I have used Windows XP for a while. It was not unusable, 13 but I have always found it a bit abstruse. Performing basic tasks such 14 as writing a shell (or *batch*) script or editing a configuration file 15 was hard or straight-up impossible. Somehow, the system got slower and 16 slower after a few months of use. And finally, while I recognize 17 that the closed-source development process has some advantages over 18 community-driven open source management, I personally prefer to use 19 things that are libre and free of charge. 20 21 But a long time has passed since I have last used Windows, and it would 22 not be fair to judge Windows 10 based on my sub-par experience with 23 older versions. In this post I'll review my recent experience with this 24 operating system and I'll try to answer the famous question: Is 2023 25 going to be year of the Windows desktop? 26 27 ## General use 28 29 ### Desktop and window management 30 31 Let's start with a pleasant surprise: window management is actually 32 quite good for my taste, much better than I remembered from my ME / 33 XP times. Windows now offers virtual desktops, like any classic DE 34 you are used to. Moreover, you can move your windows to the edges of 35 the screen or maximize them with keyboard shortcuts (namely Super key + 36 arrow keys). You can even do some (manual) tiling: 37 38 ![Notepad and Powershell side by side](tiling.png) 39 40 The desktop looks fairly standard, similar to KDE or Cinnamon: a 41 bottom bar with some launchers, some status and a menu on the bottom 42 left. I approve of not changing things when they are not broken, good 43 job Microsoft! 44 45 The start menu now is also searchable by typing, a nice improvement. 46 47 ### Default apps 48 49 There are some default apps installed in Windows, although I can't say 50 which of them were actually included in Windows and which have been 51 installed by my organization. 52 53 The browser is called Edge, and it is just another Chrome fork. There 54 is an email client called Outlook, a collaboration / video call app 55 called Teams and an office suite called Office. In general these apps 56 work... ok. They are all quite bloated and offer a lot of options. 57 They have their bugs and glitches (see below), but they do their job. 58 59 Honestly I am not impressed by these apps. They don't seem to offer 60 much more than 20 years ago - except perhaps Teams, which is a recent 61 addition. I guess users who make extensive use of their office suite 62 might prefer this, but you'll need a pretty powerful machine to run 63 these programs smoothly. 64 65 As a positive note, the default text editor Notepad is nice and 66 lightweight, a good piece of software. 67 68 ### Package management 69 70 Traditionally, the only way to install new applications on Windows 71 was getting them from a third party source (website, CD-rom, ...) and 72 running an installer. Things are much better now: Windows offers both a 73 graphical "app store" and a command-line tool called Winget. There are 74 also third-party tools such as [Chocolatey](https://chocolatey.org/). 75 76 ### Bugs and sluggishness 77 78 Now let's move on to some of the bad stuff. The system overall feels 79 quite slow and sluggish. I would normally not complain about it - after 80 all, not all software is meant to be lightweight and quick, and Windows 81 is clearly opting for feature richness over speed. However, with a core 82 i9 CPU, two GPUs and 64Gb of RAM I would have expected better performance. 83 84 I have also noticed quite a large amount of small bugs and a few crashes 85 while doing completely normal operations. They range from minor graphical 86 glitches, to workflow problems (e.g. windows rearranging in position 87 when resuming from screen lock, video player freezing until reboot) 88 to complete crashes. The search feature in the file explorer seems to 89 be straight-up broken. The list goes on. 90 91 All of this is not a deal-breaker. It reminds me of the early KDE 4 days 92 - you are constantly fighting with an unstable system, but you can get 93 your job done. Unfortunately for Microsoft, I expect this to put off 94 many new users trying out Windows for the first time. 95 96 ### Games 97 98 Unfortunately, Windows 10 does not come with any game included :( 99 100 ## Advanced use 101 102 ### Configurability and settings 103 104 One of the mistakes you can make when using Windows is trying to use it 105 as if it were Linux. This applies in particular when configurina 106 the desktop to your taste. 107 108 First of all, Windows does not offer as much configurability as Linux 109 does. I am not completely against this approach, it just feels limiting 110 not being able to tune every aspect of my OS. 111 112 Secondly, the only way to configure your Windows system is via a graphical 113 user interface. I find this approach vastly inferior to simply editing 114 a configuration file, for many reasons: things are harder to find, often 115 hiding behind multiple layers of settings menus; the system is not 116 reproducible, i.e. I can't copy my configuration files and move them to 117 my next installation; and so on. 118 119 ![Graphical configuration](settings.png) 120 121 One terrible experience I had was trying to configure the keyboard 122 layout to the one I am used to, that is US layout with Right Alt as 123 [Compose key](https://en.wikipedia.org/wiki/Compose_key). It turned 124 out that this is not possible at all! There is also no way to swap 125 the Escape key with Caps Lock, but I was able to work around this with 126 [AutoHotkey](https://www.autohotkey.com/). 127 128 But again, I should not complain so much: I should use Windows as Windows 129 and accept its choices, and not get mad at it for not being Linux. 130 131 ### Software development 132 133 Although it does not look like software developers 134 are a target user for Windows, it is still possible 135 to do some programming in it. Microsoft even offers an 136 [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) 137 called Visual Studio, and its own framework called 138 [.NET](https://en.wikipedia.org/wiki/.NET). 139 140 Personally I don't like Visual Studio, although many of my colleagues 141 swear by it. I find it slow (more than one minute from launch to 142 "ready"!) and its celebrated auto-completion features seem fine only 143 for trivial stuff, making blatant mistakes as soon as your code has some 144 bits of complex logic in it. 145 146 One very positive note: Microsoft does offer some 147 incredible online documentation for developers, available at 148 [learn.microsoft.com](https://learn.microsoft.com). It is truly 149 well-written, and a big help both for learning and as a reference 150 manual. A win for Microsoft here! 151 152 ### The command line 153 154 Although for Windows the command line is a second-class citizen, it does 155 have one, called **Powershell**. It is also possible to install **WSL** 156 to run a small Linux system inside Windows. 157 158 The Powershell's language is different from the UNIX shell. There 159 are many similarities, such as the basic commands for listing, copying 160 and removing files, but internally it is much different. There is no 161 [piping](https://en.wikipedia.org/wiki/Pipeline_(Unix)), the shell's 162 interpreter is case-insensitive and even its auto-completion feature 163 differs from Bash's! Overall this is not good or bad, just different. 164 165 [WSL](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux), 166 short for **W**SL i**S** not an emu**L**ator, is basically a virtual 167 machine with access to the host file system. It can be hit or miss with 168 graphical applications (support for X was added relatively recently), 169 but it generally works fine for command line tools. 170 171 WSL saved my life a couple of times when I had to edit a file with a 172 quick `sed` command. Working in WSL kind of defeats the purpose of using 173 Windows, but if you really struggle without some of your favorite 174 programs, it is at least an option. 175 176 ## Conclusion 177 178 The first impression I had of Windows was that it is not an OS for 179 everyone. Sure, if you need an advanced integrated office suite or a 180 complex calendar + email + video call system, it might be the OS for 181 you. But I just don't think it is suitable for a regular software 182 developer like myself, and the frequent bugs and general sluggishness 183 are going to put off any occasional user. 184 185 But, to be fair, all software has some bugs, including Linux. People who 186 complain that "Windows sucks" or "it just does not work" probably just got 187 used to the stuff that "sucks" or "does not work" on Linux. Or perhaps 188 they don't want to make the effort to learn a different system, or to 189 spend a few hundred bucks for a Windows license. 190 191 So why is Windows not so popular? I believe it is because people just 192 use the OS that comes with the hardware they buy, without even wondering 193 what operating system they are running. If more hardware vendors offered 194 Windows instead of Linux, it would probably gain popularity. Nobody 195 would complain that they can't run systemd or Vim, because most of the 196 stuff people need is just a webapp nowadays. 197 198 If Microsoft ever manages to convince hardware vendors to ship Windows on 199 their products, maybe then the year of the Windows desktop will come. I 200 wish them good luck, but I'll stick to Linux for now.