Programming thread

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
What is this board opinion on C#.
It's very convenient, has a pretty thorough set of standard libraries, and generally learned from all the mistakes that Java made and avoided them. I like it for when you just want to hack something together in a high-level language.

Does it have any problems with it?
The planned obsolescence treadmill has started running at warp speed. Any given version of .NET is only supported for 3 years (LTS) or 18 months (non-LTS). Compare to Java, where OpenJDK gets 6 years of LTS support, and Oracle's commercial version apparently a bit more.
(.NET Framework is a slightly different story - any given version that's packaged with a Windows OS is supported as long as the OS is supported. That's why .NET Framework 3.5 had an incredibly long lifetime.)

As for whether it's a good first language, I think we could have eternal debates over whether you should start with unnecessary bafflement over bare-metal bullshit, OOP bullshit, functional bullshit, or what. But it's a commonly-used language and a pretty reasonable one.
 
As for whether it's a good first language, I think we could have eternal debates over whether you should start with unnecessary bafflement over bare-metal bullshit, OOP bullshit, functional bullshit, or what. But it's a commonly-used language and a pretty reasonable one.
Yeah when I read through this thread it was obvious that question was unnecessary.

The other question that I have is, how is the support for linux with C#.
With C# being developt by Microsoft my mind can't comprehend if their is a good support for a different OS.
 
Yeah when I read through this thread it was obvious that question was unnecessary.

The other question that I have is, how is the support for linux with C#.
With C# being developt by Microsoft my mind can't comprehend if their is a good support for a different OS.
Pretty much natively supported at this point.
.Net got open sourced around 2016 iirc.
 
The other question that I have is, how is the support for linux with C#.
Linux is a first-class .NET citizen (at least on paper), with packages for all the major distros, but I haven't tried it.
Obviously the Windows-specific stuff like WinForms isn't going to be available, if that matters to you.
 
Yeah when I read through this thread it was obvious that question was unnecessary.

The other question that I have is, how is the support for linux with C#.
With C# being developt by Microsoft my mind can't comprehend if their is a good support for a different OS.
You should take into account the main C# IDE is Visual Studio which is only supported on Windows, you could also try VSCode but the experience is definitely inferior or try JetBrains Rider which i've heard is even better than Visual Studio and has Linux support, and although it is paid you can download the current beta and have full free access to it.
 
You should take into account the main C# IDE is Visual Studio which is only supported on Windows, you could also try VSCode but the experience is definitely inferior or try JetBrains Rider which i've heard is even better than Visual Studio and has Linux support, and although it is paid you can download the current beta and have full free access to it.
Someone more experienced in .NET can correct me if I'm wrong, but I think the main draw of using the full Visual Studio is the Windows Forms UI builder stuff. For unix platforms, MonoDevelop is probably your best bet for those sorts of features; I have a lot of fond memories of Xamarin :)
 
Yeah when I read through this thread it was obvious that question was unnecessary.

The other question that I have is, how is the support for linux with C#.
With C# being developt by Microsoft my mind can't comprehend if their is a good support for a different OS.
One thing is that on Linux you are still glued to Microsoft if you want to break away from vscode. The proper c# debugger is tied to Microsoft. There's a Samsung debugger iirc or you can make a Frankenstein configuration by manually taking vscode components, but either way is a mess so you're pretty much locked into vscode.
 
As for whether it's a good first language, I think we could have eternal debates over whether you should start with unnecessary bafflement over bare-metal bullshit, OOP bullshit, functional bullshit, or what. But it's a commonly-used language and a pretty reasonable one.
I agree it's not a bad language to start out with, but I question if starting out with a language so entangled in an ecosystem like .NET could lead to some headaches. There are a lot of reasons to shit on Python as a first language, but to give credit where it's due, any retard and their dog can install Python on just about any machine and run a script. Perhaps starting with a more generalized (for lack of a better term) language may be beneficial in the long run for someone starting out.
 
