Hacker News new | ask | show | jobs
by jiggawatts 1281 days ago
> but falls badly in the coding & tooling department.

That's more perception than reality, often from people who simply don't know how to use Windows.

Visual Studio, Visual Studio Code, and IntelliJ IDEA blow any Linux text editor out of the water for developer productivity.

For Linux workloads there is the Windows Subsystem for Linux (WSL 2), which now even supports GUIs with GPU acceleration!

Visual Studio Code can even operate in "remote" mode where it tunnels into a Docker container or Linux server and acts as-if the remote target was the local machine.

On Windows, x86 and x64 Linux Docker containers run in process isolation at full speed, unlike on Macs where there is CPU emulation required.

8 comments

This is just really false. As someone that used Windows as my daily driver & migrated to Linux many years ago, the tooling on Linux is vastly superior. Most codebases and extensions also work trivially easy in shell, and command line operations in general are much less a pain point.

I’ve since migrated to Mac because I was spending too much time making linux work properly, but I do miss the control I had. I have Windows on parallels and I can’t believe how much of a disaster it’s become. I wouldn’t encourage anyone to it.

For most people migrating off of Windows, I’d recommend Kubuntu. It is KDE Ubuntu, and it feels like Windows used to during its golden age. Also, it’s free. All major IDEs work on Linux so the shift is pretty painless. Really recommend migrating.

So how you do you single step GPU shaders on your superior tooling?
Here is an extension for you to debug GLSL/HLSL shaders in VSCode on every platform: https://marketplace.visualstudio.com/items?itemName=dfranx.s...

NVIDIA also has a multiplatform GPU debugging sdk. I’m sure if you look at extensions for whatever IDE you’re using, you’d find what you are looking for in under 5 minutes.

You’d be surprised how good all the tooling is now days. It also isn’t my tooling, it’s everyones. That is the key difference. With Linux, you aren’t the product. People work and maintain it for the betterment of mankind and for personal satisfaction / freedom. So people care, and they are passionate, and there is a very involved worldwide community. It is more than a paycheck to them.

I know GNU/Linux since Slackware 2.0, know pretty well how it goes.
I’m sure you do, not questioning your competence nor intellect nor experience. There is just a lot of stuff to keep track of, so sharing this info for others who might happen upon our small exchange.

We’re all in this together, and there are always new things to discover for our finite selves interfacing with an infinite pool of knowledge.

The same way you develop iOS applications on your Windows laptop.
Completely unrelated to how wonderful Linux tooling above anything else.

By the way, for iOS I single step shaders using Metal tooling on XCode and Instruments, no need for Windows.

Nice! Now run any 32-bit program.
That wasn't what we were discussing about, goalkeeper.
> Visual Studio Code, and IntelliJ IDEA blow any Linux text editor out of the water

But those tools themselves work on Linux.

Depends a lot on what you are trying to accomplish.

The inability to get something akin to VT220 terminal access and shell scripts on a POSIX-based system without resorting to a virtual machine (a la WSL2) is a deal-breaker for me. The steps for using scripting languages (e.g. Node, Python, Ruby) is typically entirely different on Windows than it is from all other server and desktop platforms.

For those who can spend their time nearly 100% inside an Electron-based or Java-based IDE however, it matters a lot less whether that IDE is running Windows, MacOS or Linux.

> On Windows, x86 and x64 Linux Docker containers run in process isolation at full speed, unlike on Macs where there is CPU emulation required.

You do realize they didn't require us to all burn our old Intel-based Macintosh computers, right? Apple even still sells Intel-based Macs.

Windows requires emulation to run aarch64-based containers. Except on Windows for ARM of course, where presumably they run full speed but those x86/x64 containers above require CPU emulation.

WSL2 is not a virtual machine, it's a subsystem. It's basically the opposite of WINE.

You can run all of your favourite languages nearly identically to Linux on Windows either via Docker or WSL2.

