Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd quit my job if work didn't let me be root on my work machine.


That's exactly the one single reason why no one should give a developer a Windows machine in a enterprise environment ;)


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.


I actually do pretty mundane, boring stuff with computers - web dev, some finance & trading, lots of backend. It isn't all that exciting to an average person but I'm fine with it, it gives me pleasure to do it and I don't care what anybody says about it ;)

Again, genuine question, what instability do you imply there is in the Windows environment? Since Win 10 I don't recall ever being fucked by updates (again, not including mandatory restarts).

What I don't like about Windows is the configuration. On Linux I can just copy over the configs and scripts from another system and that's usually that. On Windows, out of necessity, I've made a lengthy checklist of things I need to do on a new Windows machine in order to set it up to my needs. It's a pain, but once that's done I rarely have to fidget with it.

I think that my preferences have to do with getting older. When I started I happily spent days configuring Linux Desktop, compiling Gentoo with just the right flags and didn't get so upset when apt-get dist-upgrade fucked up my system. Now, I just don't care that much. I just want things to work so I can do work I want.

Just one thing to be extra clear about - I use Windows as a daily driver desktop. I'd never ever use Windows as a server, ever. I've had that experience once, in college, and I'll never ever make that mistake again ;)


My W10 computer at work already had the OS reinstalled 2 times in the less than 2 years I've had it. Since the beginning of the pandemic I've kept a W10 VM at home for work, it has much less small problems, but I've already had to delete it and reinstall once.

On my experience, Windows 10 is even a regression over 7. There have been too many updates that fucked up computers at random (looks like MS is rolling updates slowly nowadays, so not everybody gets the broken ones), and the system likes to break at random by itself.

In comparison, the last time I remember reinstalling Linux due to a software mess-up is about a decade ago, when a dual-booting computer got a Windows virus that messed with the entire disk. I have many more Linux computers than Windows, and yet, those only need any attention when some hardware breaks.


Ha! I had the exact opposite experience. With Win10 Desktop I had no problems, everything works mostly as expected. I'm not on the beta channel or whatever so I guess that contributes to the stability.

Now, onto Linux, most recent example. I had a throwaway Thinkpad with Ubuntu on it. Had to go through an unusual setup because I wanted RAID and FDE so had to do a server install and then install Gnome. This might have contributed to the problems but still. The networking didn't work because Gnome used one thing and the server install used another. Then the desktop stopped (!) working after some time, randomly. What I mean is icons still showed up but couldn't be clicked or altered from the desktop. Kinda bizzare.

Again, can't stress this enough - my gripes are with Linux Desktop. On the server it's been rock solid ever since I started using it more than a decade ago and it's been a very pleasant experience. And I do understand that Windows Updates can fuck up a server setup, sure.

Anyhow, this has been a pleasant chat, man!


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.


> 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).

Not the kernel, but ntfs.sys. It is a design limitation of NTFS and was a tradeoff for something else. At the time NTFS was designed, high frequency reading and writing to small files was not at all common.

This does not exist on FAT/32/64 partitions, though there is always a per-file overhead on any filesystem, and FAT filesystems have their own problems.

IO performance tools don't seem to test reading and writing to a large number of small files; they tend to want a single large file and they test performance to and from that file. That's by design, and that means those tools don't find filesystem design limitations, or allow you to measure certain types of performance on a per-filesystem basis.

> Edit: It shouldn't be a surprise that Visual Studio is essentially abandoned by Microsoft.

Again, not true.

No one can know everything that MS is doing, of course, but the number of people who think they do is quite high. I am not referring to the person who made the comment I am replying to, by the way. Generally I just see a lot of things about MS or MS tools that are stated as fact and are entirely incorrect.


It's not (just) a NTFS problem, but larger design issues around the centralized object handling in NT, (intentional) lack of a caching VFS layer [1] and of course filter drivers (which are a public kernel API and enjoy a lot of use). There's a fairly lengthy explanation of these issues with Windows I/O somewhere on one of the WSL bug trackers.

> Again, not true. No one can know everything that MS is doing, ...

You're right of course - there is a number of releases yet to come. What I meant is that the focus is elsewhere (VS Code) and that the platform isn't going anywhere.

[1] In the design of typical unixen the file system is central and the kernel does a lot (central VFS, kernel resolves paths to inodes by itself if cached, in Linux the FS can even tell the kernel the extents of an inode to delegate that IO entirely etc.), while the NT design is a "generic tree of objects" (combined with "every action is an IRP, which can traverse any number of filters and such") where file systems are nothing really special; file system stuff is the file system's problem.


Abandoned? Are you kidding? They're previewing the 2022 release.

And frankly VS Studio UX is not horrendous. Modern UX is horrendous, give me deep menus and toolbars any day of the week.

As for I/O, I've worked on large git repositories (aka tons of small files) on Windows with no issue. In a Dropbox-synced folder no less.


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.


And anywhere with a good IT department would say "bye". From my experience, people with reasonable technical skills are the most likely people to defy IT policies, even without admin rights.


Then hold me responsible if I do.


Often by the time the violation is noticed, the damage is done. And when you're cleaning up a million dollars worth of ransomware damage, you rethink whoever thought anyone should ever be operating with admin rights to their machine.


>people with reasonable technical skills are the most likely people to defy IT policies

Absolutely true...aka "i know computers since the C64 nothing bad will ever come from my machine...bumm ransomware...but my Antivirus never said anything"


Less to do with that and more to do with it being infuriating that you can't install or do tiny things you need. It can be less frustrating to hop jobs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: