Say something nice about it

Say something nice about it

Other urls found in this thread:

infoq.com/news/2017/08/CSharp-8
github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md
freecodecamp.org/
ccs.neu.edu/home/matthias/HtDP2e/index.html.
twitter.com/NSFWRedditGif

Better than java.

it distracts Pajeets from better languages, thereby keeping my salary high

its not ruby

cool name

Reflection built in.
Expansive and useful library.
Huge community.

Its better than any other language.

#region

if i have to use any kind of bytecode VM, this is it. Mono on Linux pretty much sealed the deal for me. bye java.

also [Open]HotSpot P.E. JIT mode never became fast enough for desktop app use anyway

how does its performance compare with .NET Core 2.0?

good question. though i haven't got around to trying it out yet, as I tend to write desktop apps (now for both platforms)

It's a sane, well thought out language that started out as a megacorp Java clone but turned into an open source language that continually gets more refined that other languages borrow features from (async/await).

It pays my bills

The standard is about as complex as the US tax code.

So I guess if you master that byzantine labrynthine you're a smart person.

What languages do you use at work?

It's faster than javascript

Unity

This.

Non-meme non-sjw actively developed cutting edge multi-paradigm professional fun comfy adjective adjective noun.

I was going to pick this as my first language, now you guys got me scared...

its not java

I cannot wait for C# 8.0. New top level construct extension.

Allows you to extend classes without having to go through and define methods for the sub class.

infoq.com/news/2017/08/CSharp-8

Never take any advise from Sup Forums. That includes the advise I'm giving you now.

Basically make you own decisions.

once coreRT becomes usable it'll literally blow the fuck out of every other language
atm it's a good chill language, not as shit as java but lacks performance of C++

wtf is coreRT?

github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md

It's not ruby or LUA

it's more popular than java inside microsoft. that's kinda nice I guess?

indeed it's better than both

Atleast it has no word "basic" in the name

From what I see it's a wonderful language to start coding.

>Fantastic knowledge base
>similar to Java so it's not very difficult to switch later.
>can be used for a massive number of applications = jobs available
>making GUI apps is easy
>You can write apps for all three mobile systems easily (from what I know. I've never tried it.)

As a beginner who decided to start a new career as a programmer I see no downsides, really

It's the most beautiful programming language I've ever worked with. It's basically just a massively improved version of Java.

Based language. People who say Java is better are mentally ill

Sup Forums moans about everything
Theres another thread right next to this one complaining about C++
I'd say go for it

I would rather use it for a real project than Java and C++.

It's almost as good as Java.

I'm considering buying those Bob Tabor instructional videos. Does anyone have experience with it or heard if its any good? Everyone points towards his channel 9 shit as being really good.

Side note: Why is everything ruined by pajeets?

Came here to post this. Curries are so prolific in C# it makes Java look like a klan rally.

you just don't understand what they mean by that because you're a fizzbuzz programmer

Thank you for paying for my rent.

Nice argument

Give me one reason why Java is a better language. C# has things like properties, delegates, a less verbose syntax, LINQ and other things that make it way better.

Are you interested in a job and build things? Go for it. Do you want to impress some autists on Sup Forums? Don't learn it

>Give me one reason why Java is a better language.
I never said Java was a better language.
The differences between Java 8 and C# are negligible when it comes to building real software. What's important is which ecosystem is better, and the Java platform shits on .NET. Even when it comes to having the best language (Kotlin is better than C#)

>properties
are shit and harm readability
>delegates, LINQ
are better in Java 8 as functional interfaces and streams

>>properties
>are shit and harm readability
Have fun writing ugly boilerplate code

...

I would but sadly my ide or lombok code generator write all my boilerplate, not me

epic meme! it's stuff like this that makes me love reddit. would upvote twice if I could kind sire

>what looks like an innocuous field access is liable to throw exceptions and perform heavy computation
no thanks, I'll stick with identifiable clear primitives.

>my language is so shit that my IDE has to write all the unnecessary boilerplate code for me so I don't go insane

> says properties harm readability
> proceeds to use a language that requires lots of generated boilerplate code

It's incredibly easy to write random shit in it

>properties harm readability
public int Age { get; set; }

Age = 20;
vs
private int age;

public void setAge(int newAge) {
age = newAge;
}

public int getAge() {
return age;
}

setAge(20);


You sure about that?

Easy to reverse engineer.

that just makes it a bit inconvenient, not shit. also who the fuck cares besides armchair programmers

int age = boi.age;
In Java, there are no surprises about what this will do.
In C#, this could
>mutate boi
>throw an exception
>Actually compute the result rather than retrieve it, potentially making repeated "field" accesses inefficient for no clear reason
C# made the same mistake C++ did, it became so abstract that it's difficult to rely on any behavior that doesn't require you to look elsewhere to know what the hell it actually does.
You'd probably defend overloading operator == as well.

Compiling to native code AOT (using mono-full-aot or .NET Native) fixes that.

>>mutate boi
I can't defend this one as I genuinely am not sure if that is something it would do, would have to check. I am skeptical though.

>>throw an exception
This is exactly what it would do, I bet. There is no variable in the C# code with that name. The Java code should do the same, since while the variable is there, it is declared private.

>>Actually compute the result rather than retrieve it, potentially making repeated "field" accesses inefficient for no clear reason
This one I also cannot defend because I do not know of it, and am once again skeptical.

Would you mind giving references for the first and second claims you make? Am genuinely curious if C# does these things, or if they have since been fixed.

>Am genuinely curious if C# does these things, or if they have since been fixed.
these are """features""", not bugs. what he means is that there could be magically hidden logic behind the getter due to properties and that logic can do all sorts of unexpected shit like an expensive database call or a mutation.
when you're calling a java getter you can clearly see that you're calling a method. it's more straightforward and less magical. from my experience, the magic appears mostly to beginners who're not aware of the hidden costs until they have to figure out a large codebase fast

*the magic appeals mostly to beginners

The magic appeals to those who want to write "nice" code and have never had to read somebody else's code.

This. It's a brilliant distraction tool for pajeets. I'm considering starting an NGO to lobby the Indian government to ban all programming languages taught in schools and universities apart from C#, thereby making sure I never have to deal with this shit.

Does this only apply when using an auto-implemented property then?
You can still create a private member in the class and make the property code look like below. This removes at least some of the ambiguity such as a possible invisible member an auto-implemented property generates.

private int age;

public int Age
{
get { return age; }
set { age = value; }
}


As far as I'm aware, properties are meant to be syntactic sugar. I do recall seeing one person argue they are not in a thread over a year or more ago. I believe he said implementing a property like above did not generate the exact same code as writing getter/setter methods. I would have to look into it more, though.

Properties are based. Accessors and mutators are nothing in comparison.

Unironically the best language to start with because while it is easier than C++, it teaches you valuable lessons about coding. People who learn Python first are fucked.

You're right, they are syntactic sugar. They are method calls, but they look like field accesses.
Losing that clarity is not worth it.

>s far as I'm aware, properties are meant to be syntactic sugar.
Obviously

What lessons are those?

not to do things like
int variable = reader.nextInt();

Sorry if this gets asked a lot, I've never really seen a c# post on Sup Forums before (or at least I haven't been looking for them)