> Windows requires emulation to run aarch64-based containers. Except on Windows for ARM

Making Windows and Linux the only platforms with ongoing support for both ARM and Intel CPUs, unlike MacOS where Intel support will eventually expire.

Technically, WSL version 2 _is_ a VM based technology:

"WSL 2 ... uses the latest and greatest in virtualization technology run a Linux kernel inside of a lightweight utility virtual machine (VM)."

https://learn.microsoft.com/en-us/windows/wsl/compare-versio...

WSL1 is not a VM design, but that design reached its limits.

A VM doesn't make it bad - I don't do a lot with WSL but I like it a lot. It's not slow or limited.

> Visual Studio Code can even operate in "remote" mode where it tunnels into a Docker container or Linux server and acts as-if the remote target was the local machine.

Of all things in this comment this one is the funniest, because Emacs was able to do it for years (decades?).

If you're talking about tramp, its design is quite a bit worse than vscode's or intellij's remote support.
Probably, but point is it’s not something revolutionary. I’ve been using tramp for quite some time and despite some quirks it’s a working solution.
The big issue with tramp is that code doesn't run remotely. Running LSPs is impractical over a network connection, no matter how close the remote is.
false. i used windows and migrate to linux (starting with ubuntu) 10 years ago. i know how it feels to help a co-worker setting up a ruby on rails project on windows. we spent it full day.

on linux, we spent no more than one hour.

those editors you mentioned are also available on linux nowadays.

if someone needs to test something on windows, there's "windows on aws" (i used it once)

If you code in Windows and deploy on Windows, I think it's fine. Java/C#/Python/Microsoft C++ are well supported.

If you're coding in Windows and deploying on Linux, it's not ideal. Sure there's WSL2 which kinda sorta helps for a lot of day-to-day stuff. But often weird errors creep in, my favorite being the MS-DOS EOL instead of the Unix EOL, which breaks Bash scripts, leading to developers saying: "But it worked fine in MSYS!"

I have come across all of "Java/C#/Python" recently, and all of them were "deploy on Linux" most of the time. Yes, including modern C#.
> Visual Studio, Visual Studio Code, and IntelliJ IDEA blow any Linux text editor out of the water for developer productivity.

I used to love Visual Studio but Jetbrains has caught up to it and then surpassed it years ago. I generally run IDEA and VSCode for code editing and going back to Visual Studio is a real shock, especially with the pleasant memories I've had of using it.

VSCode and IDEA run great on Linux, though, perhaps even better because Windows isn't great with tons of tiny files.

WSL2 is great if you prefer the Windows GUI. It fixed almost every issue I've had developing on Windows outside of Microsoft's data hunger and terrible UI design. Whatever Linux centric tool you can think of, it just runs on Windows now.

If I could use the comfortable and stable Windows 7 UI with the Windows 11 kernel, I'd actually consider going back to Windows. In terms of usability, Windows just lacks polish these days. That said, my attempts to try macOS didn't fare much better, I just couldn't get over the primitive window management and the bad integration with my home/end/page up/page down keys.

People that keep repeating that matra really don't do serious Windows development.

GPU debugging, DDK support, ETW debugging, SQL Server integration, GUI designers for Forms, WPF, UWP, MFC, mixed mode debugging across .NET languages and C++, COM/WinRT IDE tooling,IIS integration,...

Yes, because this niche is so niche now it's not really worth talking about. Just as you're not talking about Mac as developer laptop to do Objective C or Cocoa development, but what 99% of programmers do.
Where in the world are those 99% developers?!?

Quite curious, I guess if we focus on US market, while disregarding game consoles and 80% of the desktop market.

But the remote stuff is blocked in the FOSS version :(

https://github.com/VSCodium/vscodium/blob/master/DOCS.md#pro...

Typical Microsoft. Pretending to be FOSS but there's always some sneaky strings and telemetry attached.