10 ms·
This thread shows there is still a large amount of FUD around .NET and it’s community. Folks here still think it’s Windows-only and comparable to Java. Yet lat
by CyanLite4 4y ago
This thread shows there is still a large amount of FUD around .NET and it’s community.
Folks here still think it’s Windows-only and comparable to Java. Yet latest TechEmpower benchmarks shows .net running on Linux and being faster than Go, Python, Node, and Rust.
- dustinmoris 4y agoThe dev experience is Windows only, STILL: https://news.ycombinator.com/reply?id=32220935&goto=item%3Fid%3D32219836%2332220935 https://news.ycombinator.com/reply?id=32220935&goto=item%3Fi... (Also the benchmarks are a cheat, look at the source code of C# vs the source code of Go or Java)
- DeWilde 4y agoI use Rider on my Ubuntu machine and the dev experience for me, is even better than using VS2022 on Windows.
- dustinmoris 4y ago
- fabian2k 4y agoVS Code has a C# debugger on Linux. There are certainly limitations to the open source C# support in VS Code, but for students it should be easily sufficient. If you want a language where not only the core and main libraries are open source, but also all the tools then C# is probably not the right choice. If free (but not open) tools for most use cases and paid tools for larger companies or higher-level demands are okay, then C# fits.
- dustinmoris 4y agoOmniSharp (VS Code extension for C#) has been discontinued and there is no replacement yet. Besides, Microsoft purpusefully sabotaged OmniSharp to make it so unusable that it forces people to use Visual Studio, so even if a beginner on Linux would decide to try C# with a discontinued product they would only face difficulties and a basically horrendous mostly broken experience. .NET on Linux is non existent without Rider and there is no way to sugarcoat this fact. It's sad how ignorant some people are about this and keep peddling untruths about C# that it is well supported on Linux when it isn't.
- oaiey 4y agoIt is not discontinued, it is regularly updated, and all the interesting parts are coming straight out of the compiler project (Roslyn) which will be the source for all future alternative extensions. Surely, they have different interest and do not put too much money into OmniSharp. Do I like that some part of the stack is closed source (like the debugger and in future the extension host): No! Does it lead to a broken or discontinued future: No! Compared to my experiences with PHP, Java and JavaScript, C# on Linux is just fine.
- jborean93 4y agoI use vscode on Linux without any problems. Can debug and do all I need to do without any problems. Omnisharp may not be perfect but it works. It will be interesting to see what is going to replace it but short of the closed source concerns I’m fairly sure it will still work.
- Paradigma11 4y agohttps://github.com/OmniSharp/omnisharp-vscode/commits/master https://github.com/OmniSharp/omnisharp-vscode/commits/master
- jeremycarter 4y agoThis is terribly ignorant
- dmitriid 4y ago> dead to students or any new users because nobody is going to fork out a couple hundred $ As all JetBrains products, it's free for students, open source projects, and classroom assistance, and training courses. https://www.jetbrains.com/rider/buy/#discounts https://www.jetbrains.com/rider/buy/#discounts And it includes an excellent debugger.
- dustinmoris 4y ago.NET student (aka newbie) <> student in school And please stop this fake reality bullshit. NOBODY, not a single freaking person who wants to learn a new language will start off by searching the internet for an IDE and debugger where they can apply for a free license and then wait a few days so they can try it out. That is just ridiculous to even suggest. If one wants to learn a language they download the SDK, open VS Code and look for an extension. If there is none or the one that exists doesn't work they basically say "WHAT THE FUCK IS THIS SHIT", close it and walk away with the conclusion that it's not well supported. Let's stay real please okay.
- dmitriid 4y ago> NET student (aka newbie) <> student in school Then you should say: "a person who just starts with .Net". > And please stop this fake reality bullshit. NOBODY, not a single freaking person who wants to learn a new language will start off by searching the internet for an IDE and debugger I started with .net only 4 years ago. I went ahead and got myself Rider because I dislike VS Code and I already had 6 years experience with other JetBrains IDEs. Oh look. I'm that "no single person" who went ahead and looked for an IDE. And bought it > Let's stay real please okay. Screaming nonsense at the top of your lungs doesn't make you any closer to reality.
- KronisLV 4y ago> And please stop this fake reality [...]. NOBODY, not a single freaking person who wants to learn a new language will start off by searching the internet for an IDE and debugger where they can apply for a free license and then wait a few days so they can try it out. That is just ridiculous to even suggest. I actually did. JetBrains products were really nice to try out whilst studying in university and eventually lead to me purchasing the ultimate tools package for any personal or professional projects that I might want to do. It's really amazing to have the same set of tools for almost all of the languages that you might want to work with, that work consistently across all of the OSes that you might use. Normally I avoid paid software because of the vendor lock in, but a lot of the time it feels like JetBrains are just the company that you should reach for to avoid headaches, for better or worse. For comparison, in the Java ecosystem, you also have Eclipse which has performance problems and an odd/unstable plugin ecosystem (though some swear by it) and NetBeans which has been handed over to Apache but doesn't really get much love or attention towards its development at all. Of course, some might use Visual Studio Code or another text editor with plugins but not being able to do refactoring across a project with 4000+ source files makes that approach dead on arrival for me, for all but the smallest projects. The situation is pretty similar in regards to C#: you have Visual Studio which limits the platforms, JetBrains Rider which is a paid project, Visual Studio Code plugins which are insufficient and also something like MonoDevelop, which has pretty much been abandoned.
- borissk 4y agoRider is free for students.
- deleted 4y ago[deleted]
- DeWilde 4y agoRider is free for students and that is how I started using it. Also, VS Code with OmniSharp isn't that bad for smaller projects for development and is pretty good for debugging for apps of all sizes (my 2 year experience with it). So to claim that you cannot debug C# on Linux for free is false.
- jenscow 4y agoFor non-students, first 30 days are $0 (maybe that's enough "to see if they even like C#"), then it's less than $15 per month after. Perhaps not truly free, but within reach for most people. Also, the EAP is $0 (although it's pre-release and not always guaranteed to be available)
- oaiey 4y agoEvery benchmark is a cheat and not a real-world problem. I also thought their benchmark is a cheat. But it is not. It is testing exactly what the benchmark was testing in that scenario. That is why TechEmpower Benchmark suite is so powerful. It uses different web server scenarios (connection, JSON parsing, database connections, ...). The different test case implementation .NET and others have are making sure no other factor is influencing this. For example: when you benchmark connections why dealing with MVC, validation and database connections. It is not .NET who cheats, it is the others who do not properly isolate the tested performance aspect. And to make the comparison a bit more real and day-to-day applicable, you need to pick the right framework configuration (like aspcore-mw @ 80% / aspcore-mvc @ 37%) and compare with other reasonable scenarios (like express @ 1% / spring @ 2% / quarkus @ 8%). Both are then far of the top 10 ten list but still comparable. The top 10 combinations are for cases where developer productivity does not matter but throughput is the key (e.g. a DoH resolver or a system like a Cache / Database).
- d3nj4l 4y agoSo, either way, the benchmark is not an apples-to-apples comparison between frameworks?
- raydiatian 4y agoUntil Microsoft can match the dev experience of writing front and backend in typescript with pnpm, I’m not touching the dotnet/nuget cli(s) with a 10-ft poll. If you want to write C# just write go
- KronisLV 4y ago> If you want to write C# just write go I don't get this. If you want to write C#, write C#. If you want to write Go, just write Go. Go is a great language because of its simplicity and ecosystem, has lots of useful things in the standard library, has pretty good runtime performance and also compiles to static executables easily (which is especially useful for projects like Nomad). It's both a good fit for web development, as well as writing smaller or larger utilities. Honestly, its packaging situation is leaps and bounds ahead of something like Python, so I predict great future for it in DevOps too. C# is a more advanced language with a rich history and a lot of the functionality for web development in particular coming as first party packages. Some of that historical baggage weighs it down and the complexity can be annoying, but ASP.NET Core, EF Core, Kestrel and many other components are great. Plus, running on *nix is good, even though the single executable/runtime/deployment situation isn't quite as easy as with Go. Write code in whatever technologies work for you. My caveat to add would be that I'd (almost) always develop front end and back end separately, since the React/Angular/Vue webapp really shouldn't care much about what technologies are behind the APIs. Of course, being able to use a single language for both FE and BE development is also a worthwhile approach!
- raydiatian 4y ago> I don’t get this That’s because my argument has nothing to do with the language itself but you still felt compelled to write an essay. I’m saying the modern Linux-based tooling, ecosystem, and devex of C# is inferior to so many other choices.
- KronisLV 4y agoI don't get it because the claim that "If you want to write code in language X, just use language Y" doesn't vibe well with me. It feels needlessly dismissive somehow. Hence the exploration of the good things about each of the languages and genuine reasons why people might enjoy using them for slightly different use cases. At the end of the day, everyone can make that choice for themselves, unless their org makes it for them.
- bob1029 4y agoThe performance really is astonishing in many areas now. The part that keeps me hooked is the fact that I can stand up something capable of producing those numbers in 30 lines of code using 1st party dependencies only. I can then have a full prototype to demo by late afternoon, again having antagonized over exactly zero 3rd parties. For me, the performance numbers aren’t just about speed while in production. It’s also about speed to production. Having the confidence that it’s almost certainly going to be fast enough by default keeps me from worrying about optimizing random bullshit throughout. I still haven’t seen anything that comes remotely close to the combination of speed and stability offered here. I do some pretty nasty things with the runtime and it just copes. GC seems like pure magic now too. I continue to avoid things like LOH allocations with streams, but I don’t worry about it like I used to in the 4.x days.
- TheRealDunkirk 4y agoIf you like the productivity, just wait till you try Rails.
- 202206241203 4y agoRails is still a thing in 2022?
- henry700 4y agoOld habits die hard I guess. Some languages just need to buy a coffin already
- TheRealDunkirk 4y agoLOL. That's good. Thanks for that.
- SZJX 4y agoPHP is still a thing since time immemorial… And will remain there for a long time to come. (Seems like they made quite some improvements in the latest iterations as well.)
- metadat 4y agoComing from Java, Go, and Javascript, C#/.net just plain sucks. Things that should be simple, e.g. Collections APIs.. aren't. I stopped trying after this realization. I preferred the C# from 15 years ago compared to whatever is going on over there at present. If you're already indoctrinated into the ecosystem, I'm sure it's fine. Otherwise, buckle up - things are going to get choppy.
- fabian2k 4y agoHow are collections in C# worse than in Go? In C# you have LINQ, in Go you're writing for loops around array slices.
- metadat 4y agoMaybe I was using it wrong? As I recall, "the usual" APIs present in most other OO languages were not available when I tried to help a friend with a project 3 montjs ago.
- efdee 4y agoWhich APIs were those?
- fuy 4y agoYou might've forgotten to reference LINQ and Collections.Generic in your project? Because C# definitely has good collection APIs that influenced many languages including Java Streams.
- UK-Al05 4y agoC# has very comprehensive collection API. More so than those languages. Most languages copy c#
- magicalhippo 4y agoWhich collection APIs were you missing? Between the standard interfaces and their default implementations[1] and the extension methods to IEnumerable[2] you can do quite a lot in my experience. [1]: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic?view=net-6.0 https://docs.microsoft.com/en-us/dotnet/api/system.collectio... [2]: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1?view=net-6.0#extension-methods https://docs.microsoft.com/en-us/dotnet/api/system.collectio...
- bayindirh 4y ago.NET core can run on any platform it wants, but as long as it's from Microsoft, the company as we know it, I won't even write "Hello, World!" with it. A language can't be the fastest at everything in today's mature language ecosystem. OTOH, Debian's "Programming Language Games" benchmarks shows it's on par with Java (which is not slow in any means), and not as fast as you claim [0]. In the page I shared, some C# benchmarks are impressively fast, because they are written with explicit hand crafted SSE3/AVX vectors, which a run of the mill programmer won't want to touch (for most of the time, anyway). Comparing .NET Core, which is a hybrid JIT language with purely interpreted ones like NodeJS and Python also makes no sense at all, considering Python Compiler does not do any optimizations whatsoever, and is still confined to a single core per process unless you pull some tricks. Choosing horses for courses is fine, and we all shall do it, but claiming a language as winner over a single benchmark suite, including the one I referenced is wrong. Choose what works best for you. [0]: https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- Scarbutt 4y agoSmall nitpick, Nodejs has a JIT (via V8) and you will be surprised at its performance when compared to Python.
- bayindirh 4y agoI know, I've written NodeJS for a very short time, and remember liking it. However I can't position it into my current ecosystem where code is probably be seen by multiple people and need to understand/improve it. Thanks for reminding, BTW. :)
- enlyth 4y agoCurious, what is it with Microsoft that makes it so poisonous for you that you won't touch anything they make with a ten foot pole? As an example, I'd say Facebook (Meta) is a way more toxic company but I've never heard of a developer have moral arguments against using React
- 4y ago
- Ygg2 4y ago> Yet latest TechEmpower benchmarks shows .net running on Linux and being faster than Go, Python, Node, and Rust. That's not true atm. At time of writing (TechEmpower 21) Rust frameworks have top 3 out ouf 5 slots (#2, #3 and #5) in composite rankings. https://www.techempower.com/benchmarks/#section=data-r21&test=composite https://www.techempower.com/benchmarks/#section=data-r21&tes... Which goes to show, benchmarks change and depend on use case. And Rust is very competitive (in league with C/C++).
- WatchDog 4y agoWhats wrong with comparisons to Java, and why the need for you and the article author to throw shade at Java while singing the praises of C#? Java and C# are very similar languages.
- The_Colonel 4y agoShitting on Java is part of .NET ethos (I've worked in a couple of .NET shops)
- th0rwaway 4y agoI recently worked with some .Net developers who wanted a primarily Java based company to let them work with .Net. In their opinion .Net was so much better (faster, larger ecosystem, more developers) that it would pay off quickly. When I asked them for documentation, they pointed to some microbenchmarks that had no significance to the type of work they would do. They also complained that Java was more "corporate" than ".Net", which is ridiculous in my opinion. Even if that was the case, the differences would be a "rounding error"
- metaltyphoon 4y agoI think that's part of every other language's ethos.
- The_Colonel 4y agoIn the Java dev teams I haven't noticed any common target that would be consistently shat on.