| I strongly despise C#, and I say that with about 5 real years of experience with it. I have been on teams delivering real products with it. It is like Java but married to microsoft while philanders as it pleases. And when I say that out loud some putz always responds "but Mono!" and then the thing I need is inevitably not supported on Mono. When it is working it is stuck on windows server and needing a reboot for some half-assed update microsoft is pushing. With Java I can have all that on a Linux but at least pick which major vendor bends me over! Maybe C# works in Unity, but that is its fan scattering mess. In C, C++, or Rust I am not beholden to one company and can actually control the hardware to do my bidding. I can go into the compilers to find bugs and the creators are responsive when I make bug reports. Often these are more expressive and have tinier code as well. Isn't C# supposed to be faster to develop in these old crusty systems languages? Why that never the case on real teams I am on? If performance isn't what I need but rather short development cycles there is Lua, Python, BASH, or my personal favorite Ruby. All of these allow hacking together stuff so much faster, and when I have needed they it offer more control of the garbage collector or other runtime features so I often get better performance out of them. Then there are the shops using C#. I don't know why, and I see no obvious mechanism that causes this but the culture in C# shops are invariably terrible. I have done 16 contracts in the past 22 years and the least stressful most productive shops are always the nix using professionals or JavaScript slinging kids fresh from college. The overly corporate C# shops always seem stuck in bad ways, pushing some non-agile scrum, lacking any critical thinking, and are often overtly hostile. These are the shops that buy whatever consultant are selling and force it on me without ever consulting me. I have seen one fist-fight break out in the office and it was in a C# shop. Somehow those backend Unix greybeard wizards are always able to talk through their differences with the 22 year blue haired kid who wants progressive typing on the TypeScript interface that is fed by that wizard's service, and they often do it while discussing technical merit instead of political posturing. At last C# contract I started I left after 2 weeks (and I am not counting that towards my 16), because the lead developer was preposterously racist and felt comfortable opening up to me about that in that short a time period. I had a lot of self reflection about why he felt comfortable dumping his race war crap on me, and I have no clue why. C# is not as fast as the slow languages but productive languages. C# is not productive as fast but low productivity languages. And every other thing I mentioned doesn't even have a wiff of vendor lock-in. I am good without C# and the cultures that somehow arise around it. (and the pay sucks I easily get double doing anything* else) |