MS dev home

MS dev home

TLDR: Dev Home is cool; Linux should do one; I'm going to have a go at making an open source distro-agnostic version.

I'm first going to pat myself on the back slightly on this one in that I have suggested something very similar for years really in the Linux community, which was the idea of config management for dev or even other use cases generally. My idea was generic configs, so for instance, you would have a meta-package for Ubuntu that would install common tools for a Python developer to use. Basically a yearly strawpoll like what Stackoverflow does, which would say "what is the most common editor for X language" or "what does every dev install day 0 for any new machine?" and just do that in the installer or in an app. Windows has now done just that with their "Dev Home" application and config question feature. Basically, if you install Windows 11 now, you will get a screen asking "What kind of user are you?" with 10ish checkboxes, and I guess they use this information for use case targeting or installing stuff like Dev Home.

Zooming in on Dev Home for a minute, let's discuss what it is.

Features:

  1. Config management is done with YAML, so I guess it can be shared as well or even backupable to other machines if you want.
  2. Installing of apps, including ones not in the Microsoft Store, so for instance, I installed Python, PyCharm Professional, and git. Python was on the MS Store and the others on Winget, which is great because it gives an actual interface for that tool.
  3. It has extensions, which really sound useful for corporate customers but are fairly empty for the time being.
  4. It has a link to create dev drives, which I wasn't interested in, but I didn't know Microsoft made a new file system called ReFS, which is a very good feature in general, regardless of the dev home stuff, but just for safe storage in general for sensitive work data.

Some of these you can do right now on Linux, like a mirrored drive with openzfs, or you can do a script to do your install and configuration, but having a centralized standard is the important thing here, and having a UI for it is the important lesson here. They haven't overdone it; they haven't pushed their products out in front of the public yet, but it just seems like a very convenient feature that they could integrate Github features, they could suggest stuff for developers, and they could integrate Microsoft 365 features into it, like document generation, for instance. It has a lot of meat they could add to it, but at the get-go, it is just useful as a config manager and a better way of installing common tools that developers can use and trust more than googling and getting an installer from a website. So that part has been knocked out of the park.

For Linux, though, the lesson here is that config management is a big deal, and having that outlet and app is a big win for Microsoft in this area where they normally have been very poor. I hate development on Windows; I don't think WSL2 fixes it; I don't think even this fixes it because it goes down to poor coordination at the lower-level parts and just annoyances that you can get around, but I prefer Linux. I really want to see this done to the point where I'm actually interested in making a tool to do it, even if it's not for Oracle (my employer since February) and just in the community in general for Gnome or whatever. It is that important, but it made me think in general just how flakey my Linux dev experience has been in this regard and that no distro has taken the lead in "we are the enterprise Linux dev leader." We have Enterprise Linux as a target platform defined by RH, Oracle, and that ecosystem; we have Debian and Ubuntu being the general purpose open source target ecosystem; we have Ubuntu Studio or Kali Linux offering their nice specific domains; but none have said "we own dev," and that's fairly frustrating and something that I'd hope we can improve.

So my new weekend project is going to make a distro-agnostic Dev Home-like thing like this for a bit and see where it goes.