4 ms·
C# support should be pretty good. You've got options. You can use the Mono ecosystem, including the MonoDevelop IDE, Mono runtime, and libraries like GtkSharp;
by jchw 4y ago
C# support should be pretty good. You've got options. You can use the Mono ecosystem, including the MonoDevelop IDE, Mono runtime, and libraries like GtkSharp; these have been around for a while and some Linux desktop apps use it. You can also use the official Dotnet SDK and runtime, which lacks some stuff that Mono has for compatibility (like Winforms) but should have a good developer experience in either VSCode or Jetbrains Rider, and supports the latest .NET and C# features.
I don't know much about F#, but it seems F# isn't far behind. There's a useful page about getting started and other than the omission of Mono it is similarly supported.
https://fsharp.org/use/linux/ https://fsharp.org/use/linux/
- bmitc 4y agoF# comes with the .NET SDK. Once you install it, you get F#, so F# isn't behind at all. Mono is largely irrelevant except for legacy applications things like Godot and Unity that use Mono.
- jchw 4y agoOn Linux, I don't think Mono is irrelevant. It would not be abnormal to have both upstream dotnet and Mono on the same machine for desktop Linux.
- mattmanser 4y agoThis seems like completely out-of-touch info. You can run C# with .Net Core on linux now easily, no Mono involved and have been able to for years. TBH, I thought Mono was dead. If it's not it's an extremely niche thing of people who want to write desktop apps for linux in C#, a tiny slice of the market. I've run production ASP.Net core apps on linux (basically websites in C#), trivial to setup, even though I develop on Windows.
- jchw 4y agoI mentioned the official Dotnet SDK. You're out of date; it's not called Dotnet Core anymore; just Dotnet. Mono is not dead. It's used in a bunch of commercial software for one thing, including Unity and Godot. > If it's not it's an extremely niche thing of people who want to write desktop apps for linux in C#, a tiny slice of the market. Can you think of why, other than marketshare, that I might mention Linux C# desktop apps in a thread about C# on Linux?
- mythz 4y ago> it's not called Dotnet Core anymore; just Dotnet. The platform has been renamed to ".NET" (since v5), the SDK is ".NET SDK" the executable is named "dotnet", but it has never been branded that way.
- jchw 4y agoThe point I was making is that what was once called .NET Core is now just .NET, after the merge with what was once called .NET framework. However, I think the name .NET is annoying to read and type, and it's ambiguous in a similar manner to Go, so I say Dotnet and Golang. Dotnet is literally just .net with the dot spelled out. It's not really a separate name.
- mythz 4y ago> The point I was making is that what was once called .NET Core is now just .NET Right, IMO it's important to use these official correct labels when correcting someone. "Dotnet" looks like an unintentional Autocomplete error. The executable and repo names use "dotnet" since using ".NET" or previously ".NET Core" would be awkward and unconventional. I'm assuming "Golang" is used because "Go" is a generic ungoogleable word, any language without this issue e.g. Python, Java, Kotlin wouldn't need to make such concessions.