Mono appears to be dead. I enjoy making life hard so I dont use windows. I am trying to learn very simple c# but am having trouble gettung visual studio to run anything on linux (debian/mint). It wont even run with dotnet in the terminal either. I dont really like all the features in vs either, i just want simple.
For reference im learning with the yellow book by rob miles. I want to learn the old way, not using a bunch of shiny helping tools (i never feel i really learn with those and it stunts my growth).
.NET/C# is fully platform agnostic and Linux is a great host system for development in C#. In fact a lot of software developed in C# (basically all of the cloud software) is hosted on Linux systems. As others pointed out Rider and VS Code are a very good choice on Linux.
Jetbrains Rider free for personal use. You must use .net (core) on Linux, it works like a charm. Visual studio code is fine too but you need tons of plugins to have an IDE experience in .Net. You might have a problem with your .net installation id you can’t compile a simple program. How did you install .net? From microsoft’s ppa?
Yes, from the ms walk through which was actually decently written. I just think vs is too confusing for me right now, I only want to learn simple code first before building a project
VS Code runs flawlessly on Linux, as does
dotnet
the compiler/runtime.
C# is a fine language, and you can easily upgrade to F#, if adventurous.
I use nvim with omnisharp-roslyn myself, which doesn’t work as reliably, but I’m used to Vim, so meh.VSCode probably? I use Mint myself, but I don’t do C#. I know IntelliJ, VSCode, and Eclipse all work fine, I just don’t know what’s best for C#. I’m surprised Visual Studio doesn’t work.
If you want simple: Visual Studio Code. If you want fancy: Rider. That being said, Rider, I find, tends to work better out of the box.
I really would not recommend specializing in C# at this point in computing history. You can do what you want obviously, but Python is much more likely to be what you want. C++ or Java might be okay if you want a job and are okay with a little bit dated / not ideal languages, or you could learn one of the proliferation of niche backend Linuxy languages, but C# has most of the drawbacks of C++ and Java without having even their relative level of popularity.
IDK what issue you’re having with VSCode, but I think installing the .NET SDK and then using
dotnet
by hand from the command line, to test the install, might be a good precursor to getting it working in VSCode. But IDK why you would endeavor to do this in the first place.What are you talking about? C# is massively popular, especially with corporations and government. If someone wants to get a job writing software, they won’t go wrong learning C#.
Python is great for data evaluations and scripting. There’s nothing wrong with learning it, or any other language for that matter… including Java, C, or C++
C# represents about 12% of the jobs out there.
https://www.devjobsscanner.com/blog/top-8-most-demanded-programming-languages/
It’s not unpopular, but it’s definitely not “massively” popular anymore. Different languages have different strengths and weaknesses, but C# has a few more weaknesses than most. In my opinion. Yes, there’s nothing wrong with learning any particular language you want to learn (and I’m a little surprised to see C++ has fallen significantly lower than C#, sure, fair enough). I’m just struggling to see an upside for learning it in the modern day (and now knowing more about what this person’s goal is I feel even more strongly that C# is the wrong answer for them. In my opinion.)
I was going to try python, but I’d eventually like to learn unity as well so i decided on c#. Plus I felt python was too new and would skip a lot of core programming skills id just like to know. Im not super interested in doing it the new way with all the helpers, or I wont feel like I learned anything. I wanted to learn 20 years ago but never got into it, so I just feel like starting at the very bottom. Makes no sense I know.
I do have the .net sdk and it seems to try to compile a simple program, it just throws errors even on an example program that shouldn’t have any. Im sure its something dumb.
Plus I felt python was too new and would skip a lot of core programming skills id just like to know. Im not super interested in doing it the new way with all the helpers, or I wont feel like I learned anything.
Okay, you definitely want to learn C then. C# and C++ both add a ton of helpers. C# has a massive runtime environment that’s opaque and a little bit weird, and C++ has a massive compile-time environment that’s opaque and very weird. It’s sort of pick your poison. If you learn C and get skilled with it, you’ll be well set up for understanding what is actually going on and having strong fundamentals that will set you up well for whatever higher-level language you want to learn in the future.
Put another way: C# will hide just as many of the fundamentals and hardcore details from you as python will, it’ll just do it in a weird and counterintuitive fashion that will make it more confusing and with more weird C#-specific details.
I’d eventually like to learn unity as well so i decided on c#
I would actually just cut out the middleman and start with the Unity editor then. It actually might be a really good introduction to the nature of programming in general without throwing a bunch of extra nonsense at you, and in a really motivating format.
I do have the .net sdk and it seems to try to compile a simple program, it just throws errors even on an example program that shouldn’t have any. Im sure its something dumb.
What’s the program and what’s the error? I’m happy to help if something jumps out at me. I’m voicing my opinion otherwise on what might be better ways to attack this all in general, but I’m sure me or people here can help sort out the issues if you really want to take this approach and you’re just getting stuck on something simple.
Plus I felt python was too new and would skip a lot of core programming skills id just like to know
Python was first released in the '90s. It’s older than C#.
That said I consider Python to be a garbage language. “Easy” to use for trivial things, a pain in the ass if you have more than 500 lines of code. The lack of strict typing makes even the most trivial of refactoring an all day task.
You can do strict typing in python if you want it, it’s very highly recommended if you’re doing a big project.
Kinda… You mean mypy? I’m using that and the experience is not great… It’s okay for your own code but a ton of libraries are just 🤷 about types. Especially return types which is infuriating. What do you get from that call? Who TF knows - go read stack overflow and hope there’s an example giving you some info.