Spyke
infosec.pub

I've actually found C# quite pleasant to develop with, so long as I didn't have to worry about targeting non-Windows platforms.

105
lemmy.world

What does fully cross platform mean? It sounds very vague and a lot like an exaggeration.

6

The standard .NET C# compiler and CLI run on and build for Windows, MacOS, and Linux. You can run your ASP.NET webapps in a Linux docker container, or write console apps and run them on Linux, it doesn't matter anymore. As a .NET dev I have literally no reason to ever touch Windows, unless I'm touching legacy code from before .NET Core or building a Windows-exclusive app using a Windows app framework.

15

Well, I'm currently writing a service and frontend, both in C# (Blazor for the UI), and using docker-compose to build and deploy them to a Raspberry Pi running Linux. So not only cross-platform, but cross-architecture as well.

This is not a new thing either. Since .NET Core was released almost 10 years ago, it has supported cross platform development.

4

I feel the pain in your comment.

I too have been burned by "cross-platform" tooling. What I've learned is the more complex your project is, the less likely it is to have simple cross compliation.

But with that huge caveat, I'll say I've had a better time doing cross comp on dotnet than I have rust. Either of them are infinitely better than learning cmake though. That's definitely just my amateur take though. I'm sure smarter people will tell you I'm wrong.

2
Wiezy Krwireply
programming.dev

The sdk and runtime are available on all operating systems. I have used nvim on Ubuntu (wsl) to write and execute C#.

0
lemmy.world

See all Operating Systems is a steep claim, that is how I originally misunderstood the meaning of fully cross platform.

I'm relatively certain that it won't run on DOS or an Arduino, thereby instantly disproving the 'all operating systems'.

-2

I mean, if you mean "the most common", that's way different. There's ones in use it definitely won't run on.

2
infosec.pub

True, but what I’m really talking about is the unbeatable user experience of having an application that looks and feels as if it were a native Windows application, because it is and has that first-class platform support straight from the vendor.

With that said, most new cross platform applications today are probably more like electron or Web apps.

3
Kogasareply
programming.dev

Ok, there's no such thing as native Windows apps for Linux, but there are cross platform GUI frameworks like Avalonia and Uno that can produce apps with a polished identical experience across all platforms, no electron needed

16
lemmy.world

Good lord, I've never seen anyone say this in public. I used Qt Creator for a couple of years and I found the combination of C++ for under the hood and Javascript for the UI to be a fantastic way of ensuring a nearly nonexistent base of developers who could competently do both. Maybe they grow on trees in Finland, I dunno. And maybe you're talking about some other "Qt", I also dunno.

I've done C# and Java extensively as well and I would never choose Qt over them. I might choose Qt over Objective-C, however.

12
lemmings.world

QML is such an awesome UI language, the only thing (that I know of) that comes close is Jetpack Compose.

The flavour of JavaScript QML uses is very different from regular JavaScript, it's literally a glue language and any significant non-UI logic should be done in C++.

And Qt C++ is very different to most other C++ framework (or how people usually write pure C++), it feels much more Java-inspired.

Anyway, it really is a great UI toolkit if you want something powerful, cross-platform and efficient.

5

I suppose Qt's cross-platform aspect is a big checkmark in the plus column. My own opinion of Qt is probably colored by the fact that I was forced into it against my will and that the Finns who initially wrote the app were unhelpful and downright hostile to my attempts to customize it in ways that their customization framework did not support.

3
cm0002reply
lemmy.world

Yea this was a crosspost and also just a meme, but C# is my fav

And really cross-platform has come a LONG way...just as long as you don't need UI on Linux lolol

35

Or realistically on Mac. Mac Catalyst is neat but you’re basically building an iPad UI and afaik that’s all that MAUI supports still

4
Huginreply
lemmy.world

Yeah C# gets a bad rap. I spent a decade developing in C++, and Java before switching to C# because of program requirements. Now I never want to go back.

27

C# development was spearheaded by Anders Hjelsberg, one of the brains behind Borland Delphi/Object Pascal.

17
Dracesreply
lemmy.world

Does it get a bad rap outside of this meme? I've only heard praise. It's by far my favorite language

10

It's kind of the opposite of eclipse. People who use it like it and people who don't have experience with it disparage it.

3
Valmondreply
lemmy.world

