Remix.run Logo
jeroenhd 2 days ago

Kotlin may have been relatively IDE-locked without a proper LSP being available, but C# is cross-platform in terms of both editors and runtimes (assuming you're not targeting Windows' .NET stack).

At this point I wouldn't consider it any more or less proprietary than any other Microsoft language, like TypeScript for instance.

exyi 2 days ago | parent | next [-]

Kotlin did not have open LSP, C# still does not have an open debugger.

The C# VSCode extension works in Microsoft's build of VSCode, not when someone else forks it and builds it themselves.

jeroenhd 2 days ago | parent | next [-]

The debugger is proprietary but still works cross-platform. I don't know how Jetbrains does C# debugging in Rider exactly, but that shows that you don't have to use VS (Code) to do C# development if you don't want to.

Thanks to Samsung of all companies, there's an open source C# debugger on GitHub (https://github.com/Samsung/netcoredbg). That seems to be the basis of the open source C# extension's debugging capabilities: https://open-vsx.org/extension/muhammad-sammy/csharp

The VSCodium C# community wants Microsoft to open source their debugger instead of having to maintain an open source version themselves, but that doesn't mean you need to use Microsoft's open source version. If anything, this forceful separation makes it so that there never will be only one implementation (like there is for languages like Rust which have always been open and therefore only have one way of doing things).

exyi 19 hours ago | parent [-]

I know about netcoredbg, but I did not have much success using it. If we count this as the C# debugger, then the tooling quality is not comparable to other mainstream languages like Scala, D or Julia.

JetBrains have their own closed debugger, which doesn't really help.

Since Rust is native code, you can use pretty much any debugger for it, there is definitely not a single implementation. Yes, Rust has a single compiler, but does C# have any other compiler than Microsoft's Roslyn? (I don't think this is a problem, though)

martypitt 2 days ago | parent | prev [-]

Kotlin has had an OSS (MIT) Language Server for years. It's written and maintained by the community - but isn't that exactly the point of open source?

[0]: https://github.com/fwcd/kotlin-language-server

cess11 2 days ago | parent | prev [-]

C# is partially cross-platform. Might be fine for web applications, but e.g. GUI frameworks aren't as cross in practice as they make it out to be, which I've wasted tens of hours figuring out before going back to Java and Racket.

The nice language on the CLR, F#, also doesn't seem to be very well liked by MICROS~1 anymore.

jeroenhd 2 days ago | parent [-]

MAUI is cross platform for every platform most businesses care about (mobile+Windows+macOS). For the rest, there's Avalonia (and a bunch of alternatives, but Avalonia comes closest to Microsoft's systems I think).

You won't be writing visual bootloaders in plain C# any time soon, but the GUI side of C# is fine

cess11 a day ago | parent [-]

Avalonia wasted most of the time I spent.