Hacker News new | ask | show | jobs
by nix23 1793 days ago
That's exactly the one single reason why no one should give a developer a Windows machine in a enterprise environment ;)
1 comments

Well that and the shitty dev tools on Windows in general ;)
Care to elaborate? I'm using Windows as a primary dev machine for years and I've encountered no problems aside from the infuriating update-related restarts.

What am I missing? This is an actual, emotionless, genuine question? Always looking to find new ways to procrastinate by trying out new tools ;)

Ultimately it depends on what you need and what you develop for.

If you’re developing for the Linux kernel, I bet you’re missing out on some stuff.

If you’re building web, it doesn’t matter. If you’re building docker images, you can do it on Windows/Mac, but there’s just better performance on Linux if you’re ever debugging speed.

Java? Doesn’t matter either.

More specifically, Windows is an horrible environment for C, C++, or Rust, Haskell, or any kind of language where most developers do not like IDEs. Bad for Python, Ruby, PHP, Perl where IDEs do exist, but it's not a given that they are better than simple editors. Not really good for Javascript or any language with extensive use of dependencies and configuration.

It's not better than Linux for any language, but it comes really close for the IDE oriented ones.

Years ago I did some C++ development using Borland C++ Builder on Windows and couldn't find any problems or annoyances. I've been doing web dev (both front and backend) for a decade or so and can't really complain about anything really.

Developing in JavaScript and dealing with node_modules/node_modules/node_... is platform agnostic problem I think ;)

EDIT: What I like about developing on Windows is it's stability (update restarts notwithstanding). I've had Linux desktops fuck themselves up on more than one occasion. Not that I don't like Linux but...

Yes, once there was a time when C++ was an IDE-oriented language.

I don't know if it was because the good IDE sellers went bankrupt or if it's the change that caused their failure, but it isn't anymore.

About the dependency tracking, Windows isn't good for dealing with lots of files. It's performance isn't great (but improved a lot recently), it has locking and time based inconsistencies, and it brings a load of helper tools (like anti-virus) that will assist you in destroying your file hierarchy. The same applies for holding a VCS repository.

About stability, you are the first person ever that I see claiming to prefer Windows instead of Linux for it. It's such an alien idea that I wonder what non-usual stuff you do with your computers.

For C/C++, in my limited experience, I'd say that Visual studio is fine. Though we're targeting Windows, so it's not as if we have a choice of OS there
Most of Windows itself is written in C/C++...
Yet Microsoft's tools for C/C++ don't hold up. Visual Studio is stuck in the early 2000s (and frankly the UX is horrendous), everything is packaged in weird GUI tools, the entire environment is practically hostile to automation. The VS debugger is probably one of the best pieces, everything else is simply outclassed. Debuggers have also been supplanted for many uses by other tools, of which Microsoft has few and all of them are annoying to use at best. I really wouldn't want to be a developer for Windows that has to cope with debugging e.g. memory issues (on Linux, you put "valgrind" in front of your command, and it tells you the exact line number containing the error 98.4 % of the time -- yes MS has a number, that is, too many, tools to debug various issues, most of which are arkane at best, like gflags). The default for scripting on Windows is still batch, which is simply insane (since batch was designed within the confines of a single user single "process" environment with no memory).

And this is just lacking in the basics department. We're not even talking about Windows coping very badly with development workloads like reading/writing many small files (which is a design flaw in the NT kernel and will not be fixed, ever).

Of course, if you don't use any of Microsoft's stuff, there really isn't anything wrong per se, just annoyances (slowness, spying and other user-hostile behavior from the OS); IntelliJ is IntelliJ, Linux or Windows matters very little if you live inside it.

Edit: It shouldn't be a surprise that Visual Studio is essentially abandoned by Microsoft. Do you abandon good things? You don't.

I have no idea what you’re talking about.
You don't use Windows Update Manager or timed firewall rules to make sure Update doesn't ever interfere with your work?
If your OS defaults to interrupting your work with its update policies, it's doing it wrong. Just because you can delay it doesn't make it acceptable.
Agreed. The fuck-your-work-restart behavior is infuriating.
This is one of the biggest reasons I no longer boot Windows at all, combined with the rather good support for gaming on Linux nowadays.

When I boot up my Windows install for the first time in months and it wants to waste ten, twenty minutes of my time installing updates and not letting me use my computer, I just don't bother next time. When I play a game, and Windows wants to pester me in the background to reboot for updates, it makes me wish I hadn't bothered. If a game or application doesn't work on Linux, I just don't use it. It's not worth the time.

No I don't. The restarts are fucking infuriating but, at least in my case, they've never been catastrophic. My computer is usually running all the time but when I finish working on some thing I always ^S everything and usually `git push --all; git push --tags`.
I'm a relative beginner to development and have found no issues with WSL2 so far. Any pitfalls to be aware of?
When I was using wsl1 I ran into ocassional nuisances: needing to specify a windows mount point and having a problem with phpstorm connecting to it (iirc I had to use a docker for windows setting which was referred to as legacy or insecure maybe).

It wasn't too bad though honestly.

I ended up swapping to debian after my workplace rolled out some insane MDM policies / forced application installs. It is much nicer to dev in *nix

WSL2 is so much better than WSL1
I find that still slow compared to full blown dual install of Linux.