TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Is C# Underhyped?

43 点作者 Decabytes超过 1 年前

16 条评论

zamalek超过 1 年前
Nulls, exceptions, and no discriminated unions. I use C# professionally and those traits completely ruin the language. And, no, the nullable stuff doesn&#x27;t cut it. It has some pretty awkward quirks.<p>Also, almost nobody writes code that is fast. Sure, aspnetcore might be optimized to the teeth, but drop EF in and that&#x27;s all wiped out and then, not some, a ton.<p>Idiomatic C# has also become what I call abstraction infatuation. It&#x27;s impossible to tell what actually happens in that perfect 5 line method that uses 30 different interfaces and 10 different factories. Better have a good debugger handy (you won&#x27;t: they all barf on async code). Aspnetcore and EF take abstraction to such academic levels that the most hardcore of Java EE devs would blush.<p>I started learning it months after it launched, I am a truly seasoned C# veteran. I thought it was the best thing since sliced bread. But hear-you-me, I have had one too many exception in my time, and C# is <i>massively</i> overated.
评论 #38565564 未加载
评论 #38565226 未加载
评论 #38570182 未加载
评论 #38574171 未加载
评论 #38565078 未加载
评论 #38568464 未加载
评论 #38565335 未加载
评论 #38565365 未加载
neonsunset超过 1 年前
Yes, it is. The comment section here is the proof of the overarching problem. People just don’t want nice things and would rather act on their tribal stereotypes instead.<p>Read through - you will see developers who unfortunately use either outdated platform that is Unity (it uses Boehm GC, in 2023!) until Unity 6 comes around. Or developers who don’t use C# at all, or the ones that had bad experience with some non-corelib library back in 2016 and then go onto crusade.<p>There are some for whom the actual state of affairs does not matter at all, and no amount of improvement throughout the years is sufficient.
lmm超过 1 年前
OSS C# was a day late and a dollar short. Fundamentally, why would you ever pick it over Java? Theoretically it has a nicer IDE and some usability improvements, and better reflection. But that nice tooling was only ever available on Windows, recent revisions of Java have closed the usability gap, and people are finally realising what a bad idea reflection was (other than the Spring Boot nutters). Meanwhile library availability and general platform&#x2F;tooling support for Java is orders of magnitude ahead.<p>It&#x27;s kind of a shame, because in isolation C# is a pretty well-designed language. But people don&#x27;t switch to better-designed languages, they switch to languages that have a killer feature that their previous language was missing. C# never managed that.
评论 #38565428 未加载
评论 #38565707 未加载
ecshafer超过 1 年前
I have used some C# with Unity and Mono, so I can&#x27;t comment too much on C# on the server compared to Java, Go, etc. It&#x27;s an okay language but isn&#x27;t bad.<p>That said, F# is a <i>fantastic</i> language. F# is Ocaml but a bit more simpler, better concurrency, and on the C# runtime (or to javascript with Fable).
RachelF超过 1 年前
It&#x27;s a good language, better and safer than C&#x2F;C++.<p>However, Microsoft has messed it up in multiple ways:<p>- It was great for Windows desktop applications, then they came out with Silverlight which then got abandoned.<p>- It has its own version of DLL hell. Users almost always need to download the .NET runtime. Windows 10 originally shipped without the most popular version, which made the runtime the most popular download.<p>- MS could not come up with a consistent naming and numbering conventions for their versions, Core, Framework and now just .NET<p>- Visual Studio Code doesn&#x27;t properly support it, yes there are plugins, but to do anything useful you need Visual Studio proper.
评论 #38567957 未加载
kromenak超过 1 年前
I&#x27;ve used C# quite a bit due to the Unity game engine. Moment to moment, it&#x27;s pretty enjoyable to code in and easy to read. The cross-platform nature is usually really nice too (C# DLLs typically work on all platforms without issue).<p>However, I do have a few complaints:<p>We spend a lot of time fighting the garbage collector. This leads to awkward situations where certain variables that would ideally be function-local need to be made into member variables so we can reuse the memory each frame. This makes our code more complex and less local.<p>The choice to make &quot;class&quot; vs &quot;struct&quot; dictate whether memory is allocated on the heap or stack is annoying. I think there are a lot of problems with this: overloading keywords borrowed from C&#x2F;C++, not being sure where memory will be allocated unless you go check the type definition, not having the option to instantiate a single type in both memory areas.<p>At first glance, you think C# doesn&#x27;t have to deal with pointers. But in reality, just about everything IS a pointer, just with no syntax to indicate it. The fact that (almost) everything can be null makes code more complex.<p>I also find some of the syntax introduced in newer C# versions hard to read - but I guess I also feel that way about C++!<p>Ultimately, I still really enjoy&#x2F;prefer C or C++. Despite their flaws, they give you a lot of options and a lot of control that I sometimes wish I had in C#.
评论 #38565596 未加载
评论 #38568061 未加载
评论 #38565551 未加载
jacknews超过 1 年前
I never touched it myself, because it&#x27;s &#x27;Microsoft&#x27;s version of Java&#x27;, so double-plus-ungood.<p>But my 14yo son has been trying all the languages the last year or so (from lisps to lua to rust, to C, to icon, vale, to, etc, etc), and out of all of them he&#x27;s most impressed by C#. According to him, it&#x27;s just really well designed, all just fits together beautifully ... (his opinion on Rust - it&#x27;s just not complete yet).<p>So I think C# probably is under-hyped, and I&#x27;ll be taking a look myself. That&#x27;s if I can even download it; I guess I&#x27;ll have to wrestle through a microsoft account login, app store, or family permissions, or whatever other user hell they&#x27;ve concocted lately.
评论 #38568267 未加载
评论 #38570016 未加载
foota超过 1 年前
In my mind a Java is the main language that shares the same niche as C#, and I think for a long time C# came out ahead while Java stagnated, but in many ways I think Java has now pulled ahead imo.
评论 #38565345 未加载
nsonha超过 1 年前
Swift, C#, Scala: the top languages for having a bloated design and make people choose between a gazillian ways of doing things for every single coding decision.
f8o超过 1 年前
Well, for a C-based language that needs to keep compatibility, I&#x27;d say it&#x27;s one of the best. I&#x27;d love to see a breaking change (under a pragma or something) in order to have public modifier as default, everything as expressions instead of statements and so on -- get closer to Kotlin.
tjpnz超过 1 年前
I understand the meaning of the question but &quot;hype&quot; isn&#x27;t going to encourage the best answers.
darthrupert超过 1 年前
Even Microsoft is moving towards Rust.
coderedart超过 1 年前
Honestly, this thread is kinda low quality. OP seems to be taking criticism of C# personally and going full defensive mode. And the question itself is too vague to answer properly. Is this post just seeking validation of one&#x27;s own preferred language?
devaiops9001超过 1 年前
No. C# is not Rust and therefore is not relevant. Microsoft is rewriting core Windows components in Rust, not C#.
评论 #38569099 未加载
65a超过 1 年前
No, it&#x27;s only useful on a shrinking platform.
评论 #38565351 未加载
devjab超过 1 年前
I worked with C# for a decade, and I think it’s never been better than it is now. I also think it’s a language that’s mostly meant to be sold by Microsoft in 2023 where it’s sort of outlived its usefulness compared to something like Go, or even Java.<p>I live in a very Microsoft happy region of the world, but not a single company that’s managed actual growth is using C#, and the language sort of lives in this “stagnated semi-large company that’s not going anywhere and hasn’t for a long time” space. Which might not have anything to do with C#, but more that the choices over all at those companies (which includes going too heavy in on the Microsoft tech stack) seem to hinder them from growing beyond 100-300 employees. Which on one hand is unimportant for the developers who work there, but often leads to a lot of those developers to “stagnate” as well, which sometimes lead to them having a rough time if they for some reason have to enter the job market at 50+.<p>So in many ways I think C# is very overhyped. Mostly because, why would you ever chose it? I don’t think it really compared with Rust. Rust can compete in the same space as C#, but you’d mostly pick Rust instead of C++, and I see things like Java, Python, Go and Typescript as its main competitors. Java mainly being there because large “boring” enterprise organisations like banks are going to use Java until all of us retire. But if you’d chose between Python, Typescript, Go and C# you just wouldn’t ever pick C#. Even against Java, I’d question why you would ever pick C#? Java is so far ahead of C# on concurrency that it’s painful to watch how C# developers are still stuck using things like await.<p>Yes it’s faster than Typescript and Python, but with Python being capable of powering the web-back ends at Instagram and OpenAI that is sort of a silly point. And Python is just soooo much more efficient in terms of producing things fast. It’s also telling that even Microsoft’s own C# developers pick Python over C# for things like prototyping and smaller applications they need to build fast. Go is king of concurrency and Microservices and you can see stories like Lunar who’ve gone from a Node backend to a Java backend to Go and now can’t imagine not using Go. Then there is Typescript, which today is basically what C# wants to be, and probably will be as the two languages influence each other more and more, but allows you to “full stack” in one language (except for the parts that run on Python and C++&#x2F;Rust but you’ll have those regardless as some things require the efficiency of C++&#x2F;Rust and the ML&#x2F;BI&#x2F;AI crowd aren’t going away from Python until the moon leaves our orbit). With companies like LEGO running most of their software on Typescript and Node, leaving C# behind, it’s also hard to talk too much about its inefficiency.<p>You can also look in my history and see my ranting about a range of the issues you’re eventually going to run into with the “magic” C# comes with, because a lot of their automatic handling of complexity can break in various ways when you need to use it in ways Microsoft hasn’t build it to support, and sometimes that’s simply using two different Microsoft libraries for C#. Which has nothing to do with the language itself, but let’s not pretend you aren’t going to use EF, Blazor, WebApi or similar if you use C# so it does impact you even if it has nothing to do with the language.<p>I don’t think there is anything wrong with C# though, it’s just that there isn’t really anything “right” with it either. It’s a language that doesn’t do anything other languages doesn’t do better, which includes being a jack-of-all-trades language where it’s also flat out losing to Typescript. If that last statement makes little sense to you, I fully understand, because a good Node development requires and opinionated CI&#x2F;CD environment where as C# kind of doesn’t. But this is partly also why you’ll find so many C# developers get trapped by the language and end up making glaring mistakes like using IEnumerable instead of IQuerable. Or making what is going to execute as 9 table joins in linq but not wonder why it takes 4 minutes to execute. Which because you can get away with some pretty bad CI&#x2F;CD pipeline in C# (for a while) ends up going to production.