Someone more experienced in .NET can correct me if I'm wrong, but I think the main draw of using the full Visual Studio is the Windows Forms UI builder stuff. For unix platforms, MonoDevelop is probably your best bet for those sorts of features; I have a lot of fond memories of Xamarin :)
There's some avalonia/uno plugins and maybe an ide? But the Linux support for xaml ui is abysmal and you basically have to restart your application to view changes. Even if you have a c# ui framework with Linux support and xaml tooling the tooling will probably only work on windows. Rider might have some better support, but I haven't looked into it. Regular .net ui dev still is pretty much a windows only thing.

Visual studio also has decent-ish performance profiling and decent-ish c++ tooling. It also has some fucking horrific legacy shit like tfvc and iis stuff.
 
Someone more experienced in .NET can correct me if I'm wrong, but I think the main draw of using the full Visual Studio is the Windows Forms UI builder stuff. For unix platforms, MonoDevelop is probably your best bet for those sorts of features; I have a lot of fond memories of Xamarin :)
I liked Xamarin too on OS X back in the day. I think people mostly use VS because of the debugging tools and ecosystem of third party tools, as well as all the different engines that still only seem to ship with VS templates.

Its fine its just a bit heavy for most people.
 
  • Feels
Reactions: y a t s
I heard there was some controversy about the godot team being too woke.

But I decided to use it anyways because I wanted to learn C# and I figured why not make a game to learn.

And the real issue with the godot team is that they released their shit to download off of steam and I did that cause its convenient, but they didnt include fucking C# support so now I have to go install godot off their website when they are more than capable of providing the C# support on their steam version. Its beyond fucking retarded.
 
  • Like
Reactions: SpergRush
I have been known to be a .NET enjoyer. It is a good experience in this day and age. Most of my time with it has been in text editors and with the dotnet tool on the command line, in Arch Linux. It would have to be my number one recommendation for new programmers as I believe early exposure to static typing helps avoid a lot of misconceptions about computing, but it has all of the nice amenities one expects from a modern environment. The C# Player's Guide is a good start.

I heard there was some controversy about the godot team being too woke.

But I decided to use it anyways because I wanted to learn C# and I figured why not make a game to learn.

And the real issue with the godot team is that they released their shit to download off of steam and I did that cause its convenient, but they didnt include fucking C# support so now I have to go install godot off their website when they are more than capable of providing the C# support on their steam version. Its beyond fucking retarded.
Godot is good and the faggots who run the Godot Foundation won't stop you from enjoying it. As someone who's used Godot quite a bit, though, I have to warn you about the C# experience in Godot. They'll tell you it's "first-class" but it's not. Godot is an engine written in C++ with its proprietary scripting language (GDScript) prioritized above all else. Once I started trying to use C# in Godot, I quickly learned that for many common tasks it will actually cost you performance (if you're not careful) and cause headaches. Also, there is no web game support and you have to jump through a hoop or two for mobile support.

If you're committed to it, I recommend reading all of this documentation back and forth and generally trying to avoid using C# with collections offered by the Godot API. Anything you can do with C# native collections should net you minor performance gains without too much headache. GDScript is good and there's nothing wrong with mixing and matching in your project.

I'm no expert in C# or Godot but I've spent a solid number of hours in both. Feel free to PM me if you want any help.
 
I have to warn you about the C# experience in Godot.
>Install the right version of godot to use c#
>Do some reading and watching tutorial videos to set things up
>Saaar you need to install .net sdk
>Install it and do some more reading
>Add control module
>Attach gapingrectum.cs
>It already has the boiler plate written which is nice
>write GD.Print("Hello saar")
>Click run
>Godot.NET.Sdk/4.3.0 not found
>Look at the root folder for my project
>The .csproj file is there and it says, Godot.NET.Sdk/4.3.0 in the first line of fucking code
>Look it up online and find more stuff
>Edit a bunch of settings in godot
>Set things up so I can edit the scripts with vscode
>Do exactly what a tutorial video and docs say step by step
>Click run again
>"Saaar I am muchly sorry but Godot.NET.Sdk/4.3.0 not found"
>Find out I Have to install Visual Studio community for other shit
>Start installing it, it gets stuck on win11 sdk for an hour
>Look it up online
>"Dear kind Saaar all yew have to do is just reboot computer very thank you muchly"
>alt ctrl del, restart computer
>SAAAAR SOMETHING IS PREVENTING COMPEWTAR RESTAAART"
>click restart anyways

