Why is this blog post so negative?
Microsoft are trying and giving all of the developers the tools to help affect the project along the way.
The Terminal project was only announced 1 year ago[0]. As I understand it, they had to more or less split how the whole conhost.exe work in order to allow Terminal to even exist. The settings UI is far from sexy, but they're working on it[1].
I think it's impressive to know that 6 people did that in a year[2].
Regarding the slow startup of WSL2, yes it is slow to start, but would you rather have to wait 5x for a git clone command[3]?
They even have a deep dive into how files are save in WSL1 which can be related to how it works in WSL2[4]
I completely disagree with the conclusion of performance is not Microsoft's concern. The comparison is to GNOME3 which was released in 2011. 9 years of development compared to 1 year. "The polish just isn't there"
Regarding the Windows Terminal settings interface, the default editor is VSCode if VSCode is installed. Given the mention of VSCode later in the article I'm surprised that VSCode was not installed on this user's machine prior to attempting to edit the Settings.
(Also yes, it is unintuitive that you may want to install VSCode first in order to edit Windows Terminal settings, but is it that much of a stretch that Microsoft would imagine early adopter power users to have VSCode lying around already on their machines? As you said, they are working on a "proper" UI for Settings still, but as a first "get it out the door MVP release", especially with all the under the hood work that took to get them there, it still seems a reasonable play.)
I don't know your experience, but on my experience W10 it's painfull slow compared to a native Linux install. I don't talking about WSL1 or WSL2 its slow compared to a native Linux. I say that the whole W10 is slow, to the point that barely is usable if you not have it installed on a SSD.
I switched from WSL2 back to WSL1 because the git action times on the NTFS shared drive were _minutes_ long in WSL2.
I didn't use WSL2 for too long and so I wonder: are processes in WSL2 manageable by Task Manager and Windows Defender as in WSL1? That integration with Windows tooling made WSL1 killer for deploying tools to non-programmers; give them a powershell script and they can run the app and manage it in a familiar way.
are processes in WSL2 manageable by Task Manager and Windows Defender as in WSL1?
I haven't tried (just installed Windows 10 v1909 last night) but I don't think so, given that WSL2 sits in a VM, which WSL1 didn't.
I liked WSL1, but it had a lot of the same drawbacks that Cygwin had, which was that Windows and Linux are different enough under the hood that you start running into issues with file system performance and containers, and WSL2 fixes that at the cost of being clumsier with file management.
The solution I recall for WSL2 is to put the shared files inside the Linux instance instead of putting it in NTFS.
In the case of Unity, why do you need Linux crossover? I can see also having a Unity development setup in bare-metal Linux if you plan to target Linux gaming, but WSL currently doesn't give you graphics.
The game development scenario feels to me like a case where a Windows based toolchain is going to be more coherent. I might be missing something though.
No, I don't _really_ need Linux crossover. I greatly prefer a Linux CLI environment as that's been how I've been comfortable as a developer for nigh-on three decades now.
No, we don't/won't support a Linux port of our product at this time, and as a primary developer it's not worth my time to be hassled by it.
But WSL1 is _so nice_. I've fought with MSYS, MSYS2, Cygwin, various other bash environments and such, and I find none are quite as good as WSL1+X410.
And, let's be honest, if WSL2 is just another VM then it's a worse product than the other VMs that are available and far more mature. Hell, Canonical's Multipass is as good or better.
I really don't get why they went the VM route with WSL2. It seems to totally wipe out any advantage that WSL had over the other VM products.
Where has Cygwin or Git Bash been falling short? As far as I can tell, these days it's not particularly hard to assemble most of the Linux CLI environment in a Linux-like UX on Windows. And these days with process based isolation support on Windows you can even package the dev setup in a Docker container for easier setup.
I really don't get why they went the VM route with WSL2. It seems to totally wipe out any advantage that WSL had over the other VM products.
I/O performance and support for using Docker inside WSL seem like big ticket items. I'd agree with them that the trade-off of convenience sharing files between the two OSes for better support running Linux things in WSL is worth it.
They're brittle as hell when installing additional packages. WSL1 is still brittle at the edges, particularly when attempting to use it instead of a VM to run services, but all of the compilation woes because Cygwin/MSYS/Mingw are special build targets _simply disappear_.
I got tired of having to find patches/hacks/bespoke branches of tools I find interesting just to have them work in half-baked POSIX environments.
If they think Docker is more important than seamless desktop integration then obviously developers like myself are not as important to them as sysadmins who want to run docker services, I suppose.
I really, really want a proper and seamlessly integrated Linux environment on my Windows machine.
M$ will only open source things that don't make them their money, while at the same time, tricking developers that they care by appropriating the communities work and extracting as much value out of Linux for free as possible, for their own benefit. Providing second rate hybrids masquerading as innovations, is all they can really do, to keep people locked into Windows. I stayed on Windows desktop for 20 years even while using linux for servers, and just gave it up this year. Linux has its own problems but if I disagree with the status quo of programs, I can either switch to another distro, mod the open source code myself, or file a bug report so a real person actually does something about it. This is too little, too late, from Microsoft, and accepting it now will just lead to the demise of Linux.
I have trouble believing that Linux's demise is remotely possible at this point. Too many huge tech companies have made their beds with it for Microsoft to be able to change that.
Linux desktop has the opposite problem: it's always been niche for mainstream users because its app ecosystem has never been good enough and it's often finicky to set up, even if its support for developers has been great.
I feel like the author is nitpicking over small issues just because it's Microsoft.
They already admitted that they were wrong about Open Source and even though there is room for improvement, I'm happy that they are supporting power users more and more.
They provide basic functionality I would not even class as for power users. Yeah, they are nice, they were nice in win95. Why do I need a separate Program 25 years later to rebind some keys or switch windows, yet every new win10 version tinkers with cortana? People say it would add "bloat", but somehow basic functionality beneficial to many users is bloat while candy crush and xbox whatever is not?
It is just so weird that after decades, basic functionality like bulk renaming files that should be in explorer is still considered a "power user" feature.
If a feature is missing from Windows it’s a bad thing, it should be in the default installation because it’s not bloat, and users are viewed as helpless to remedy the issue.
If a feature is missing from MacOS or Linux it’s a good thing, it was rightly left out of the default installation to avoid bloat, and users are viewed as empowered to install software themselves.
That argument falls flat on its face when you consider Cortana or Candy Crush. Windows including every last bell and whistle would be a reasonable design choice if those bells and whistles were actually useful.
It is not weird at all once you realise who Microsoft's management wants as its customers. The business people at MS really do not expect nor want customers to be fiddling around with technical stuff. They want customers to see MS as the one who can solve all problems. The business people at Microsoft prefer non-technical customers. Technically-minded customers are not the ideal customers for Microsoft. A great example is Mark Russinovich. They had to hire him to keep him quiet and under control. He had become a problem solver for too many technically-minded customers.
In 1995 this might have been a true statement. In 2020 Microsoft has seen the writing on the wall and realized that to stay at all relevant they need a seat at the table for cloud services. The only way to succeed at that is to win over the ultimate power user, developers.
WSL{1,2}, Windows Terminal, SQL Server on Linux, too many intiatives to count all focused on catching up to the reality that webservices and infrastructure are built on Linux. Whether you believe they'll succeed or not they are most definitely trying.
Microsoft feels very schizophrenic at this point. On the one hand I think there exists a faction that wants to move more into the open ecosystem. On the other though there appears to be an entrenched faction that's hell bent on retaining as much proprietary status quo as they feel they can get away with. Thus the command line is still incompatible with any Unix shell, the SQL syntax subtly different to make it a pain for those coming from other databases, proprietary sockets, threads API's and so on. It's possible to make a Windows ecosystem interact with the rest of the world, it's just a big pain in the butt caused by an endless stream of small pains.
MS is so large, one hand doesn't know what any other division is doing, and their community interaction is horrible because they make more money when people are ill informed and just go with the flow. So even if 10% of the company is "new blood" and was pushing open source out the back door for the past 5 years, the upper management is just now catching on that "hey maybe they were right".
That really depends on what you consider "rest of the world".
A lot of companies, big ones, have their IT setups primarily on Windows. These are customers who make up a huge chunk of Microsoft's revenue. Linux is a small concern at best for them and is not the rest of the world.
What you call "schizophrenic" to me is the reality that Windows has massive user segments of consumers, developers, servers, and enterprise IT, and they all want different things, so Microsoft ends up making something for each group. Linux doesn't have that problem because, for better or worse, it doesn't have much of a footprint for consumers and enterprise IT.
You take for granted that it should be Windows conforming to Linux. Why shouldn't Linux implement Winsock and COM and have Linux-specific PowerShell cmdlets and so forth? Windows dominates the desktop market more than Linux dominates the server market, and one of those wants 'cross-platform software' more than the other.
Expecting a company as large and with as deep a history as Microsoft to change without looking schizophrenic while doing so is unrealistic. Microsoft is a supertanker. When it tries to do a 180 it makes really big circle and takes a really long time to do it.
Nonsense. Different products (from MS) are for different people.
If it was true what you are telling, doubt they woild provide loads of diagnostic tools for windows, debugging tools, kernel symbols, performance tools, etc.
Before they hired/silenced him, those tools were developed by Russinovich.
Comparing the most important product(s) at MS with any other MS product/project and arguing they are somehow "equal" in the eyes of MS (because press releases, marketing) is a losing game.
Kernel symbols are NOT published by Mark Russinovich. What would be the purpose to publish them other than aid debugging the kernel and making sense of what's happening under-the-hood?
Debugging stuff and analyzing performance stuff doesn't make me feel like MS would like to hide internals.
Agreed. My guess is that's an organizational issue. Some developers at MS would really like these features, but can't get them approved to be in the official Windows roadmap.
I’m not sure why it’s important for features to be in the base install (so not in a separate package). Having theM packaged separately makes it easier to push updates, and you only install the power tools if you care about them.
Basic Features in separate packages means, many users will never use them, because they don't know they exist.
Bulk renaming files for example is not something only power users do, it is something only power users can do because it just does not exist and/or is not discoverable for a normal user.
And also as a power user, it is annoying to find a program for every basic thing the system should be able to do.
On the other hand, maybe we should hand it to MS that they so greatly embrace the Unix Philosophy on that point?
I can't be the only user who installs Cygwin just so that I can move files around, calculate hashes of files, and grep with regular expressions. Simple things Windows users don't get out of the box.
> Basic Features in separate packages means, many users will never use them, because they don't know they exist.
If people want/need to do something such as bulk renaming, they can online search for it, as they do for everything else, which will tell them they can install a package from the windows store.
Doesn’t seem that crazy to me as an expectation from end users.
Also, I don’t think that when Microsoft says “power users” they mean developers or equivalent, more like people who would feel “I want more from my system than just consuming content”.
Having a single package to install for those users is a quite flexible approach.
> If people want/need to do something such as bulk renaming, they can online search for it, as they do for everything else, which will tell them they can install a package from the windows store.
Or they'll find some sketchy exe file, and here comes the malware! Windows is really broken in terms of package distribution, and requiring people to go online and search for something so simple is hassle, dangerous, and decreases discoverability for software that really ought to be included in a vanilla install (unlike Cortana, which is a massively bloated feature that many people don't want, but can't get rid of, sort of like Bixby).
Cortana has been moved to a separate package available from Windows Store as of the May update of this year (the mainstream release is in two days IIRC).
There are a lot of benefits for Microsoft to keep a base install and let users add what they want from the Windows Store.
In my experience, most normal users would just assume it is something computers can't do and either rename all files by hand or not bother and leave them be.
And even the few who would do a search would probably stop at the scary though of "installing" something.
As a technical person, these are regular observations from my parents or non-technical work colleagues.
Yup it seems pretty easy these days to just have PowerToys and the Sysinternals suite included by default. They're small footprint but they're all very useful tools for power users.
I am guessing this is a project that separates out the power user part of customizations, into a separate package, and microsoft aims to continuously improve and add sub projects to it.
> But the first launch of the Linux subsystem after system reboot is unbelievably slow.
Proceeds to provide a video showing a 3s startup time to illustrate the unbelievable slowness that happens once after a reboot.
I suspect the favorite activity of the author is therefore to reboot their computer, and to quickly rush to WSL2 after that. In which case I agree the user experience is not ideal.
Well, good news! I don't know when this might've changed (I have animations enabled), but I just tested it on Windows 10 2004, and the start menu doesn't animate with animations off.
This seems like a joke article. The 'long' startup time appears to be a second or two.
The slow animated menu is quick - I'd like to see someone actually select a menu item in the time it takes for it to drop down. The animation doesn't impact usability. All a bit bizarre.
The article sucks. I was hoping for a serious critique of Microsoft's new direction and the architecture of WSL2, .NET Core, etc., but it's just a handful of very trivial performance gripes, along with things the author simply doesn't understand, like the default application registered for *.json files being Notepad only until you install something better.
I wish there was a higher bar for upvoting articles besides "it bashes Microsoft, to the top with it"
> The 'long' startup time appears to be a second or two.
Good to know. But sad that I had to look in the comments for this information, because for some reason the video doesn't play. I'm not sure how the article author thought it'd be a good idea to embed a video containing the same amount of information as a single number, but I guess that's considered a feature in the modern web.
I'm really glad that MS is investing in this and it's an aspect that has been long neglected. If you're a developer, and unless you're using MS stack (.NET), the experience has been always subpar.
I have to agree with the author that the experience is not quite there yet. But a lot of progress has been done. And I hope the progress continues and maybe in the future I'll try it again.
For me there is not a single deal breaker, but it's just a thousand paper cuts. Removing those will take time. Some of the annoying things I encountered:
1. Overall slowness. It's not only startup, it's in general. Not only on heavy tasks like parallel compiling, but even for lightweight stuff, you immediately notice when you try a real linux.
2. Some config like setting up ssh-agent correctly are hard and different than a real linux. No idea why.
3. Windows Terminal development is quite fast, and sometimes things change or break. For instance, the background color of my terminal suddenly changed and I had no idea why. After some googling and modifying config, it was fixed.
4. The fact that it required to sign in for Windows Preview program. (I think this is not required anymore) but it was very annoying as it requires very long updates that require like a million reboots. No idea why Windows has to reboot so many times for a single update. Additionally, after every update there was always surprises. From the harmless Edge popping up from nowhere asking you to become default browser for the nth time, to some hardware misconfiguration. Nothing too bad, but annoying.
5. (This one very subjective of course) The windows UI overall is, how to say it, a mess. Font rendering is awful. The mix of old style UI with new style UI is horrible. Some settings will be in new style, some other settings will be in old style.
As I said, I might try again in the future. But now I switched to Fedora and I'm really really happy with Gnome 3 and good old real Linux. I still have the Windows partition just in case, but I haven't booted in a while.
> No idea why Windows has to reboot so many times for a single update.
It's an interesting tangent, but Insider Preview updates are fascinating from a technical standpoint. Nearly every single one is installed closer to how Windows' big "Feature Updates" work (as essentially full Windows images that get built to a new folder, all the old things installed back into it, then the old Windows folder archived or removed) than old school sets of patches to individual files. It's been interesting as an Insider since very early in Windows 10's life to see how much faster these updates have gotten over time. Installing lots of updates this way on Insider Preview machines seems to have helped a lot make the big "Feature Updates" themselves faster/better/more reliable. It's maybe not as obvious to someone installing a big Feature Update at most twice a year, but as a long time Windows user and having seen the gradient of change in Insiders Preview (and read some of what I could in their discussions on the technical efforts on blogs), it has been fascinating to watch.
WSL2 should be out of preview in the soon-to-be-rolled-out May 2020 feature update.
People all over the comments accusing me of nitpicking. I can agree with that. But I also feel like this happens because of what you call "a thousand paper cuts". It works, but feels surprisingly unpleasant.
Allowing us to run Unix command line in Windows is a great achievement for Windows team, props to them. But it isn't yet comparable to the real deal like Linux or OSX. The speed, the looks, the integration. I'm actually surprised that (subjectively) Linux UI with all that fragmentation looks a bit more consistent than one of Windows.
I hope Microsoft addresses all these problems, but guessing from previous experience it make take a while.
I think this site might want to reconsider using Medium. All of the animated screenshots were covered with ads in Safari on iOS, with no apparent way of getting past them. I had really no idea what they were talking about.
- "It takes ~3 seconds for WSL2 to start up the first time"
- "Windows Terminal [gasp] has animations"
- "The new spotlight search isn't already flawless"
- "File explorer right-click menus have... too many things in them"
(Paraphrasing, of course)
And I honestly wonder if the flickering thing is a problem with the author's GPU or something. Seems to happen everywhere and I've never seen it on my machine.
People have been complaining for years that Microsoft's stuff isn't configurable enough for power users/developers. Now they're following VSCode's lead and offering "infinite configurability" that's also wrong because it is "too hard!" This would almost be funny if it weren't so obnoxious.
Now, I will fully cop to out-dated docs being annoying, particularly when most of the configuration isn't really obvious or self-documenting. But complaining about Microsoft of all people offering highly flexible text-based configurations is hugely ironic to me.
Yea. But that was added later, and theres still important JSON build-system files that you need to edit manually to this day. JSON isnt descriptive enough to auto-translate the raw files into a functional GUI. They seem to think its better off as text, but that goes against everything else on Windows mentality, and its not documented properly.
We are 30+ years and Windows Task Scheduler is still broken. Compare that to simple .txt files to schedule anything you need in Linux. Windows took the UI path for users and that's OK, but most of Power users are still much better off with text files and simple utilities (like crontab) that work. This type of ecosystem is completely broken on Windows, I don't think it can be fixed, it is too much of a paradigm shift. On the same token trying to do good UI/User experience is still too hard on Linux. I take no issue with Windows, business users, friends and my parents are probably better off with it, but the "power" stuff? Please don't.
Did you check "run task as soon as possible after scheduled start is missed"? And what about "If task is already running, then the following rule applies: Do not start a new instance".
The Task Scheduler can export and import tasks from XML. There's also SchTasks.exe command to manage the tasks from the command line.
The UI can be a bit complicated, but on the other hand the Task Scheduler itself provides quite much functionality. You can for example trigger tasks based on events which are generated by Windows or applications (the same events that are visible in Event Viewer).
> That is how long it takes to start WSL terminal for the very first time after reboot
That speed extremely impressive. Not sure why he's comparing it to how long it starts to run a linux terminal on his linux machine? Shouldn't he be comparing it to how long it takes to e.g. start a different type of VM on windows, or how long it takes to cold start a Wine thing on Linux?
> Open or save file Dialog is just the worst in all regards.
I guess the author never used any Gtk+ 3 file dialog :-P. Honestly the fact that you can perform actual file manipulation, use shell extensions (e.g. version control overlay icons), etc put it above pretty much every other file dialog except perhaps KDE's (but AFAIK even that doesn't have all the functionality you'd see in a regular file manager window).
Having said that, yes, it is unnecessarily slow and not because of the features above since some applications use older versions of the dialog that still have these features but appear instantly. Not sure why the "full fledged" version is slow.
The history of Microsoft is the history of workarounds on top of workarounds, year after year, rinse and repeat. Here's a novel thought: instead of providing yet another iteration of workarounds for the power user, how about just fixing it for every user.
Take for instance the Start Menu. When the Win-X "quick access" menu was added years ago, it was essentially an admission that the Start Menu is not the best way to start at least some things. It didn't really get much better since but the Search and Run functionality was integrated into it. Now one of the PowerToys replaces the Win-R menu as a yet another clumsy attempt at fixing the Start Menu by bypassing it. And it seems no new functionality beyond what is already implemented elsewhere is being added, except everything will of course get a different alternate look. Some more discussion about it here: https://github.com/microsoft/PowerToys/issues/44
It looks like there isn't anyone at Microsoft who can take a look at the big picture and decide what they actually want to accomplish with the UI in the medium run. Different groups of people come and go, keep adding different things, abandon them, after a while somebody else starts off with yet another approach in parallel without drawing any conclusions from the failed previous one, etc. The lack of co-ordination really amazes me. Microsoft used to once advertise with the slogan "Where do you want to go today?" These days it seems to me they're not going anywhere, just running in circles.
I think it's an interesting refutation to Google's "one search box to rule them all" philosophy. Over the course of Windows Vista through 8.1 Microsoft attempted just that at a consumer scale that Google could only wish they could impact "where they live". (As much as people assume people live in the browser, Windows is still Windows.) The evidence mounted up overwhelmingly that people didn't want just one search box, that Google is wrong (they've yet to unify their search boxes like they claim to philosophically anyway), and that the context of where a search box appears matters, and so Windows 10 has seen the re-separation of search boxes.
One of those "context" switches that Microsoft finds is a useful context to know is "power user" versus "regular user": regular user Start Menu versus power user Win+X, regular user Search and Run versus power user Win+R/PowerTopys Run. (At one point in Windows 8 Microsoft tried to use the Win+R shortcut for something that wasn't "power user run a thing" and nearly saw a revolt.) It becomes a self-selecting "reveal" of different feature sets to match what features the user thinks they are ready for.
Microsoft is so large, and so disjointed, its not as simple as you make it out to be. The corporate culture prevents it. You forgot all the bureaucratic middle managers whos sole job is to enforce IT Silo'ing and gatekeep other teams from intruding into their area. I hate to say it like this, but the boomers created this mentality on purpose. Its rampant in incumbent tech/IT/dev, and fundamentally opposed to freedom of information and open source, because its focused on maintaining control and power and keeping people in their pre-designated place. If it was only a tech problem, we could absolutely solve this, but its a socio-political one first.
that are actually the small little things which are fast on a Mac. This seconds of thought are also clearly visible on some Ubuntu machines... Gnome is not always optimized and Snap programs make you think your laptop is frozen.
Contrary to release notes latest Gnome 3 in Ubuntu 20.04 is slower on my machine compared to the previous one in 19.10. That's why I switched to XFCE which is super snappy. Not i3 snappy, but really close.
I've also experienced increased startup time with Snap, Flatpak and AppImages regardless of DE.
i3 isn't even snappy, the default application launcher can take up to 10 seconds to open on my old laptop.
There is a faster application launcher you can use instead, but you have to hunt through github issues to find out about it. The i3 project maintainers seem to actively object to telling users about 3rd party components and simultaneously refuse to integrate them or improve the default behaviour.
I find Gnome in general to be terribly bloated. There are so many other options on linux that get you minimal looking desktops without eating your resources in the background.
Of course, the problem is often that with other options some assembly is probably required. But looking at the mess gnome extensions are, that might actually be not that much of a difference.
I have recently moved to a macbook pro for work, having used Ubuntu on my prior machine. In my experience, the mac (despite having significantly more modern specs) is more buggy and just not quite as snappy for these little things. Opening windows, menus, terminals takes longer (even with the swoopy animations turned off). Wake from sleep also takes longer, and a few times a week it is frozen for a few minutes on wake. Maybe I have a lemon.
> Recently Windows team made a few stunning announcements
More and more telemetry in each subsequent OS release. The fact I had to flip 6 switches off during OOBE on a brand new MS Surface followed by a "hosed" Windows Update run tells me they still haven't figured out what their power users want.
You can't whinge about time spent on animations and then also complain about flickering. Teams being told that design doesn't matter is why so few developers on windows and linux care about flickering at all.
Although I definitely agree that it's absurd that in 2020 an operating system doesn't have a standard built in way to reconfigure key shortcuts in any application installed.
Can windows terminal be used remotely? The only remote terminal I am aware of in windows is remote powershell but it sucks badly. It takes ages to come online after a reboot, is unencrypted by default, and because of security issues cannot interact with windows update.
For such a powerful power user, it seems that the author never had any JSON editors set up on his environment, removed the default keyboard shortcuts from Terminal, and couldn't figure out how to customize the context menu. Hmmmm.
I'm sorry for that. As Streamable states: ads will be shown as soon as video becomes popular. But they didn't state exactly how popular. I couldn't find any other convenient method to embed small animations with fine quality and ability to pause them. Any recommendation is appreciated.
The Terminal project was only announced 1 year ago[0]. As I understand it, they had to more or less split how the whole conhost.exe work in order to allow Terminal to even exist. The settings UI is far from sexy, but they're working on it[1]. I think it's impressive to know that 6 people did that in a year[2].
Regarding the slow startup of WSL2, yes it is slow to start, but would you rather have to wait 5x for a git clone command[3]? They even have a deep dive into how files are save in WSL1 which can be related to how it works in WSL2[4]
I completely disagree with the conclusion of performance is not Microsoft's concern. The comparison is to GNOME3 which was released in 2011. 9 years of development compared to 1 year. "The polish just isn't there"
[0]: https://devblogs.microsoft.com/commandline/introducing-windo...
[1]: https://github.com/microsoft/terminal/issues/1564
[2]: https://devblogs.microsoft.com/commandline/windows-terminal-...
[3]: https://devblogs.microsoft.com/commandline/announcing-wsl-2/
[4]: https://devblogs.microsoft.com/commandline/a-deep-dive-into-...