Should I learn C# even if I'm not using Windows?

Should I learn C# even if I'm not using Windows?

There is almost only Java and .Net jobs in muh country so I'm about to start to learn Java but I'm curious about C#.

Is viable or usable C# without Windows?

>Is viable or usable C# without Windows?
not yet.
java ecosystem is superior anyway

do NOT trust the pajeets that tell you to Java.
C# is the way to go, user

What makes C# better than Java?

Access to the .NET library, imho the best standard library out there.

But if I'm on Ubuntu is .net core (aka command line only) my only option?

yes. and .net core is an unfinished mess. also don NOT trust the pajeets that tell you to C#. java's ecosystem is far bigger, more mature and has a lot of big players behind it (whereas for .NET it's just Microsoft)
also Kotlin is a better language than C# and it's already getting official support on the big Java platforms (Android, Spring)

why not mono?

deprecated meme

syntactically they're so extremely similar, learning one gives you the ability to use both. The only change comes with the packages/libraries available, which you can navigate through really easy once you know what you're looking for. Shit, using autocomplete gets you 50% there when you're starting, so just jump into either one and you'll be set.

>develop in C#
>shit works in new operating systems because Microsoft made the framework and the OS and they put all the .net runtimes in it
>write shit in Java
>client updates to a new minor revision and program breaks
>have to refer client to local IT support to have them downgrade to the vulnerable version
Just Java dev things mirite

nice made-up story. I love microsoft now

...

If you're going in that direction Java is better, more jobs probably.
But both are boring as hell

If you know Java, learning C# takes a week at most. Also, visual studio's great autocomplete makes it so that you can start writing C# without even knowing the libraries.

I agree with these guys, though. Better to start with java if you want to help yourself land a soul-draining code monkey job in a cubicle.

Sounds like you've never had to deal with Kronos timekeeping software, or any other Enterprise(tm) Java(r) software for that matter.

>have a job in computer security
>still have to install internet explorer in a VM to fill out my organization's timecards due to Kronos' shitty java applet

true story

>shitty legacy software is shitty
who would have thought. I deal with Enterprise(tm) Java(r) Spring(tm) by Pivotal(r) software on a daily basis and it's very solid (unless the other guys are incompetent which doesn't happen that often because I live an ocean away from the united states of pajeetland)

i have literally never had an update to the jre break a program. had issues with major updates but that is to be expected desu.

came here to post this.

My last job was mainly c#; i never programmed a line of c# prior to that job. It wasn't a problem.

>is C# usable without windows
no, every library for C# is made with windows usage/development in mind. only toy programs, or shit with lots of workarounds, will be portable.

I'm starting to write cross platform in C#. It is a pain in the ass, but it's doable. Java will get you more jobs, but honestly it's older and not as nice as C#. Personally, most of my working career was writing backend processes in T/SQL on SQL Server in healthcare. SQL is near universal: 10 minutes to learn, a lifetime to master.

.net core is making excellent progress, but use Mono in the mean time. When .net core is "complete" you should be able to port your mono code with relative ease.

Mono is super close to .net (missing some c# 7 and a couple c# 6 features). I even got Asp.net running through Apache on CentOS. Gtk# is kind of annoying for UI (this could just be me), and VSCode/Monodevelop aren't as good as Visual Studio yet.