>STUCK ON THE RESTARTING SCREEN FOR HALF AN HOUR

FUCK YOU

>TURN OFF COMPUTER
>TURN IT BACK ON
>LOG IN

>THE INSTALLER IS STILL OPEN
>END TASK
>TASK WONT END
>CLICK PAUSE ON THE INSTALLATION
>IT ACTUALLY WORKS THIS TIME
>CANCEL THE INSTALLATION
>TAKES ANOTHER GOD DAMN 30 FUCKING MINUTES FOR IT TO DELETE THE FILES IT INSTALLED HALF WAY

>MFW I SPENT ALL FUCKING DAY FUCKING AROUND WITH THIS STUPID BULLSHIT AND I COULDNT GET MY GOD DAMN MOTHER FUCKING HELLO SAAR SCRIPT TO WORK
>MFW I HAVE TO TRY AGAIN TOMORROW

hqdefault.jpg

WISH YOU FUCKING WARNED ME EARLIER
 
hqdefault.jpg

WISH YOU FUCKING WARNED ME EARLIER
I feel for you, but if it makes you feel any better, this post made me laugh my ass off. Maybe you should try out the GDScript experience first. I promise it's "plug and play" and GDScript is a nice language if you like TypeScript. Godot is not a bad engine, it's just a fucking meme engine across the board.
 
I have opinions about languages to share that nobody asked for.

I think new programmers should learn Rust and then graduate to other languages (both systems languages and high level/web dev languages). The reason for all of that is the Rust tool chain.

If you are trying to learn, you will write bad code, and you will usually have to learn the hard way by reading arcane documentation, using memory analysis programs, writing tests, etc. Cargo check eliminates most of that simply via preventing you from compiling unsafe code and telling you in very easy to understand language what has caused the error. I learned on C++, and it was honestly hell. The compiler and runtime errors provide you with very little information about where problems are coming from. Learning good practice is a brute force process, unless you have a good mentor looking over your shoulder. The Rust tool chain let's you learn faster, and write decent (but not optimal) code by default. Strong typing and result handling will teach you what is actually happening in memory and to consider the possible faults which should be anticipated. There are libraries for everything, and they're mostly well-made and well-documented. I think anyone who's not a slow-in-the-mind can walk themselves through rustlings and come out of it with a competent foundational understanding in computing.

But, as I mentioned earlier, the Rust toolchain is also why most people should move on to other languages. The fact that cargo does not support dynamically linked Rust libraries, that it statically links everything and doesn't even de-duplicate dependencies (as others continually point out), means it will always produce bloated binaries and inflate compile times. That makes it suboptimal for very low-level projects where small binary size is a success metric, and it also makes it suboptimal for high-level projects where many large libraries are required and writing code/iterating quickly is a success metric. You can mitigate the problems for low-level projects by only linking things you absolutely need (and maybe someday the trannies will come up with a real Rust ABI, dynamic linking, and a compiler that de-duplicates static dependencies), but there's really no way to make Rust optimal for large, high-level projects. Rust is only really the right tool for writing tools that need optimized execution speed above all else.

If you are a beginner reading this thread, I recommend you learn Rust and then carefully consider what you want to do, and what the right stack to do it with is, THEN go learn your stack and become an expert in it. People telling you you have to start with C are setting you up for a bad time, and people telling you to start with python or Javascript are setting you up to be a bad developer. C, python, and javascript are of course great tools, I just wouldn't start there if I had to do it all again from scratch.
 
I have opinions about languages to share that nobody asked for.
Me too and mine are better. You should use something that is easy and easy to understand first, to get used to building things, before you ever even think about crippling your productivity to guarantee correctness. It is immensely harder to build things when you have no idea at all how they're structured if you can't iterate, and Rust absolutely demolishes iteration times in the worst ways possible.
 
Back