What I really want is a damn good Terminal/Emulator for Windows AND Linux that can run the same set of tools with zero overhead. Boggles my mind that everything is slow and janky to this day.
What I've very often done is use command line tools like compilers, search&replace etc inside WSL2, in a Windows terminal. You have the benefits of speed and all the CLI tools of the Linux world. And then have the GUIs, like vscode, running on Windows. Vscode has its server running on the WSL side, so still very good performance.
Best of both worlds, since the GUIs and the CLIs are tightly integrated.
WSL2 uses "disks" emulated via image files that are stored as ordinary Windows files (but in a secret place). This makes most file I/O from inside WSL2 faster than from inside WSL1.
WSL2 can use the Windows file system (and vice versa) via file servers.
When a Linux app inside WSL2 wants to use a Windows file, the Linux kernel (there is only ever one for all running WSL2 images!) talks to a Windows app that does the file serving.
When a Windows app wants to use a Linux file from a WSL2 image, the image first has to run (might take a little while for it to boot) and then a daemon there serves the file to the Windows app.
I think one of the file servers use a version of the 9P protocol. Maybe they both do.
https://en.wikipedia.org/wiki/9P_(protocol)
Things that do lots of file I/O (such as compiling) are way faster under WSL2 using local file systems than under WSL1.
(waves). Yep, it does "the needed".
"2 is bigger than 1" can take a hike.
Eventually, I installed a WSL2 distro so I could run Docker, then I had to reimage the machine because corporate reasons, and then, with my work involving less Windows-specific code, I decided to not recreate my pile of hacks, but start with a fresh WSL2 setup. It works well enough, so that's what I use now.
FWIW, I always liked WSL1 more. WSL2 is basically just more streamlined VirtualBox setup; WSL1 is magic.
WSL1 is a subsystem on the NT kernel, allowing Linux binaries to run natively on Windows itself (not a virtual machine). It's the spiritual successor to Interix, that showed up in NT 4.0 and was removed in Windows 8.
The flip side is Wine, allowing Windows binaries to run natively on Linux.
Really cool technology really early, but I can't say I'm nostalgic!
I think you're the second-to-last one :-)
Not to say you are doing something wrong - whatever suite your needs. For me, WSL2 provide Linux tooling, i.e. systemd, which WSL1 just cannot by design. The very same way managing system as I do on servers.
When it's possible/makes sense, I do run gitlab-runner in my WSL2 for easier builds debugging, when setting up new projects for programmers - comparing to 250-300+ ms latency working on remote hosts, it's often much more productive.
Basically stable Linux without fighting with Linux-on-desktop-year-to-come.
Meanwhile, in VS Code etc you can just hover over something and click to go directly to it, which is cool, but it's kind of like teleporting instead of actually driving to the destination enough to learn the roads.
I do a similar thing with git PRs -- for example, if you build something that follows a bundled pattern (ex. a component that has frontend, backend and data-related files, plus naming conventions), having a clean + complete reference PR to revisit when you make new components helps ensure I don't miss anything and stay consistent. I usually view these in-browser since Github/Bitbucket/Gitlab all have nice interfaces to see what files you need, where they go, how they're named, etc.
Plus it's written in rust and as we know, it's blazingly fast.
That blog is eight years old now, but still pretty accurate.
For more details at the level of the regex engine, see: https://github.com/BurntSushi/rebar
find/xargs/grep for exploring code, finding definitions, etc.
standard utilities (ls, cp, mv, etc.) in the shell for file management
My cli bogeys are pdftk and imagemagick - both wonderful achievements, but I rarely need them, and they get "paged out". So there I am using web services that probably are just a GUI with pdftk and imagemagick underneath ...
Ah, also a Notepad++ user. Happy 21, time to buy it a (another, shh) beer.
[1] https://www.ghisler.ch/wiki/index.php/Total_Commander_under_...
It was amazing. I've used midnight commander on Linux, but it isn't close to Far IMO.
In fact, I think it's just one guy - Christian Ghisler. Kudos to you, sir.
the wildcard search alone is worth the entry price
been using it for like 10+ years
Synergy and PBP (Picture-by-Picture) with an ultrawide monitor is great! I can split half my screen as Mac and the other as Windows, and the mouse and keyboard just seamlessly jump between the "gap" in the middle of the screen. I switched from a double screen setup (side by side) to an ultrawide and I've been happier than ever.
- Notepad++ for editing, pretty much stock, no plugins
- command line for git and grep (Console2 or Git Bash)
- File Explorer alongside Everything [0] for navigating files
- Beyond Compare [1] for visual diff/merge
- WinSCP/PuTTY for SFTP/SSH (usually to Linux)
- Synergy [2] for sharing keyboard and mouse between Windows and MacOS
I personally enjoy being in all 3 major OS's at the same time, and find it helpful to separate concerns to their respective applications/interfaces -- it helps me keep a mental geography of "where things are" and "what tool is used for which purpose", rather than being beholden to a IDE-dictated workflow or tool that's obscured behind specific UI patterns.
That said, I'll happily use Handbrake over command-line ffmpeg for a lot of things, so obscuring behind UI isn't always a bad thing.
Anyways, HUGE RESPECT to Notepad++!
[0] https://www.voidtools.com
[1] https://www.scootersoftware.com
[2] https://symless.com/synergy