Chad#

Thoughts on this language? Have you seen the light yet?
>muh oop
C# is a multi-paradigm language. Doing things the OOP way is optional.
>muh micro$oft botnet
github.com/dotnet/core
>muh performance and memory manipulation
Span/Memory, ref structs, ref returns, and if all else fails you always have good ol' unsafe.
>muh loonix
.NET Core considers Linux a first-class citizen (both SDK and runtime).
>muh pajeets
Hey buddy, I think you've got the wrong door, the Java club's two blocks down.

Attached: c[1].jpg (1600x900, 132K)

Other urls found in this thread:

docs.microsoft.com/en-us/dotnet/api/?view=netcore-2.2)
docs.microsoft.com/en-us/dotnet/csharp/language-reference/)
twitter.com/NSFWRedditGif

Overcomplicated meme language.

Fuck off back to your shitty Haskell language you tranny

>Overcomplicated
In what fucking world is C# overcomplicated?

Hella based

Lol rent free.
This one. They basically make up shit. Plus .NET is cancer.

"It's complicated because it's complicated" is a non-argument. C# is a retard-proof language, give at least one (that's 1 for you Americans) example of it being overcomplicated.

how it deals with multidimensional arrays triggers my autism
arr[0,2,5]

What do you mean? [,] is a rectangular array (each row has the same number of columns). [][] is a jagged array (each row can have any length). [,]-style arrays are fairly useless and basically just syntactic sugar for [y * width + x].

Delegates

i was looking for the java equivilant of:
int [][] arr = new int[5][6];
int[] subArr = arr[2];

but the closest i got was an error that i didnt have enough args when i put "arr[2]" and i havent messed with arrays since.

Also the C# documentation sucks ass.

You have to initialize it one dimension at a time. The least verbose way of doing it is:
var arr = new[]
{
new[] { 1, 2, 3 },
new[] { 4, 5, 6 },
new[] { 7, 8, 9 }
};


Alternatively, for zero-initialization
var arr = new int[5][];
for (var i = 0; i < arr.Length; i++)
{
arr[i] = new int[6];
}


>Also the C# documentation sucks ass.
Everything in the standard library (docs.microsoft.com/en-us/dotnet/api/?view=netcore-2.2) is documented in full, including examples, and the C# language reference (docs.microsoft.com/en-us/dotnet/csharp/language-reference/) is just as fully featured. I have no idea how anyone could come to the conclusion that the docs suck ass.

I have never used any m$ shit in production, only Linux and open source stacks. How does paying M$ even work? Do you fags have to pay M$ to use their CandyCrushOS?

>creating a system variable in bashrc to turn of the goddamn telemetry

Lmao

>not OOP
delusional

>why use c# when java exists

depends
there's core licensing and cal licensing and machine licensing
also you've got the OS and the DB to consider how you wanna pay

Attached: 1549467561333.png (234x236, 61K)

Who are you quoting?

>Examples are half baked
>formal definition is lacking
Their api docs are generally terrible.

>Doing things the OOP way is optional.
all code has to be in a class
>dotnet core
still doesn't have half the features of a JRE
>muh performance and memory manipulation
literally just FFI to C or C++, it's better than kneecapping
yourself with these terrible misfeatures
>pajeets
c# is exactly as pajeet as java

>oh no, muh method pointers are a hard concept
you're kidding, right?

>Their api docs are generally terrible.
This. Don't forget their machine translation that show up in the search results first.

Delegates are unnecessary complexity, and a redundant duplication of functionality.
You already have interfaces.

Tell us then, how would you use interfaces as an abstraction of function pointers, instead of using delegates? They accomplish two completely different goals.
Besides, Func and Action and their friends are all the only delegates you'll need (unless you need something extremely specific with co/contravariance).

>Reading any documentation in any language but English ever.
Embarrassing, and this is coming from an ESL.

Cacafags think interfaces and function pointers are the same thing. I bet they can't marshal their half-baked delegates as native function pointers to pass them to native libs

Shut up Ted

Literally just use an interface with a single method to implement.
interface Function
{
R apply(T arg);
}

Function f = foo -> foo.bar();
f.apply(new Foo());
Same shit as a delegate minus the feature bloat.

Java interfaces are an abomination. Oracle pushed all what they previously claimed was bad and dangerous like mixins and delegates in the most halfbaked and boilerplate filled way onto them.
Java's way of reusing exisiting syntax is not minimal or simple, it is utter bullshit with extra boilerplate.

Most of the features added in Java (and functional interfaces and lambdas in particular) are just boilerplate-free ways of writing the same thing.
That makes integrating or migrating code easy.

In C# it literally requires nothing. You can create lambdas and use closures(real closures) with no interface or apply/consume/call..etc idiocity.
Also, I doubt business will use any feature past Java 8

>Also, I doubt business will use any feature past Java 8
Does Java not separate new language features from new runtime features?

It's pretty based. If only mono didn't suck dicks compared to windows .net runtime.

Good reply.

Based lang desu

>all code has to be in a class
a static class is simply namespaced globals, a sealed class is simply a struct pointer and a struct is... well, a struct
>still doesn't have half the features of a JRE
name actual features people actually use that aren't available on .NET Core
>literally just FFI to C or C++
yes, let's write some external instructions in an external language with external tooling and an external build process, that's so much better and more convenient than simply doing it inline!
>c# is exactly as pajeet as java
yeah, no. i did work as a java consultant for a few years and every other developer i had to coordinate with was indian. c# has been almost exclusively american or european

Look at this bloated ass language

the fuck is the point microptimizing memory access patterns if all your code is still being run in a shitty vm anyway

Literally just slightly-less-garbage Java. It's shit.

because the performance critical code once JITed will have practically zero overhead?

Literally the least bloated and most consistent modern third-generation language.

C# is okay. Not generally speaking my first choice of language, but I'll choose it over Java any day.

I like C# a whole lot it's fun to write ^_^

C# by itself isn't that bad, everything related to it is the problem.

>a static class is simply namespaced globals
A static class is a static class and a static method is a static method. fuck off

This kills the Javalet

Attached: operator overloading.png (360x21, 1K)

An instance method has an implicit first argument ("this"). A static method is for all intents and purposes a global function namespaced under the type it is defined on.

I like it. Works for pretty much anything.

It's a great language until you have to deal with Microsoft shit and .NET. Also, the people attracted to the Microsoft stack are morons and you don't want to deal with them.

I worked professionally with Java shit and Microfoft .NET shit and I'll take .NET any day over Java.
Also currently it's much easier to find really good paying job for c# than for java.

Enjoy your Java ripoff.

Based and checked

>C#
It's a nice language. I just want Microsoft to stop being dicks about helping their C++/MFC users migrate over.

Attached: 1414270804299.jpg (332x500, 22K)

It's employable, I don't completely hate working with it, and the development community isn't horrible.

Use a white man's language, C++ and Lisp dialects are the only other options.

Attached: 1200px-Haskell-Logo.svg.png (1200x847, 15K)