4 ms·
The problem being, cargocults tend to hold the power. So yes, learn new concepts, practice them and more, but don't be surprised if in practice you can barely u
by BlargMcLarg 4y ago
The problem being, cargocults tend to hold the power. So yes, learn new concepts, practice them and more, but don't be surprised if in practice you can barely utilize them thanks to cargocults insisting they are wrong.
We see this in C#. Has a ridiculous amount of features outside default OOP and continues to get more baseline, even has great interop with several other languages. But culture changes very, very slowly. Large scale adoption tends to happen only when some major framework insists on using a certain paradigm.
- tester756 4y agoWhich features are you talking about?
- BlargMcLarg 4y agoTake about anything you like of minimum level C# 6. My personal gripe being poor adoption of tuples/anonymous types and records. C# has been trending towards introducing more things from the functional paradigm in particular, but just getting away from typical OOP patterns and replacing them with something more on the spot or functional isn't amazingly well received. The main thing which seems very well adopted is LINQ, and that's primarily due to Entity Framework and Microsoft pushing LINQ-adoption hard. Most places still program in C# as if it were Java with Lombok built-in. And that's where I'm getting at mostly. New paradigms and languages are cool, but historically it's been difficult for them to get mass adoption unless a big name is pushing for it hard. Convergence has been the name of the game for a while now, rather than divergence.
- cplusplusfellow 4y agoThe reason why I’m not adopting C# is because I’m never going to be a windows user.
- hardware2win 4y agoIt works on Linux just fine
- ok123456 4y agoProblem is the mono C# compiler is several years behind Roslyn in terms of features. It's pretty much a non-starter if you don't have nullable types in 2022.
- Jtsummers 4y agohttps://dotnet.microsoft.com/en-us/download https://dotnet.microsoft.com/en-us/download Works fine on non-Windows systems (well, Linux and macOS at least) IME and isn't several years behind.
- hardware2win 4y agoDont use Mono Also I think you are giving nullable ref types too much credit
- ok123456 4y agoI don't think you're giving them enough credit. Having the type system be able to tell you that you may have a null reference exception in a complicated code base is magic. I've inherited bad code bases and refactored them to use nullable references and watched lots of bugs fall out.
- hardware2win 4y agoI'd rather use Result<T> everywhere
- becquerel 4y agoI've been coding .NET on linux fulltime for multiple years now.
- smaudet 4y ago.net core is not Windows only - works on the big three (linux mac windows). That said, I get where you are coming from - .net framework is pretty much just windows, and there a large number of libraries/apps that are Windows first, other platforms second. If you do end up needing to do Windows dev, though, I'd recommend it, same as if I were doing Apple Dev I'd recommend Objective C/Swift, or recommend you brush up on bash/zsh/fish, C and maybe Xorg/Systemd for linux. You can use other languages on all these platforms but the 'native' toolkit tends to enjoy better interop and have better support.
- oriolid 4y agoThe other big C# ecosystem is Unity Engine with its own frameworks and plugins. It lags a bit behind Windows, and might be one reason why some C# developers seem to be behind the times when it comes to new language features. Edit: The other reason Unity developers are careful around new language features is avoiding memory allocations. When you write C# like it was Java it's more straightforward to see where allocations happen but it's all too easy to accidentally write allocations in your main loop if you use everything the language has to offer.
- CyanLite2 4y agoAnd this is the problem OP is talking about. Outdated thinking from a 15 years ago is how cargo cults hold onto all the power.
- phillipcarter 4y agoThis comment is about 7 years out of date.