It's IMO getting a bit oldish, it's nice for small projects (up to medium sized I guess, after that I don't see the benefits over say C/C++ but that's just my opinion) but there are a lot of improvements that could be done I think.

The language is open source IIRC, so it could be done I guess, like C/C++ has new versions every some years.

2
lemmy.ca

I have used many languages in my 25 years of programming. C# is the best.

11

I've used many languages/platforms in my 30 years of programming (take that!), including Visual Basic, C, C#, Java, Objective-C and C++. I agree that C# is the best but not by much. They all do pretty much the same things - if one language lacks something that other languages have shown to be beneficial, that something tends to get incorporated in a future update in some form or another, and their glaring weaknesses tend to get corrected as well (like when Objective-C mostly did away with the need to explicitly release fucking everything).

4
lemmy.world

Poor Visual J# (literal Microsoft Java) isn't even in the picture

84
dukatosreply
lemm.ee

Sun killed it fast enough so almost nobody remembers.

15
lemmy.world

I have 20 years programming experience and C# is one of my favorite languages. It feels so expressive and doesn't get in your way nearly as much as Java does. I feel like I'm writing the code I want to write instead of writing the code someone from 30 years ago with a fetish for boilerplate wanted me to write.

45
mmddmmreply
lemm.ee

Microsoft Java is one of those cases where MS got the "extend" phase so well executed that they didn't even need to finish the plan.

That said, the language is only good if you insist on using either it or Java. And the ecosystem around it is really, really bad.

10

You can't really kill a programming language though

Companies are going to continue using it just because it's what they used before

4
bitchkatreply
lemmy.world

C# is a great language but I'll always choose Java because the ecosystem around it is so vast. Often times some client library you need has a c# port maintained by one guy and he hasn't updated in years.

3
sh.itjust.works

C# is better than java just because it doesn't have as much brain rotting "DesIgN PaTTeRnS" gurus

64
Valmondreply
lemmy.world

A shame there is no real FOSS movement behind it (for what I know) it could do with some modernization.

7
lexiwreply
lemmy.world

What do you mean? The entire stack is open source.

21
Valmondreply
lemmy.world

I'm just hoping for a more thriving community behind it.

8
jecxjoreply
midwest.social

I think that is probably due to the places where it shrines isn't often a FOSS area. All my corporate use was for these massive windows applications. FOSS many times are small teams making very targeted solutions. Aside from Android, it feels like Java programmers are picking java out of personal skill. I don't known what apps I use would be a good target for C#.

3
Valmondreply
lemmy.world

That's probably it, it feels like a "corporate language" for most people, and probably is.

I use C# with Godot and have done some stuff at work but it's true it hasn't really its place it seems. Never have I thought about C# as a solution if I wasn't forced to use it.

2
jecxjoreply
midwest.social

Godot is a great example. The vast majority of the code you write is single function, callback style procedures. Rarely are you creating a hierarchy of class interfaces or dealing with a large multifaceted infrastructure. You are writing what can be done in pretty mundane python.

Rather, C# is there to grab the Unity community and they only really use it because idiomatic Unity may have bigger projects creating engines. C# still follows the HelloWorld complexity property of programing languages.

2

Isn't Unity java ,or has that changed?

BTW I'd preferred python for Godot but well.

1

Its basically a requirement for the OSEP cert put out by offsec so there are a fair amount of cybersec guys who at least piddle with it if you are looking for some projects or a community hopefully that is a good start.

1
e8d79reply
discuss.tchncs.de

Its not so bad, there is Jellyfin, the various arr applications ( Radarr, Sonarr...), ShareX, Duplicati, and a lot of libs. It might not be as active as C , Python or Rust but I think saying that there is no real FOSS movement is a bit unfair.

1

Instead you get rotten-brained dependency injection rules.

5
Pennomireply
lemmy.world

TypeScript is only nice compared to JavaScript. It still has most of the warts and footguns of JS, but the typing system really is badly needed.

17

I always really liked JavaScript, but I’m not a software developer. I guess that’s probably the difference between me and folks who actually need to write production code with it.

2
programming.dev

There is a third brother nobody ever even mentions ... He is also named after an island

3

MS products used to be just Word, Excel, etc. I used to know the name of the guy who instituted adding "Microsoft" to all the names. I think he was a VP.

1