Replies: 1 comment 1 reply
-
|
While I'm not a dev of this project, I can offer you some insights as a C# developer/programmer. First, C# for a while has been cross platform. Most people think of C# in regards to .NET Framework (Which was windows only). But with .NET Core released in 2016, it is a cross platform language (Windows, Mac, Linux). And since it is cross platform, there is no hacky workaround for it. You just install the dotnet tooling, and then you run it like anything else, As for why to choose C# compared to Electron based language? C# for backend is extremely strong with ASP Net Core. For the frontend itself, while MAUI isn't the best cross platform GUI, it does integrate well with the rest. And it doesn't take a year to implement a feature. While Linux and MacOS do not have visual studio, there are IDEs like Jetbrains Rider that are perfectly capable for development on different platforms (I've been using it to write C# apps on linux for a while). Using C# for something like this also shifts the approach that is often taken for development. A lot of electron apps tend to follow the philosphy of "make the feature in the frontend first, then hack the backend to support the feature". While C# more leans toward "create a stable backend first, and then integrate it with the frontend". Both approaches are valid, but from my experience, the backend first approach makes the code more maintainable in the long run. I hope that provides some helpful insights why they may want to use C#. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Let me preface this with some context and some bias.
I don't know a ton about the intricacies of .NET / C#. I did pick it up early in my software-engineering journey, but haven't really used it since outside of casual game dev. However, I know quite a bit about the downsides to maintaining large Java applications - a big part of my day-to-day is porting enterprise java due to this maintenance overhead. I also know C# and Java are largely considered similar in terms of patterns that contribute to this maintenance overhead (as well as many other language fundamentals).
Now back to my question, why C#? My naive assumption is that a project like this, a direct competitor to redacted electron based chat application, is going to need move quickly with a large open source backing. Being able to implement a feature in a week that would take your competitor an entire sprint team and a year to get into production, C# seems counter productive to that goal for the earlier stated reasons.
Additionally, this leans more on my bias but is relevant, C# on anything besides Windows is not an optimal developer experience from what I remember. Over the years, I have found that if an open source project (like this) is primarily written in C#, it's likelihood of running on the average linux system without some type of hacky translation layer (wine, proton, etc.) is poor. Game consoles, cell phones, tablets, a growing percentage of desktop computers (especially among open source developers), and a vast majority of server hardware are running linux - isn't this apart of the target demographic?
I completely acknowledge that there are big reasons for this choice that I am not seeing. A learning experience (for me) is what I'm hoping for here. I am a big fan of what I am seeing regarding this project's goals. I will always advocate for bringing better products to market, so that user's can enjoy value that big name competitors would rather see behind a paywall.
Beta Was this translation helpful? Give feedback.
All reactions