4 ms·
Which are valid fears -- C# has become a language with an insanely big surface area, almost comparable to C++'s. This surface area will get rough, unforeseen ed
by kaba0 3y ago
Which are valid fears -- C# has become a language with an insanely big surface area, almost comparable to C++'s. This surface area will get rough, unforeseen edges when multiple different features are used together (no matter how generally good C#'s design is), so on the end-user dev it is not even a linear-only weight to learn.
Java is a common butt of jokes among C# devs, but in my opinion its addition of features to the language while committing to backwards compatibility is simply the best in the industry and should be copied by every language pertaining to a similar status (not for research languages obviously, they should be the ones experimenting) -- they seldom add new features, only those that have been proven by others and trying to kill multiple birds with a single stone in each case.
Also, .NET does have a dubious past regarding backwards comp. from what I gathered, "its" frontend churn alone is remarkable, the only thing more spectacular is their renamings.
- pjmlp 3y ago> Java is a common butt of jokes among C# devs.... And those of us Polyglot devs, have positive and negative arguments that go both ways.
- kaba0 3y agoIndeed, both languages have plenty positives and quite a few warts as well. While I do prefer Java personally, I consider C# an absolutely fine choice for almost every usecase. Go on the other hand, I'm much less forgiving about.
- pjmlp 3y agoC# is getting some strange design decisions of lately, see inline arrays, and interceptors. Yeah, they had plenty of hindsight, and still....
- zigzag312 3y agoWhy are they strange? Interceptors seem to enable migration away from reflection, for better support of AOT compilation. For example: https://github.com/DapperLib/Dapper/issues/1909 https://github.com/DapperLib/Dapper/issues/1909
- pjmlp 3y agoInterceptors are a hack, instead of a properly designed AOP framework, which Microsoft already has, although comes with Visual Studio Enterprise price tag, Microsoft Fakes. Inline arrays are another hack, instead of properly designed language grammar, like in languages like D or Swift.
- zigzag312 3y agoC# interceptors are a metaprogramming feature. AOP is a higher-level concept. An implementation of AOP can use these metaprogramming features to achieve aspect weaving.
- pjmlp 3y agoAre a badly implemented, and clunky, metaprogramming feature. Where a sound AOP framework, or macro system are much more sane. Belongs to the same trash bucket as the C# 11 bang-bang operator, and I will vote for the same outcome, in all places asking for community feedback.
- zigzag312 3y agoI lack experience to assess quality of C# interceptors, so that might be true. I'm just happy that C# ecosystem is slowly becoming less dependent on runtime reflection.
- metaltyphoon 3y agoWhich are both fine?
- pjmlp 3y agoWhich suck both.
- tasogare 3y ago[dead]
- ilyt 3y agoI don't see any language advantages of Go if you know C# or Java already. On the other side we use it for ops because new hire, regardless of what language they know, can learn it in a week or two and produce not-shit code and don't suffer any of the Python or JS problems.
- coldtea 3y ago>Java is a common butt of jokes among C# devs Rarely are "jokes among X devs" for another language not a sign of ignorance and fanboyism.