I find it crazy how many people here are making it sound like it’s torture to use Windows. I get that they prefer Linux, but for many it seems like it goes way beyond normal preference to something that’s a core part of their identiny.
Yet I work for a very successfully (we have too much work and don’t even advertise for it) small company and we all use windows computers as software engineers. We use C# .Net Entity Framework, SQL, GraphQL, React Typescript or WinForms.
We have some large clients that most people ok earth have heard of.
What exactly are we talking about? Doing Windows related development on Windows is roughly as decent as doing Linux related development is on Linux (or Mac).
It’s just that because like 90% of servers are Linux, 90% of development benefits far more from being developed on a Linux-y system.
For example, the Windows filesystem is very different. Over and over I’ve had issues with permissions being different, with paths being inconsistent (this happens esp. with WSL) and with limits on path length.
You can develop on Windows, but having the test env closer to the real env takes care of so many little headaches.
That’s an uncommon opinion here. Here being the operative word.
Look in I’m not going to say I wasn’t disappointed that it wasn’t Mac which I used at my last job, but when it comes down to what we need to do in a day I don’t notice the difference.
I tried Linux last year as a daily driver and gave up as I’m not looking for something else to debug in my own time. I now just want it to work.
I’ve been using Linux and MacOS my entire life, with brief stints on windows when my job has required it. Every time I have to use Windows I’m gobsmacked at some of the design choices, bugs, lag, and anti-patterns.
You’re absolutely right that it’s mostly the same, you mostly use the same apps, you still use a mouse to interact with them, there’s still a file system, etc. But when the experience is mostly the same it just makes the parts where they differ so much more frustrating in my experience.
Unfortunately my experiences trying to use Windows as a daily driver have been much like yours with Linux, I find myself messing around with stupid bullshit in a never ending cascade of settings menus, each more janky than the last, just trying to do simple things. It’s unfortunate Windows has become so janky as I remember it working quite well back in the xp days.
All this is to say, I think at this point Linux is often as good as Windows (it does depend on the distro, tons of bad ones out there), but familiarity is king. I’ve spent decades using all three operating systems, and have mainlined Linux since 2023, so that’s just what I’m most familiar with now.
I’ve lost track of what we were originally talking about, but yeah. They’re all good enough just use whatever you’re comfortable with and don’t overthink it I guess 🤷
C# development is incredibly efficient to be fair.
Have you considered not asking questions based on conjecture? No it isn’t because we are inefficient. It’s a mix of staff come first and the work comes second and a lack of greed I’d say. Most of our work comes from word of mouth and we keep client for as long as they’ll stay with us.
If a client reads a spec and get the application described and decides it’s not right we will change it for them for free to build a relationship. Which is why we get more and more requests to work with us.
As someone who has worked with a pretty large C# codebase and several smaller ones, I’ve found it to be one of the least efficient languages to program in. This is maybe not a technical fault of the language, but the way Microsoft encourages developing C# means that once you get past a certain point even simple MRs will have 10-20 files changed. There is sooooooooo much boilerplate caused by .NET that even things like Java Spring Boot just don’t have (and even then I’d consider Java to be a pretty bloated language in terms of boilerplate).
That’s ignoring the fact that the ecosystem surrounding .NET is a lot more enterprise-y, meaning a good portion of libraries require paid licenses to use.
Yeah, I totally get where you’re coming from. I think it depends on what you mean by ‘efficient.’ If we’re talking about runtime performance and memory management, C# and .NET are generally very efficient: JIT compilation, span/memory optimisations, and the garbage collector all make it competitive with Java in most workloads.
Where I agree with you is in developer efficiency: .NET projects can definitely get heavy with boilerplate, especially in enterprise setups with lots of layers, dependency injection, and config-heavy patterns. That’s not necessarily a language issue, but more a combination of the framework conventions, Microsoft’s enterprise guidance, and patterns like MVC/WebAPI scaffolding.
“Minor” inconvenience is not having a coffee machine in the dining room, it’s nothing like the culture of incompetence that permeates organization that are that severely vendor-locked.
I can say also as a senior engineer, I would never turn down another o ly because of this. It’s not my software I’m making, it’s the company. It’s not my things. If they want me to code on a pentium 3 I’ll happily do it, it’s their money. They want me to waste it on that, that’s on them.
That isn’t minor at all. If I’m using a tool all day, it needs to be something that I’m comfortable using. Forcing me to use Windows is like taking my office chair and replacing it with a chair that has a lumpy cushion and broken casters.
I understand putting up with a shitty job situation because you need the money, but this is certainly not a “minor inconvenience”.
Dude how many qualifications do you have that you can turn down a job offer in this economy over such a rather minor inconvenience?!
I find it crazy how many people here are making it sound like it’s torture to use Windows. I get that they prefer Linux, but for many it seems like it goes way beyond normal preference to something that’s a core part of their identiny.
Dude, that’s like hiring a truck driver and telling him his lorry will be pulled by 4 horses.
If they want to pay me to deliver stuff on a unicycle, I’ll be delivering stuff on a unicycle. Do I want to ride a unicycle? Depends on the pay.
It is a mistake to see oneself as a mercenary in this way. We should all be the happier if objectionable jobs were harder to staff.
Sure, but it’s difficult to classify which jobs are objectionable and what the price should be for someone to do them anyway.
Your chariot awaits! It’s an actual chariot
Yet I work for a very successfully (we have too much work and don’t even advertise for it) small company and we all use windows computers as software engineers. We use C# .Net Entity Framework, SQL, GraphQL, React Typescript or WinForms.
We have some large clients that most people ok earth have heard of.
Nobody thinks you can’t do software engineering on windows. It’s just worse.
It really isn’t though. I’ve done in on Windows, Mac, and Linux.
Mac and Linux are easier to install stuff but on the whole the experience has been almost identical.
What exactly are we talking about? Doing Windows related development on Windows is roughly as decent as doing Linux related development is on Linux (or Mac).
It’s just that because like 90% of servers are Linux, 90% of development benefits far more from being developed on a Linux-y system.
For example, the Windows filesystem is very different. Over and over I’ve had issues with permissions being different, with paths being inconsistent (this happens esp. with WSL) and with limits on path length.
You can develop on Windows, but having the test env closer to the real env takes care of so many little headaches.
You’ve used modern Linux and modern Windows and think the experience is almost identical? That’s an uncommon opinion.
That’s an uncommon opinion here. Here being the operative word.
Look in I’m not going to say I wasn’t disappointed that it wasn’t Mac which I used at my last job, but when it comes down to what we need to do in a day I don’t notice the difference.
I tried Linux last year as a daily driver and gave up as I’m not looking for something else to debug in my own time. I now just want it to work.
I’ve been using Linux and MacOS my entire life, with brief stints on windows when my job has required it. Every time I have to use Windows I’m gobsmacked at some of the design choices, bugs, lag, and anti-patterns.
You’re absolutely right that it’s mostly the same, you mostly use the same apps, you still use a mouse to interact with them, there’s still a file system, etc. But when the experience is mostly the same it just makes the parts where they differ so much more frustrating in my experience.
Unfortunately my experiences trying to use Windows as a daily driver have been much like yours with Linux, I find myself messing around with stupid bullshit in a never ending cascade of settings menus, each more janky than the last, just trying to do simple things. It’s unfortunate Windows has become so janky as I remember it working quite well back in the xp days.
All this is to say, I think at this point Linux is often as good as Windows (it does depend on the distro, tons of bad ones out there), but familiarity is king. I’ve spent decades using all three operating systems, and have mainlined Linux since 2023, so that’s just what I’m most familiar with now.
I’ve lost track of what we were originally talking about, but yeah. They’re all good enough just use whatever you’re comfortable with and don’t overthink it I guess 🤷
Have you considered that you might have too much work simply because these tools are inefficient?
C# development is incredibly efficient to be fair.
Have you considered not asking questions based on conjecture? No it isn’t because we are inefficient. It’s a mix of staff come first and the work comes second and a lack of greed I’d say. Most of our work comes from word of mouth and we keep client for as long as they’ll stay with us.
If a client reads a spec and get the application described and decides it’s not right we will change it for them for free to build a relationship. Which is why we get more and more requests to work with us.
As someone who has worked with a pretty large C# codebase and several smaller ones, I’ve found it to be one of the least efficient languages to program in. This is maybe not a technical fault of the language, but the way Microsoft encourages developing C# means that once you get past a certain point even simple MRs will have 10-20 files changed. There is sooooooooo much boilerplate caused by .NET that even things like Java Spring Boot just don’t have (and even then I’d consider Java to be a pretty bloated language in terms of boilerplate).
That’s ignoring the fact that the ecosystem surrounding .NET is a lot more enterprise-y, meaning a good portion of libraries require paid licenses to use.
Yeah, I totally get where you’re coming from. I think it depends on what you mean by ‘efficient.’ If we’re talking about runtime performance and memory management, C# and .NET are generally very efficient: JIT compilation, span/memory optimisations, and the garbage collector all make it competitive with Java in most workloads.
Where I agree with you is in developer efficiency: .NET projects can definitely get heavy with boilerplate, especially in enterprise setups with lots of layers, dependency injection, and config-heavy patterns. That’s not necessarily a language issue, but more a combination of the framework conventions, Microsoft’s enterprise guidance, and patterns like MVC/WebAPI scaffolding.
Eh C# GUI development is quite productive. I don’t think you’d get such a pleasant experience on Linux.
“Minor” inconvenience is not having a coffee machine in the dining room, it’s nothing like the culture of incompetence that permeates organization that are that severely vendor-locked.
Exactly, it’s a serious red flag.
If you’ve currently got a decent job, then you can afford to be suuuuper picky.
The best time to find a job is when you have a job.
I can say also as a senior engineer, I would never turn down another o ly because of this. It’s not my software I’m making, it’s the company. It’s not my things. If they want me to code on a pentium 3 I’ll happily do it, it’s their money. They want me to waste it on that, that’s on them.
Yea, but some of us would rather choose to enjoy the work. Paycheck and pleasure doing the job is where it’s at.
That isn’t minor at all. If I’m using a tool all day, it needs to be something that I’m comfortable using. Forcing me to use Windows is like taking my office chair and replacing it with a chair that has a lumpy cushion and broken casters.
I understand putting up with a shitty job situation because you need the money, but this is certainly not a “minor inconvenience”.