Notably this article was written based on Windows Terminal 1.18. That was before WT 1.22, which included this PR: [^1] which roughly doubled the terminal's throughput. That combined with a couple of other PRs in 1.22 made some scenarios up to _16x_ faster[^2]
I daily drive a couple Macs and enjoy them but I can't help but notice they seem slower in the terminal than the alternatives. Can't get any kind of discussion on /r/mac as it's just 'Apple silicon is fast!'
You can run the tests yourself, he describes them in the blog. Used the Is It Snappy! app to measure frames.
I tried the throughput test myself just now between the native macOS terminal and ghostty.
Ghostty:
cat /tmp/lines.txt 0.00s user 0.02s system 36% cpu 0.069 total
Native mac terminal:
cat /tmp/lines.txt 0.00s user 0.02s system 18% cpu 0.115 total
Seems much faster than any of the OP's windows terminals tested except for MinTTY.
Likewise in one unscientific test with Is It Snappy, ghostty took 8 frames to render the output from pressing the key, but I didn't repeat multiple times.
So, seems faster, but I know what you are talking about, I experience it too. Something about using the terminal on macOS feels sluggish compared to alternatives. It's especially noticeable for me over SSH
This has been posted on HN a few times and seems to show that terminal.app is your best bet for most cases if you care about latency: https://danluu.com/term-latency/
Terminal app has no truecolor support, no highres mouse support, no kitty graphics protocol, no double height character support, i'm sure there is more but I now discard it from my tests.
Any chance of getting native support for Serial (DB9/RS232) communication in Windows Terminal? Would love to use it but I'm still using PuTTY and HyperTerminal.
Is there not a suitable CLI or TUI client for Windows that can simply be called from within Windows Terminal? Honest question. I just know that on Linux, it'd be really weird to ask for my terminal emulator to embed a serial client rather than call e.g. screen or minicom from my shell.
I think it has been discussed but not implemented yet. In the meantime, tools like https://github.com/fasteddy516/SimplySerial give what you are looking for instead of those alternative GUI tools.
The PuTTY terminal has a few more features in certain areas but a lot fewer features overall. Also, of course, PuTTY does not share profiles/settings/window tabs+panes with WT, which is a bit of a pain.
Not really on 'latency' per se as discussed in the articole but an interesting take on slow terminals is Casey Muratori's famous rant on the topic [0] that led him to write his own terminal [1], a reference renderer for monospace terminal displays that is several orders of magnitude faster than Windows Terminal despite being largely unoptimized.
Another aspect of this is which pipeline is in use for the GPU accelerated terminals. *WezTerm on Windows for example, specific rendering issues occur with default NVIDIA settings related to DXGI.
You will never interact with this pipeline if using the Web GPU vulkan renderer, which has its own issues. I personally experience some form of memory leak / latency when working in terminals that have been open for a 'good' amount of time.
Does it still pause scrolling and stop whatever's running if you click on the window or press a key? That's one big reason why I still live in a plain old DOS box. It didn't appear that the Windows terminal developers had ever heard of ctrl-s.
Dang, I've never heard of anyone who actually _wanted_ that behavior haha, I've had so much wasted time in school projects where I thought something was running but it wasn't because I had selected text in cmd.exe haha.
If you are waiting for the output as an indication that a task completed and you never see that output you may think the task is still running but it is actually done.
I am not sure that if it actually stops the program, but it does at least stop programs from printing, so for anything that gives feedback on stderr/stdout you are at least pausing the main thread. I have a mostly-non-threaded program that this happens to, and it does not continue to send messages to other systems until I un-pause it.
Ctrl-Z suspends the program in most UNIX shells. ("fg" to resume)
Ctrl-S may or may not end up stopping the program, depending on how much it's printing, and how much output buffering there is before it blocks on writing more.
All my shell RCs turn off xon/xoff -- that's a relic from the PDP-11 days we can all do without.
Windows has the Scroll Lock button that's supposed to do this if you need it, but typically, just selecting a character in a terminal emulator will stop the scroll while still buffering the output.
Windows is not really just a gaming OS, at least after WSL was launched.
Development experience using Windows Terminal + WSL has been pretty great when I did it 3 years ago - I can only imagine it being better today.
Also note that the cost of Windows machines is half the price of their Mac counterparts, even with the specs doubled.
For many folks Windows is an all-round multipurpose platform (gaming included) and they wouldn't want to invest in other machines just for doing development work, so they stick to it as their main OS. Yes we know of the horrible bloat, tracking and privacy invasion that the OS does to us, but many people tend to just ignore it and move on.
> Yes we know of the horrible bloat, tracking and privacy invasion that the OS does to us, but many people tend to just ignore it and move on.
Or in the case of enterprises, Windows gets controlled and managed by a (hopefully) competent IT team or enterprise desktop group, and with LTSC versions Microsofts give them the tools to strip the bloat, tracking, and most of the privacy invasions (to then be replaced with corporate privacy invasions in a lot of cases).
Point being, Windows as an enterprise user desktop is a whole different beast from Windows on the laptop mom and dad just bought from Best Buy.
HN lives in a macOS/Linux bubble, but outside of SV it's a Windows world still. So much of the world runs on Windows in places that you wouldn't even expect to see Windows. And with enterprise purchasing agreements, you can get some good deals on bulk laptop purchases that you aren't getting from Apple. $1,000 or less per 32GB of RAM laptop, depending on how many you are buying. I've seen bulk purchases as low as $700/laptop for enterprises that buy thousands at a time for scheduled refreshes. You're not going to be able to buy everyone a MacBook Pro for that pricing.
Windows remains one of the best general purpose OSes for generic office worker productivity, and I don't see that changing anytime soon unless Microsoft really fucks it up with whatever Copilot garbage they are doing.
My work laptop is Windows and IT have removed the bloatware but the desktop is still a shitshow. Clicking on a window in the taskbar doesn't even reliably bring it to the front.
I've noticed it seems windows aren't allowed to foreground themselves/each other anymore, which seems reasonable (anti click jacking?), but this includes VS not being able to foreground my diff tool when I diff something, and Outlook not being able to foreground itself when I double click the new mail envelope in the notification area.
I also enjoy going to grab a maximised window by its title bar and somehow grabbing the window behind it.
Yeah, windows is pretty aggressive with the focus stealing prevention (I believe GNOME on Linux is also working on something similar, hopefully with a better implementation).
It seems to struggle with differentiating between what's a user initiated focus-steal and what's automated/originating from the app without user action.
I'll take that over what existed before, which was any app could just open a window and give itself focus at any time.
The quite sensible reason is that LTSC doesn't contain the windows store, and as a result a bunch of driver apps don't work because they moved to using UWP apps (eg. realtek audio console). Not to mention that you'll eventually get weird compatibility issues because you'll eventually be running a windows version 5-10 years old, whereas most devs assume you're using be using the normal versions which are at most 2 years out of date. All of these issues can be worked around if you're sufficiently technically inclined, but people who are hiring "Microsoft consultants" probably aren't.
I recommend LTSC for terminal services environments like Azure Virtual Desktop, where driver issues just aren’t a problem.
Windows LTSC has semi annual updates, the same as Windows Server. Speaking of which, that’s essentially what it is: a cut-down version of the Server Desktop Experience with pretty much the same defaults and capabilities.
Microsoft could implement App Store support for LTSC (and Served), they simply choose not to. It’s telling that this isn’t a problem in practice.
Windows 11 IoT Enterprise, version 25H2 2025‑09‑30
Windows 11 IoT Enterprise, version 24H2 2024‑10‑01
Windows 11 IoT Enterprise, version 23H2 2023‑10‑31
Windows 11 IoT Enterprise, version 22H2 2022‑09‑20
Windows 11 IoT Enterprise, version 21H2 2021‑10‑04
Microsoft "consultants" are are usually just license auditors in disguise. We ignore them, and I suggest everyone else do the same. They "helpfully" reach out and offer to optimize your infrastructure and spend. That 'optimization' is actually "let's make sure you bought all the CALs you were supposed to, and when you inevitably didn't, because we make our licensing confusing, we'll charge you extra and threaten legal action for non-compliance"
Better to find a reputable VAR and get your licensing through them and don't ever deal with Microsoft directly.
Sadly, the one problem with WSL(g) is graphical rendering. It can't handle DPI scaling properly at all (yes, even with experimental settings) and the result is blurriness, gigantic mouse cursor, clicks not registered where the cursor appears to be, or itty-bitty icons and UI that you can barely see.
I can't stand that they haven't fixed it in all this time.
It has gotten better. The `vmmem` hyper-v process would regularly freeze up and require a reboot on my Windows 10 work laptop. I’ve successfully run WSL for days/weeks without issue on Windows 11. As a tradeoff, I’ve had the Weston container freeze up and be unrecoverable without restarting WSL.
Now spec it with 32GB of RAM, and try to get a bulk discount for ordering 1,000 of them. Try to get the price of said 32GB M4 Airs down to ~$700/laptop or less.
Not going to happen with Apple.
No company that's big enough is paying sticker price for windows laptops.
```
Now spec it with 32GB of RAM, and try to get a bulk discount for ordering 1,000 of them. Try to get the price of said 32GB M4 Airs down to ~$700/laptop or less.
Not going to happen with Apple.
```
Exactly. Thanks for explaining this.
Also one more point to note is Windows machines go on discount sales very frequently. It's usually way too easy to find one with 32GB and 1TB, with the latest Ryzen or Intel mobile processors.
Bonus when you find one like Lenovo Legion which allows you to buy and shove-in extra RAM/storage as you need them.
But then you just ignored everything else, build quality, webcam, speakers, sound, SSD speed, keyboard, battery runtime, screen quality..
With business line for comparable build quality/durability you are not getting half price anymore, and I have not yet seen any laptop speaker/webcam not on a MacBook with comparable quality.
I do not have access to bulk discounts, but you are more then invited to post some samples.
For me personally? Yeah, I care about build quality, webcam, speakers, etc. Which is mostly why I still use a macbook.
But for bulk purchases the business is buying for the average office worker, no, none of those things matter. The only thing that matters is RAM, CPU, and does it have a 3/5 year warranty (whatever the lifecycle of the device is). Otherwise, it's spending 8 hours a day hooked up to a docking station, lid closed, and users use headsets for meetings.
That's largely why it's so hard to find/buy a non-mac laptop with equivalent price to performance & build quality. They largely aren't made for individuals who are choosing their own hardware.
>vast majority of people care more about RAM, SSD and CPU
The vast majority of people do not know what any of this is, and they do not care at all, they want a fast machine for there usecase.. and for most people that is the equivalent to editing a word doc and listening to Spotify.
After watching a review if the LG gram, yeah, I am not convinced that comes anywhere close in regards of speakers or keyboard.. and the durability seems.. questionable
It also seem to be around the same price point of a MacBook air with more or less the same specs on super duper black Friday sale
Isn't that what RAM, CPU and SSD are all about?
The average user doesn't care much, but at the end of the day if your machine cannot keep up several open apps due to low RAM or cannot store a lot of data because you only have 256GB, that's a problem right?
It's my go to machine, I also own a MBP m1 and an m3 max with 48 GBs, but my Windows desktop is by far the most capable machine of the three (a notebook cpu and ram, even the m3 max are still notebook hardware) and the OS I like the most for programming.
I program mostly in WSL2, so essentially in Ubuntu, but the terminal lives as a Windows executable.
MacOS is really a subpar development experience to me and it's plagued with issues, from very subpar docker support and performance to it's far from flawless experience on many languages I use regularly (e.g. Haskell) that are far from the Linux standard.
I love it as a notebook though, great hardware and battery life, but I'm at home most of the days.
> MacOS is really a subpar development experience to me and it's plagued with issues, from very subpar docker support and performance to it's far from flawless experience on many languages I use regularly (e.g. Haskell) that are far from the Linux standard.
Aside from that, the window management in macOS leaves a lot to be desired still without third party tools, and even with them it's not fantastic.
Don't get me wrong, I love my macbook pro, but bugs & privacy issues aside with Windows, I'd prefer to just use it on my macbook's hardware. I've been full time on macOS since the M1 air and I still can't grok the app v. window model macOS uses. I'm sure it made sense when workflows were centered around documents, but they aren't anymore, and over half the apps are just browsers. I prefer each instance to be standalone like Windows and Linux do it.
Then again, I'm not a dev, I'm an IT manager. My day to day involves multiple browser windows each with many tabs, spreadsheets, meetings, & notetaking on my iPad, etc. macOS's workflow of "focus on one or two "apps" at a time" doesn't work for me. I'll stand by my statement that Windows is still the king of "general business productivity."
You have to pay me to use Windows and Microsoft products.
There are so many alternatives that have higher standards. I keep having regressive issues with Visual Studio. The OS quality has been continually degrading. Microsoft is even pushing to have a @microsoft.com account on their Windows embedded IoT variants. There should be no reason an embedded OS requires an online account nor that XBox and other useless features baked in.
I wont event touch how bad the User Experience has become in their Office products and how much of their products have inconsistent key combinations. Ctrl+F ...
I can imagine your pain points, albeit luckily they do not overlap with my use case.
I'm not sure about the alternatives with higher standards though, and I say it as someone who operates two MacOS machines, a windows and an Omarchy one
They all have pros and cons, it's perfectly fine if we have different experiences.
Look at a registry with Microsoft vs Gnome. Microsoft is a kludge of a setup were Gnome is well defined. Microsoft is a guessing game and the wording is often a contradiction. Gnome actually gives descriptions of what the property means and what select settings will do. Microsoft does not even defined the meaning in some document. These properties often have to be reverse engineer.
Microsoft tried competing against Google's Chromebooks with a low cost Surface laptop. These laptops had such low hard drive space that they pushed a Windows update that disabled the auto backup of the registry. The update affected ALL Windows installations and not just Microsoft's low quality hardware. A corrupt registry without a backup requires Windows to always be reinstalled.
Microsoft's design for localization is to push the content into strings resource with-in a DLL. This requires the application to be re-compiled for any changes to the translations. A simple text file disconnected from the application binary per language is better off. This allows for the client to modify the translations without the need of the developer. Example would be having the application install fr_FR in AppData and the user being able to edit the translations or create a custom one and store it in the User's AppData with their cultural changes. This allows for full customization without needing direct access to the developer or source of the application.
Applying localization to .NET changes how the the data convert logic works. Means that a string conversion of "1.5" will fail and throw exceptions if the localization is set to using a language where "," is the separator in a decimal system. It gets worse when the application communicates with a 3rd party application and the data types must be constant for one localization. Quality would be to allow to only present the localization while storing the and processing content in a standard language independent of the user's selected.
Microsoft does not properly document the configuration settings for their configuration files. If they do, it quite rare. I will search the Internet for a setting in their solution file (.sln) and nothing will come up. Or it might but point to a Git comment with the setting and no meaning what that variable will do. BSD and Linux applications will create MAN pages for the application and a MAN page for the configuration file contents and provide the user with meaning.
Look at Windows vs Gnome. Press the Windows / Meta key and type _shutdown_ and press enter. Windows will open Edge, not your default Web Browser, and provide an Internet search about shutdown. Gnome will bring up a dialog with a 60 second counter to confirm you want to shutdown the computer. Gnome is quality user experience while Windows rejects the user's request to use Chrome instead of Edge and provides a search result instead of an action this is common on all computers.
Microsoft segregates applications into two groups console or GUI. They do not allow for an application to be both. A quality OS does not segregate and allows application arguments to dictate if the application should run in console / command line mode or as a GUI. Even if you try to hack a GUI into a custom made console in Windows, the STDIN and STDOUT become broken.This is why Windows applications need more code and extra work for logging.
High standards it to provide software that is well documented and uses simple means to configure the software while rejecting the attempt to force the user to use YOUR application and accept that the user's default applications should be used instead.
As for the rest I don't really author code for Windows machines, I write code for unix machines via WSL 2.
I prefer Windows as a desktop machine over linux for several reasons: better window management, personal preferences, compatibility with both worlds (windows and linux), way more software available, etc.
As I said in the previous post: I'm not here to convince you that Windows is a better development machine.
And my background is cross-platform development from desktop to embedded to full stack to back-end and front-end.
I learned that even though you can write an application in _WPF_ you should still learn other frameworks. Often people stick with what they know versus learning what they don't. The tooling and framework to use for a solution should be around the problem and not what you know. A hammer drives a screw but is also the wrong tool to use for the solution. I have learned new programing languages and frameworks because they fit the problem better than what I already knew.
Here are the images of how Windows 11 the shutdown issue:
Even typing _shutdown pc_ and pressing enter did nothing except closing the Start Menu.
One of my greats annoyances with Windows is that Microsoft Anti-Virus will lock the file for scanning. This means I have there is a chance of having to re-run an InnoSetup script compile because Windows is canning a XML file. Happens quite frequently with GIT repository management. Waiting and having to re-run tools because of this is a waste of time.
Desktop Environments are like a person choosing which Bourbon they like. For me the best Bourbon, beer, wine ... are the ones I have not tried. Some people stick with Jack Daniels their whole lives.
> Microsoft is a kludge of a setup were Gnome is well defined.
I also thought that for a long time, but you should open the Group Policy Editor one time. Each property has some paragraphs for description. When you look at the interface and the structure, it looks like the Registry with pretty labels.
> Windows will open Edge, not your default Web Browser, and provide an Internet search about shutdown.
You are holding it wrong! Type Super-R, this won't open the web search. (This is broken for all other programs, since no program puts itself in the PATH on Windows.)
Yes Windows / Meta + R = run dialog. A person needs to know the exact command name and parameters for _shutdown.exe_ to use it. DE like Gnome removes the need to know what actual command is being run to perform; shutdown, restart, logout, and lock screen.
Group Policy is only a small percentage of the Register. _gpedit.msc_ is only useful for manual local computer management or mass deployment for an Active Directory environment. It does not allow for creating a configuration file. In order to apply policy settings direct registry keys must be manipulated, extract, and applied to an installer application. This means referencing the spreadsheet that maps GP setting to Registry key and value. [0] Microsoft seems to dislike configuration files and prefer the Registry. Configuration files are easier to backup, share, and edit with a simple text editor. Registry needs an special tooling.
Microsoft has inconsistencies of how to store values in the registry when it comes to lists. Some times it is a value key per item; _item 0_ = _..._, _item 1_ = _..._. It might be a delimited separator like a space used to store DNS addresses assigned to a NIC. Worst is a more complex binary format that requires reverse engineering, such as the Internet Explorer compatibility URL list.
FYI, Windows != Meta key. Meta is commonly labelled Alt on IBM/Windows keyboards. The vendor neutral name for the Windows/(Open) Apple/Command key is 'Super'.
As an SRE I did most of my work from windows as almost all of my jobs required it (only one provided a working Ubuntu laptop). Mostly used it only for firefox and PuTTY. At home it was W10 + WSL or virtualbox but mostly used it for games initially and then browsing.
BUT as from W11 which I tried for 11 minutes, I switched to Fedora and didn't look back. Everything felt buggy, start menu taking forever, buttons switching places, apps wouldn't start but then randomly would, and of course ads. I know there are debloat scripts around but didn't have the patience, I felt if I'm going to try a new OS I might as well try Linux before buying a Windows license.
Now Linux has its issues, the occasional icon disappears, sometimes shutdown doesn't entirely shut down the machine and I have to power the machine down (electrically from my outlet), sometimes updates don't go through, and of course I miss excel and a couple other things (although I was far from a power user and OnlyOffice fits my needs). But it's still better and with KDE there is almost no config to get a similar "feel" as W10. Amusingly I actually use MORE apps now that I trust installing new stuff more.
That said I would probably pay a premium to dual boot occasionally on a supported Windows OS without bloat, probably it would be my default boot even.
Well, for one, if you develop games for said gaming OS you’re probably doing it on the gaming OS in question and would like the tools to be nice to use.
Developing on Windows can be troublesome at times, but I still prefer how it feels to use.
For development alone, macOS is probably the best choice since it provides a native Unix environment.
I just happen to enjoy the Windows interface more, even if it means dealing with extra setup.
> macOS is probably the best choice since it provides a native Unix environment
And the first thing I do is install the gnu coreutils because it still ships really old BSD utils, and everything expects linux-isms now.
In that regard, macOS is worse than Windows+WSL which at least is real Linux with a real package manager. macOS being better OOTB was true Pre-WSL/Windows 7 era where your choices were macOS for a UNIX with a really nice desktop environment and working sound, or taking a gamble with Linux on your hardware and praying everything worked. Windows was a non-starter for any development that wasn't win32, lest you were a masochist that wanted to deal with Cygwin and the like.
I say this as someone still all-in on the "Apple Ecosystem" across all devices, Apple fans that are also developers all seem to be blind to the ways Apple has been slowly boiling the frog and making macOS hostile to developers in all other aspects of the OS outside of it having a unix terminal. Apple is outright hostile to developers at times.
With the amount of work Windows seems to need just to use it - decrapification, bypassing account creation, constant vigilance that your changes aren’t undone by Windows Update.. - it’s also a gamified OS ;)
Gaming OS? I guess if your gaming's heavy on online multiplayer games that insist on rootkits, and you're not willing to do that on a console instead (you can connect mice and keyboards to those now).
2025 is the year I finally removed Windows entirely from my life, thanks to SteamOS and Bazzite. It'd been solely for gaming for 25ish years, for me, having been (in various versions) my primary desktop OS for another sevenish years or so before that (3.1 was my first, and before that, MS-DOS) and now it's for... nothing. I truly have no use for it whatsoever.
Notably this article was written based on Windows Terminal 1.18. That was before WT 1.22, which included this PR: [^1] which roughly doubled the terminal's throughput. That combined with a couple of other PRs in 1.22 made some scenarios up to _16x_ faster[^2]
[^1]: https://github.com/microsoft/terminal/pull/17510
[^2]: https://devblogs.microsoft.com/commandline/windows-terminal-...
Thanks for the work on WT, it was really a massive step up I did not expect after all of these years.
You're most welcome! Working on it to help serve the whole developer ecosystem has been the delight of my career :)
Just want to say built in glyphs makes terminal ANSI art awesome.
I forked a colorscripts project and added some true ANSI art after conversion and the built in glyphs look so much better than any other font.
It's great but is there any special rendering for the built in glyphs that's not possible with fonts? Just curious
Any similar benchmarks for MacOS?
I daily drive a couple Macs and enjoy them but I can't help but notice they seem slower in the terminal than the alternatives. Can't get any kind of discussion on /r/mac as it's just 'Apple silicon is fast!'
You can run the tests yourself, he describes them in the blog. Used the Is It Snappy! app to measure frames.
I tried the throughput test myself just now between the native macOS terminal and ghostty.
Ghostty: cat /tmp/lines.txt 0.00s user 0.02s system 36% cpu 0.069 total
Native mac terminal: cat /tmp/lines.txt 0.00s user 0.02s system 18% cpu 0.115 total
Seems much faster than any of the OP's windows terminals tested except for MinTTY.
Likewise in one unscientific test with Is It Snappy, ghostty took 8 frames to render the output from pressing the key, but I didn't repeat multiple times.
So, seems faster, but I know what you are talking about, I experience it too. Something about using the terminal on macOS feels sluggish compared to alternatives. It's especially noticeable for me over SSH
This has been posted on HN a few times and seems to show that terminal.app is your best bet for most cases if you care about latency: https://danluu.com/term-latency/
This was a great article when it came out, but it’s very outdated. The laptop used is over 10 years old now.
seems like outdated info
Terminal app has no truecolor support, no highres mouse support, no kitty graphics protocol, no double height character support, i'm sure there is more but I now discard it from my tests.
Any chance of getting native support for Serial (DB9/RS232) communication in Windows Terminal? Would love to use it but I'm still using PuTTY and HyperTerminal.
Is there not a suitable CLI or TUI client for Windows that can simply be called from within Windows Terminal? Honest question. I just know that on Linux, it'd be really weird to ask for my terminal emulator to embed a serial client rather than call e.g. screen or minicom from my shell.
I think it has been discussed but not implemented yet. In the meantime, tools like https://github.com/fasteddy516/SimplySerial give what you are looking for instead of those alternative GUI tools.
I recommend Tera term. https://github.com/TeraTermProject/teraterm/releases
As much as I like PuTTY the ergonomics for "monitor this port as I plug/unplug the USB-to-Serial adapter" are so much better in TeraTerm.
Is there something lacking in PuTTY ?
The PuTTY terminal has a few more features in certain areas but a lot fewer features overall. Also, of course, PuTTY does not share profiles/settings/window tabs+panes with WT, which is a bit of a pain.
Indeed. Plus some serial file transfer protocols. At least xmodem, ymodem and kermit.
In case you want to compare the latency on Linux: https://beuke.org/terminal-latency/
Not really on 'latency' per se as discussed in the articole but an interesting take on slow terminals is Casey Muratori's famous rant on the topic [0] that led him to write his own terminal [1], a reference renderer for monospace terminal displays that is several orders of magnitude faster than Windows Terminal despite being largely unoptimized.
[0] https://www.youtube.com/watch?v=hxM8QmyZXtg
[1] https://github.com/cmuratori/refterm
(2024)
Another aspect of this is which pipeline is in use for the GPU accelerated terminals. *WezTerm on Windows for example, specific rendering issues occur with default NVIDIA settings related to DXGI.
You will never interact with this pipeline if using the Web GPU vulkan renderer, which has its own issues. I personally experience some form of memory leak / latency when working in terminals that have been open for a 'good' amount of time.
Does it still pause scrolling and stop whatever's running if you click on the window or press a key? That's one big reason why I still live in a plain old DOS box. It didn't appear that the Windows terminal developers had ever heard of ctrl-s.
Dang, I've never heard of anyone who actually _wanted_ that behavior haha, I've had so much wasted time in school projects where I thought something was running but it wasn't because I had selected text in cmd.exe haha.
It stops running? I thought it just stops the output.
If you are waiting for the output as an indication that a task completed and you never see that output you may think the task is still running but it is actually done.
Has happened to me quite a few times.
I am not sure that if it actually stops the program, but it does at least stop programs from printing, so for anything that gives feedback on stderr/stdout you are at least pausing the main thread. I have a mostly-non-threaded program that this happens to, and it does not continue to send messages to other systems until I un-pause it.
Ctrl-Z suspends the program in most UNIX shells. ("fg" to resume)
Ctrl-S may or may not end up stopping the program, depending on how much it's printing, and how much output buffering there is before it blocks on writing more.
That's called QuickEdit Mode and you have been able to turn that off for decades (and installing the new terminal fixes that too.)
Otherwise click the top left icon, go to settings, uncheck QuickEdit.
All my shell RCs turn off xon/xoff -- that's a relic from the PDP-11 days we can all do without. Windows has the Scroll Lock button that's supposed to do this if you need it, but typically, just selecting a character in a terminal emulator will stop the scroll while still buffering the output.
[flagged]
Windows is not really just a gaming OS, at least after WSL was launched. Development experience using Windows Terminal + WSL has been pretty great when I did it 3 years ago - I can only imagine it being better today.
Also note that the cost of Windows machines is half the price of their Mac counterparts, even with the specs doubled.
For many folks Windows is an all-round multipurpose platform (gaming included) and they wouldn't want to invest in other machines just for doing development work, so they stick to it as their main OS. Yes we know of the horrible bloat, tracking and privacy invasion that the OS does to us, but many people tend to just ignore it and move on.
> Yes we know of the horrible bloat, tracking and privacy invasion that the OS does to us, but many people tend to just ignore it and move on.
Or in the case of enterprises, Windows gets controlled and managed by a (hopefully) competent IT team or enterprise desktop group, and with LTSC versions Microsofts give them the tools to strip the bloat, tracking, and most of the privacy invasions (to then be replaced with corporate privacy invasions in a lot of cases).
Point being, Windows as an enterprise user desktop is a whole different beast from Windows on the laptop mom and dad just bought from Best Buy.
HN lives in a macOS/Linux bubble, but outside of SV it's a Windows world still. So much of the world runs on Windows in places that you wouldn't even expect to see Windows. And with enterprise purchasing agreements, you can get some good deals on bulk laptop purchases that you aren't getting from Apple. $1,000 or less per 32GB of RAM laptop, depending on how many you are buying. I've seen bulk purchases as low as $700/laptop for enterprises that buy thousands at a time for scheduled refreshes. You're not going to be able to buy everyone a MacBook Pro for that pricing.
Windows remains one of the best general purpose OSes for generic office worker productivity, and I don't see that changing anytime soon unless Microsoft really fucks it up with whatever Copilot garbage they are doing.
My work laptop is Windows and IT have removed the bloatware but the desktop is still a shitshow. Clicking on a window in the taskbar doesn't even reliably bring it to the front.
I've noticed it seems windows aren't allowed to foreground themselves/each other anymore, which seems reasonable (anti click jacking?), but this includes VS not being able to foreground my diff tool when I diff something, and Outlook not being able to foreground itself when I double click the new mail envelope in the notification area.
I also enjoy going to grab a maximised window by its title bar and somehow grabbing the window behind it.
Yeah, windows is pretty aggressive with the focus stealing prevention (I believe GNOME on Linux is also working on something similar, hopefully with a better implementation).
It seems to struggle with differentiating between what's a user initiated focus-steal and what's automated/originating from the app without user action.
I'll take that over what existed before, which was any app could just open a window and give itself focus at any time.
> LTSC versions
Microsoft consultants very actively discourage the use of LTSC for... "reasons".
Translation: "It hurts our KPIs if our telemetry starts falling off and we can't push Minecraft and AI updates to as many desktops at will!"
The quite sensible reason is that LTSC doesn't contain the windows store, and as a result a bunch of driver apps don't work because they moved to using UWP apps (eg. realtek audio console). Not to mention that you'll eventually get weird compatibility issues because you'll eventually be running a windows version 5-10 years old, whereas most devs assume you're using be using the normal versions which are at most 2 years out of date. All of these issues can be worked around if you're sufficiently technically inclined, but people who are hiring "Microsoft consultants" probably aren't.
But you can install it?
>All of these issues can be worked around [...]
I recommend LTSC for terminal services environments like Azure Virtual Desktop, where driver issues just aren’t a problem.
Windows LTSC has semi annual updates, the same as Windows Server. Speaking of which, that’s essentially what it is: a cut-down version of the Server Desktop Experience with pretty much the same defaults and capabilities.
Microsoft could implement App Store support for LTSC (and Served), they simply choose not to. It’s telling that this isn’t a problem in practice.
>Windows LTSC has semi annual updates, the same as Windows Server
You mean biennial? It definitely doesn't get updates twice a year: https://en.wikipedia.org/wiki/Windows_11_version_history
https://en.wiktionary.org/wiki/semiannual#English
https://en.wiktionary.org/wiki/biennial#English
The relevant link for LTSC version history is: https://learn.microsoft.com/en-us/windows/iot/iot-enterprise...
Looks like annual versions..."IoT Enterprise" =/= "LTSC"
Microsoft "consultants" are are usually just license auditors in disguise. We ignore them, and I suggest everyone else do the same. They "helpfully" reach out and offer to optimize your infrastructure and spend. That 'optimization' is actually "let's make sure you bought all the CALs you were supposed to, and when you inevitably didn't, because we make our licensing confusing, we'll charge you extra and threaten legal action for non-compliance"
Better to find a reputable VAR and get your licensing through them and don't ever deal with Microsoft directly.
Yeah My company requires Windows. windows Terminal + WSL at least makes development bearable.
Why not run Windows in a VM?
Or run a VM in Windows? Hyper-V is pretty decent for many use cases.
You’re right but you’re responding to a troll.
We use WSL for development where I work.
Sadly, the one problem with WSL(g) is graphical rendering. It can't handle DPI scaling properly at all (yes, even with experimental settings) and the result is blurriness, gigantic mouse cursor, clicks not registered where the cursor appears to be, or itty-bitty icons and UI that you can barely see.
I can't stand that they haven't fixed it in all this time.
It has gotten better. The `vmmem` hyper-v process would regularly freeze up and require a reboot on my Windows 10 work laptop. I’ve successfully run WSL for days/weeks without issue on Windows 11. As a tradeoff, I’ve had the Weston container freeze up and be unrecoverable without restarting WSL.
>Also note that the cost of Windows machines is half the price of their Mac counterparts, even with the specs doubled.
Bullshit, MacBooks are one of the cheaper options for usable devices today. Esp in there entry segment.
Yeah. An M4 macbook air is about a grand.
Now spec it with 32GB of RAM, and try to get a bulk discount for ordering 1,000 of them. Try to get the price of said 32GB M4 Airs down to ~$700/laptop or less.
Not going to happen with Apple.
No company that's big enough is paying sticker price for windows laptops.
``` Now spec it with 32GB of RAM, and try to get a bulk discount for ordering 1,000 of them. Try to get the price of said 32GB M4 Airs down to ~$700/laptop or less. Not going to happen with Apple. ```
Exactly. Thanks for explaining this. Also one more point to note is Windows machines go on discount sales very frequently. It's usually way too easy to find one with 32GB and 1TB, with the latest Ryzen or Intel mobile processors. Bonus when you find one like Lenovo Legion which allows you to buy and shove-in extra RAM/storage as you need them.
Is ram and SSD and CPU all you care about?
I mean yeah, you will get a PC a bit cheaper..
But then you just ignored everything else, build quality, webcam, speakers, sound, SSD speed, keyboard, battery runtime, screen quality..
With business line for comparable build quality/durability you are not getting half price anymore, and I have not yet seen any laptop speaker/webcam not on a MacBook with comparable quality.
I do not have access to bulk discounts, but you are more then invited to post some samples.
For me personally? Yeah, I care about build quality, webcam, speakers, etc. Which is mostly why I still use a macbook.
But for bulk purchases the business is buying for the average office worker, no, none of those things matter. The only thing that matters is RAM, CPU, and does it have a 3/5 year warranty (whatever the lifecycle of the device is). Otherwise, it's spending 8 hours a day hooked up to a docking station, lid closed, and users use headsets for meetings.
That's largely why it's so hard to find/buy a non-mac laptop with equivalent price to performance & build quality. They largely aren't made for individuals who are choosing their own hardware.
So the initial quote:
>even with the specs doubled.
Was bullshit? Because webcam, sound durability are also specs..
The vast majority of people care more about RAM, SSD and CPU only. Apple charges $200+ for an increment in each of these departments.
Moreover, the speakers, keyboard, battery, webcam are almost caught up in quality with Macbooks when you look at products like LG Gram.
Reg. Screen Quality, some windows machines have better screens actually, and those are the OLED ones.
>vast majority of people care more about RAM, SSD and CPU
The vast majority of people do not know what any of this is, and they do not care at all, they want a fast machine for there usecase.. and for most people that is the equivalent to editing a word doc and listening to Spotify.
After watching a review if the LG gram, yeah, I am not convinced that comes anywhere close in regards of speakers or keyboard.. and the durability seems.. questionable
It also seem to be around the same price point of a MacBook air with more or less the same specs on super duper black Friday sale
>> fast machine for there usecase
Isn't that what RAM, CPU and SSD are all about? The average user doesn't care much, but at the end of the day if your machine cannot keep up several open apps due to low RAM or cannot store a lot of data because you only have 256GB, that's a problem right?
Sure, but that border is for a lot more then 90% of users mostly reached with 16gb and an m1/and equivalent...
From a certain point a faster SSD was more important for program startup and the m1 did blow a normal windows laptop out of the water there
And nowadays is mostly how well does the os it's thing, a word doc will not compute faster because you have more cores
I program on Windows every day.
It's my go to machine, I also own a MBP m1 and an m3 max with 48 GBs, but my Windows desktop is by far the most capable machine of the three (a notebook cpu and ram, even the m3 max are still notebook hardware) and the OS I like the most for programming.
I program mostly in WSL2, so essentially in Ubuntu, but the terminal lives as a Windows executable.
MacOS is really a subpar development experience to me and it's plagued with issues, from very subpar docker support and performance to it's far from flawless experience on many languages I use regularly (e.g. Haskell) that are far from the Linux standard.
I love it as a notebook though, great hardware and battery life, but I'm at home most of the days.
> MacOS is really a subpar development experience to me and it's plagued with issues, from very subpar docker support and performance to it's far from flawless experience on many languages I use regularly (e.g. Haskell) that are far from the Linux standard.
Aside from that, the window management in macOS leaves a lot to be desired still without third party tools, and even with them it's not fantastic.
Don't get me wrong, I love my macbook pro, but bugs & privacy issues aside with Windows, I'd prefer to just use it on my macbook's hardware. I've been full time on macOS since the M1 air and I still can't grok the app v. window model macOS uses. I'm sure it made sense when workflows were centered around documents, but they aren't anymore, and over half the apps are just browsers. I prefer each instance to be standalone like Windows and Linux do it.
Then again, I'm not a dev, I'm an IT manager. My day to day involves multiple browser windows each with many tabs, spreadsheets, meetings, & notetaking on my iPad, etc. macOS's workflow of "focus on one or two "apps" at a time" doesn't work for me. I'll stand by my statement that Windows is still the king of "general business productivity."
I program on Windows for work daily.
You have to pay me to use Windows and Microsoft products.
There are so many alternatives that have higher standards. I keep having regressive issues with Visual Studio. The OS quality has been continually degrading. Microsoft is even pushing to have a @microsoft.com account on their Windows embedded IoT variants. There should be no reason an embedded OS requires an online account nor that XBox and other useless features baked in.
I wont event touch how bad the User Experience has become in their Office products and how much of their products have inconsistent key combinations. Ctrl+F ...
I can imagine your pain points, albeit luckily they do not overlap with my use case.
I'm not sure about the alternatives with higher standards though, and I say it as someone who operates two MacOS machines, a windows and an Omarchy one
They all have pros and cons, it's perfectly fine if we have different experiences.
High standards.
Look at a registry with Microsoft vs Gnome. Microsoft is a kludge of a setup were Gnome is well defined. Microsoft is a guessing game and the wording is often a contradiction. Gnome actually gives descriptions of what the property means and what select settings will do. Microsoft does not even defined the meaning in some document. These properties often have to be reverse engineer.
Microsoft tried competing against Google's Chromebooks with a low cost Surface laptop. These laptops had such low hard drive space that they pushed a Windows update that disabled the auto backup of the registry. The update affected ALL Windows installations and not just Microsoft's low quality hardware. A corrupt registry without a backup requires Windows to always be reinstalled.
Microsoft's design for localization is to push the content into strings resource with-in a DLL. This requires the application to be re-compiled for any changes to the translations. A simple text file disconnected from the application binary per language is better off. This allows for the client to modify the translations without the need of the developer. Example would be having the application install fr_FR in AppData and the user being able to edit the translations or create a custom one and store it in the User's AppData with their cultural changes. This allows for full customization without needing direct access to the developer or source of the application.
Applying localization to .NET changes how the the data convert logic works. Means that a string conversion of "1.5" will fail and throw exceptions if the localization is set to using a language where "," is the separator in a decimal system. It gets worse when the application communicates with a 3rd party application and the data types must be constant for one localization. Quality would be to allow to only present the localization while storing the and processing content in a standard language independent of the user's selected.
Microsoft does not properly document the configuration settings for their configuration files. If they do, it quite rare. I will search the Internet for a setting in their solution file (.sln) and nothing will come up. Or it might but point to a Git comment with the setting and no meaning what that variable will do. BSD and Linux applications will create MAN pages for the application and a MAN page for the configuration file contents and provide the user with meaning.
Look at Windows vs Gnome. Press the Windows / Meta key and type _shutdown_ and press enter. Windows will open Edge, not your default Web Browser, and provide an Internet search about shutdown. Gnome will bring up a dialog with a 60 second counter to confirm you want to shutdown the computer. Gnome is quality user experience while Windows rejects the user's request to use Chrome instead of Edge and provides a search result instead of an action this is common on all computers.
Microsoft segregates applications into two groups console or GUI. They do not allow for an application to be both. A quality OS does not segregate and allows application arguments to dictate if the application should run in console / command line mode or as a GUI. Even if you try to hack a GUI into a custom made console in Windows, the STDIN and STDOUT become broken.This is why Windows applications need more code and extra work for logging.
High standards it to provide software that is well documented and uses simple means to configure the software while rejecting the attempt to force the user to use YOUR application and accept that the user's default applications should be used instead.
I don't know, again, your huge list doesn't really overlap with my issues.
In any case, I did try some of your pain points and I cannot reproduce them, e.g.
> Look at Windows vs Gnome. Press the Windows / Meta key and type _shutdown_ and press enter.
https://i.imgur.com/l7WlT2q.png
As for the rest I don't really author code for Windows machines, I write code for unix machines via WSL 2.
I prefer Windows as a desktop machine over linux for several reasons: better window management, personal preferences, compatibility with both worlds (windows and linux), way more software available, etc.
As I said in the previous post: I'm not here to convince you that Windows is a better development machine.
And my background is cross-platform development from desktop to embedded to full stack to back-end and front-end.
I learned that even though you can write an application in _WPF_ you should still learn other frameworks. Often people stick with what they know versus learning what they don't. The tooling and framework to use for a solution should be around the problem and not what you know. A hammer drives a screw but is also the wrong tool to use for the solution. I have learned new programing languages and frameworks because they fit the problem better than what I already knew.
Here are the images of how Windows 11 the shutdown issue:
Typing _shut_ after pressing Windows / Meta key: https://imgur.com/a/FyDarJj
Typing _shutdown_ after pressing Windows / Meta Key: https://imgur.com/a/CJZwWmb
Typing _shutodwn_ and enter key after pressing Windows / Meta key: https://imgur.com/a/TppVS9Q
Even typing _shutdown pc_ and pressing enter did nothing except closing the Start Menu.
One of my greats annoyances with Windows is that Microsoft Anti-Virus will lock the file for scanning. This means I have there is a chance of having to re-run an InnoSetup script compile because Windows is canning a XML file. Happens quite frequently with GIT repository management. Waiting and having to re-run tools because of this is a waste of time.
Desktop Environments are like a person choosing which Bourbon they like. For me the best Bourbon, beer, wine ... are the ones I have not tried. Some people stick with Jack Daniels their whole lives.
> Microsoft is a kludge of a setup were Gnome is well defined.
I also thought that for a long time, but you should open the Group Policy Editor one time. Each property has some paragraphs for description. When you look at the interface and the structure, it looks like the Registry with pretty labels.
> Windows will open Edge, not your default Web Browser, and provide an Internet search about shutdown.
You are holding it wrong! Type Super-R, this won't open the web search. (This is broken for all other programs, since no program puts itself in the PATH on Windows.)
Yes Windows / Meta + R = run dialog. A person needs to know the exact command name and parameters for _shutdown.exe_ to use it. DE like Gnome removes the need to know what actual command is being run to perform; shutdown, restart, logout, and lock screen.
Group Policy is only a small percentage of the Register. _gpedit.msc_ is only useful for manual local computer management or mass deployment for an Active Directory environment. It does not allow for creating a configuration file. In order to apply policy settings direct registry keys must be manipulated, extract, and applied to an installer application. This means referencing the spreadsheet that maps GP setting to Registry key and value. [0] Microsoft seems to dislike configuration files and prefer the Registry. Configuration files are easier to backup, share, and edit with a simple text editor. Registry needs an special tooling.
Microsoft has inconsistencies of how to store values in the registry when it comes to lists. Some times it is a value key per item; _item 0_ = _..._, _item 1_ = _..._. It might be a delimited separator like a space used to store DNS addresses assigned to a NIC. Worst is a more complex binary format that requires reverse engineering, such as the Internet Explorer compatibility URL list.
[0] https://www.microsoft.com/en-us/download/details.aspx?id=103...
FYI, Windows != Meta key. Meta is commonly labelled Alt on IBM/Windows keyboards. The vendor neutral name for the Windows/(Open) Apple/Command key is 'Super'.
You are correct that Win / Windows and Super are the more common name for the key. KDE actually calls this key Meta. [0] [1]
[0] https://docs.kde.org/stable5/en/khelpcenter/fundamentals/kbd...
[1] https://tutorialtactic.com/blog/kde-plasma-desktop-shortcuts...
It seems to come from QT: https://qt.developpez.com/doc/6.1/qt/#LII-45 .
This is still confusing, since e.g. GTK+ and TUIs like Emacs use a Meta to mean Alt/Option. https://www.gnu.org/software/emacs/manual/html_node/emacs/Us...
GTK+ claims to derive this names from X11/XFree86. https://docs.gtk.org/gdk4/keys.html
As an SRE I did most of my work from windows as almost all of my jobs required it (only one provided a working Ubuntu laptop). Mostly used it only for firefox and PuTTY. At home it was W10 + WSL or virtualbox but mostly used it for games initially and then browsing.
BUT as from W11 which I tried for 11 minutes, I switched to Fedora and didn't look back. Everything felt buggy, start menu taking forever, buttons switching places, apps wouldn't start but then randomly would, and of course ads. I know there are debloat scripts around but didn't have the patience, I felt if I'm going to try a new OS I might as well try Linux before buying a Windows license.
Now Linux has its issues, the occasional icon disappears, sometimes shutdown doesn't entirely shut down the machine and I have to power the machine down (electrically from my outlet), sometimes updates don't go through, and of course I miss excel and a couple other things (although I was far from a power user and OnlyOffice fits my needs). But it's still better and with KDE there is almost no config to get a similar "feel" as W10. Amusingly I actually use MORE apps now that I trust installing new stuff more.
That said I would probably pay a premium to dual boot occasionally on a supported Windows OS without bloat, probably it would be my default boot even.
Docker Desktop app for macOS might be a shitshow, but Colima -- or, apparently, Orbstack which I'm excited to try -- should make that moot.
You couldn’t quadruple my salary to get me to program on Windows.
It’s either Mac, Linux native, or I walk.
What’s the point of doing anything ever? Because we can, that’s it. Some people happen to use Windows for things other than gaming (remarkably).
Well, for one, if you develop games for said gaming OS you’re probably doing it on the gaming OS in question and would like the tools to be nice to use.
Also it’s not just a “gaming OS”.
It's worse than a gaming OS. It's the free or cheap version of a Fire tablet.
A better question: why are we optimizing typewriter emulation?
Developing on Windows can be troublesome at times, but I still prefer how it feels to use. For development alone, macOS is probably the best choice since it provides a native Unix environment. I just happen to enjoy the Windows interface more, even if it means dealing with extra setup.
> macOS is probably the best choice since it provides a native Unix environment
And the first thing I do is install the gnu coreutils because it still ships really old BSD utils, and everything expects linux-isms now.
In that regard, macOS is worse than Windows+WSL which at least is real Linux with a real package manager. macOS being better OOTB was true Pre-WSL/Windows 7 era where your choices were macOS for a UNIX with a really nice desktop environment and working sound, or taking a gamble with Linux on your hardware and praying everything worked. Windows was a non-starter for any development that wasn't win32, lest you were a masochist that wanted to deal with Cygwin and the like.
I say this as someone still all-in on the "Apple Ecosystem" across all devices, Apple fans that are also developers all seem to be blind to the ways Apple has been slowly boiling the frog and making macOS hostile to developers in all other aspects of the OS outside of it having a unix terminal. Apple is outright hostile to developers at times.
Why you throwing shade at my two best friends, Linux and Proton, like that?
With the amount of work Windows seems to need just to use it - decrapification, bypassing account creation, constant vigilance that your changes aren’t undone by Windows Update.. - it’s also a gamified OS ;)
Gaming OS? I guess if your gaming's heavy on online multiplayer games that insist on rootkits, and you're not willing to do that on a console instead (you can connect mice and keyboards to those now).
2025 is the year I finally removed Windows entirely from my life, thanks to SteamOS and Bazzite. It'd been solely for gaming for 25ish years, for me, having been (in various versions) my primary desktop OS for another sevenish years or so before that (3.1 was my first, and before that, MS-DOS) and now it's for... nothing. I truly have no use for it whatsoever.
Servers, in corporate environments.
What's the point on using the terminal on an artist OS?
Well, at least it's beautiful on macOS! (Not really, but that's beyond the point :))
In 2025 that would be iOS rather than macOS, several artists I know love Procreate.
Because people keep releasing CLI tools for it instead of just making a nice neat GUI for me to click around in
presumably someone might want to write a game for it
Every single developer at my company programs a C# app using Visual Studio on Windows.