5 ms·
As a developer who only works on Linux systems, how is the dev story for C#? I guess Mono is still a thing, and that's the runtime that C# projects use to run,
by j1elo 3y ago
As a developer who only works on Linux systems, how is the dev story for C#? I guess Mono is still a thing, and that's the runtime that C# projects use to run, right?
I've always felt that C# felt a bit out of place when not in a Windows system, but maybe I've been always wrong. Never had the opportunity (or need) to use it at work, so I'm pretty ignorant of how it behaves and how good the tooling is to write it from Mac or Linux.
OTOH I've read multiple times that it's a nicer Java and F# seems to be well liked around here, too.
- Rapzid 3y ago> how is the dev story for C# It's fantastic and it runs natively on Linux. Mono is still around and used for some niche use cases(WASM, interpreter, etc).
- WorldMaker 3y agoAlso Mono and the rest of .NET are in the same open source repositories today and it isn't as much a case of replacement as a proper code refactor and merge over the course of the last several years (by both Microsoft and a large open source community).
- Macha 3y agoIt's a little funky on Arch to get it installed and with the death of Mono the only option for IDE is microsoft's closed version of vs code as the c# plugin doesn't work on vscodium. (And much like Java, lots of C# language design assumes you're using an IDE). But apart from that for a web app it's fine.
- cjblomqvist 3y agoRider works very good (but costs you some $$$ off course).
- actionfromafar 3y agoYou can wrangle C# with minimal IDE support, but it's not as smooth. It's easier to fix little things than to green-field new stuff, IMHO.
- mananaysiempre 3y agoDo the OmniSharp LSPs[1,2] not work with a generic LSP editor plugin (e.g. kak-lsp)? [1] https://github.com/OmniSharp/omnisharp-roslyn https://github.com/OmniSharp/omnisharp-roslyn [2] https://github.com/OmniSharp/csharp-language-server-protocol https://github.com/OmniSharp/csharp-language-server-protocol
- asyx 3y agoThey do but it's not as smooth as rust or Python. It is obvious that not many people use neovim or similar editors. Like, last time I used it Microsoft broke their own LSP protocol and fixed it in the vscode extension.
- papercrane 3y agoMono is still a thing, but Jellyfin uses .NET Core, which is a FOSS runtime that Microsoft provides.
- neonsunset 3y agoIt's just .NET now, without the Core part. Mono remains a runtime flavour for special targets but it's being slowly phased out in favour of CLR even on those special targets (for example iOS which has historically relied on MonoAOT, but now can be targeted with NativeAOT too). Also, I'd really love if people stopped exclusively attributing .NET's progress to Microsoft. Yes, MSFT does the steering and funding, and employs teams working on the ecosystem, but the development happens in the open, and a lot of runtime improvements have been community contributions.
- cjblomqvist 3y agoC# runs natively on Linux (have done for many years now). AFAIK even on Azure people prefer to run it on Linux machines (including the place I work for). Performance wise I believe it runs equal to faster. A lot of C# devs (majority) now work on none Windows machines (they were very quick to add support for the new Mac arch as well). TLDR; C# the language is as good or even better on none-Windows nowadays.
- leetharris 3y agoThis is only true if you're talking about non-GUI apps. MAUI is trying to fix this but in my experience it has been a rocky start. But for backend and CLI stuff totally agree, works great on Linux
- generichuman 3y ago> This is only true if you're talking about non-GUI apps It is also true for GUIs if you're using Avalonia [0]. I use it to develop GUI apps on Linux, it works very well (Nothing I can show publicly, sadly). Obviously it doesn't use native controls, but it is a solid GUI framework. [0] https://www.avaloniaui.net/ https://www.avaloniaui.net/
- neonsunset 3y agoTo be fair, the only real good solution that works for native crossplat GUI applications is Flutter. Most other offerings always end up being worse one way or another than Avalonia/MAUI/Uno.
- distract8901 3y agoCLI is one of my biggest pain points with C# on Linux. A lot of the Console functions simply don't work because they're expecting an entirely different kind of console. Just clearing the screen doesn't work, you have to sneakily pass a "clear" string to the input stream, or something like that. Console drawing is an enormous pain. I went to a lot of effort to optimize my console writes to construct graphics quickly, and it just does not work on Linux. I'd have to switch to a curses type library and it just makes me sad :(
- mvdtnz 3y agoYour view of C# is at least 6 years out of date.
- distract8901 3y agoC# on Linux is only slightly more annoying than Windows. You have to make some effort to install the SDKs and naturally some of the system APIs behave slightly differently, but overall I have only a very slight preference for windows here. Mono does still exist, but since like 2015 or so C# has been supported natively on Linux. No one really uses mono anymore AFAIK. Its only purpose is running dotnet framework apps as opposed to dotnet core
- phpisthebest 3y agowhat you need to do is install powershell on linux, and set that to be your default shell, then install dotnet Once complete you will have the best linux environment to develop on :)
- distract8901 3y agoOf all the posts I've seen on this website, this one is the worst
- nightfly 3y agoNotice their username, someone who just wants to hold the contrarian opinion. Even when they're right, very tiring to deal with
- phpisthebest 3y agowhile you are correct I am very contrarian.... I do happen to like both PHP and Powershell (and C#) I like the syntax, I like the languages. I find Bash, python, and other "traditional" linux admin tools to be harder to use. Bash especially, I hate dealing with text streams, i would much rather pass objects around
- majkinetor 3y agoNah, it's pretty great TBH. And honestly, if that post IS the worst, this must be your first page on this website.