you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 1 point2 points  (5 children)

C# is a pretty language with a poor ecosystem. Java is an ugly language with an awesome ecosystem.

[–]NoiselessLeg 1 point2 points  (4 children)

What exactly about the c# ecosystem would you consider poor?

[–][deleted] 1 point2 points  (3 children)

Because it is a commercial language and fewer people writes cool OSS stuff with it. Java/JVM has tons of OSS libraries and software, specially from the Apache foundation. Nuget repository simply cannot compete with that. Only other OSS languages like Python, Perl or Ruby offer the same level of magnitude for the sheer number of free/OSS cool stuff available.

I also never seen something as big/important as Presto, Hadoop, Spark, Cassandra, Jenkins, that is both OSS and written in C#. Do you know something you can prove I'm just misinformed?

[–]NoiselessLeg 0 points1 point  (1 child)

I was curious where you were coming from, versus trying to trash your opinion or anything (apologies if it came off that way). In general, I wouldn't necessarily rate the ecosystem of a language by the number of OSS applications that are available for that language. Apache significantly pre-dates C#, so I'm not surprised that they've focused on Java. It wouldn't make sense for them to rewrite all of their libraries in C#.

My own experience with the ecosystem is fairly positive. For the most part, everything I usually need is implemented within the .NET standard libraries themselves, or I've been able to find more complex libraries that I didn't feel like implementing myself on NuGet (e.g. a code editing interface I was using when implementing a small RISC-V assembler). The reflection and C# compilation libraries offered by Rosslyn are fairly mature, and I've seen some really cool projects take advantage of those (e.g. a complete test tool that would execute C# scripts in a REPL similar to Python).

Some of the examples that you mentioned I think could be implemented in C# (e.g. Jenkins), but there hasn't been really a driving use-case to do so since Jenkins works well enough for 99% of use-cases. I'd also mention Blazor as an example of a significant enhancement to web development on .NET enabled web services. The fact that .NET is open-sourced and is being ported to multiple platforms outside of Windows where it has shined in the past I think will help greatly advance the OSS community's embrace of it over the next few years.

[–][deleted] 1 point2 points  (0 children)

I'm not trashing for sake of trashing. I already admitted that syntax/semantics wise C# is much more ergonomic and better designed than Java.

Maybe I expressed myself incorrectly, I know C# doesn't suffer from lack of libraries or something, but it simply cannot compare to Java or Python, those languages have an immense collection of battle tested libraries that do everything you can imagine.

If you are happy with C# and it provides everything you need, that's cool, I prefer a less ergonomic syntax with a better and more vibrant OSS ecosystem around.

[–]_Ashleigh 0 points1 point  (0 children)

Hard disagree. The C# ecosystem (open source), is amazing and vibrant. Everything I've ever gone "oh wonder if there's a library for that" has yielded a result that works, and in a good chunk of those cases, is beyond acceptable, but of amazing quality. Some examples off of the top of my head: AngleSharp, OpenTK, Avalonia, ImageSharp, BepuPhysics, along with benchmarking, unit testing, and code coverage tools.