What kind of stuff should I be able to do in order to get a first job with C# ? I assume web dev is the go to industry for an entry level job or perhaps the most abundant?

What should my skillset look like or what would a good learning path look like? What are some decent portfolio projects to show that I'm employable?

Sorry for asking such a noob question, it's actually a harder thing to Google than you'd think.

Naming conventions solve this. Properties are pascal cased like methods, while fields are camel case. Intellisense also lets you know. I've never ever confused a property for a field, and I've maintained some really shit code.

Properties in C# are just one of those areas where language design had to make a trade-off between flexibility and protecting the developer from themself. The drawback to making all your fields really be methods is you can do really stupid shit like make db calls or mutate other variables. The defense against this is a clear standard for writing clean code, which is something every team needs regardless of language. My view (which I will vocally advocate for) is you never cause non- transparent side effects (caching an expensive one-time generated value is okay), you never call external resources (if you open a network connection I will revert your commit and put your code on the wall as an example of what not to do), and you never throw exceptions (unless thrown by the underlying type, duh) from getters or setters.

->ASP.NET (MVC, Web API, Core)
>Git
>REST API
>Entity Framework/NHibernate
>JavaScript, TypeScript
>some JavaScript Framework like Angular/React/Vue.js/Aurelia
>CSS, SASS, LESS
>MS SQL
>LinQ
>Gulp, Grunt
>Visual Studio
Pretty much shit you see on every job posting, you can learn most of these on the go though.
Try freecodecamp.org/

I dislike the PascalCase convention for methods but at least this makes a case for it somewhat.

Thanks sir. So the C# stuff is pretty self contained?

Do you think web dev is the way to go for finding a job? I get fearful of thinking it might be a bubble.

that's a lie onii-chan

C# may be a meme language, but it pays my bills very nicely and it's pretty comfy to work with

Memes don't pay bills sir. They give unfunny people the scaffolding to make people laugh.

Aren't they basically the same though?

C# started out as MSJava, but eventually acquired its own features and libraries. It took MS a generation or two to stop shitting the bed with basic UI apis. Java itself is kind of ailing with Oracle shitting the bed on anything that doesn't make them immediate, massive PROFITSSSSSSSSSSSS.

Just pick a language and learn it. Everyone gets caught up in "the best language to learn". C#, Java, and C++ are 100% fine, and if you can understand the basic concepts of programming you can understand most any language.

Shapes, aka type classes, will be coming to the language and they will make it great again.

should search .NET instead of just C#

Thanks guys I'm going to learn it!

Thanks to you too, you magnificent bastard.

Doesn't induce suicidal thoughts like most languages.

The dude who made it is a very smart cookie. Borland Pascal is his better work, though.

If you're learning to program, use ccs.neu.edu/home/matthias/HtDP2e/index.html.

/thread

BTFO

yields much less results which you would've known if you spent literally 15 seconds researching your claim before posting it as truth

botnet outside windows

something nice about it