I'm looking for a language to learn and I came across these 4:

I'm looking for a language to learn and I came across these 4:
C (I already have resources on this), C++, C# & Rust.
Which one should I shoot for? What is the demand for each?

Attached: c-1015531_1920.jpg (1920x1920, 183K)

Other urls found in this thread:

cs.cmu.edu/~15122/schedule.shtml
cs.cmu.edu/~213/schedule.html
matt.sh/howto-c
cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?
twitter.com/SFWRedditImages

C and C++

C: you think programming in ancient, close-to-metal language makes you special
C++: you like tumors
C#: you prefer shitting in the street
Rust: you can list 56 different genders without stopping to think

Why is Rust labeled with SJW's? What is wrong with the mainframe language itself?

If it's your first programming language start with C then learn C++. Pure C is only used for things live device drivers and embedded systems these days. C++ is a monolithic language but it's in reasonable demand. C# is Microsoft Java, it's not in demand as much as Java. You could also go with functional programming and be enlightened but unemployed.

C: If you want to be the fastest, the best and the most powerful.

C++: If you want to be a part of cancer in the programming world.

C#: If you want to suck Microsoft flappy dick.

Rust: If you want to join Mozilla's SJW team.

The first three starting with C
Rust is for cucks

C

C -> C++ -> Rust
\
-> C#

>fastest and most powerful
>void*

choose one.

>Why is Rust labeled with SJW's?
Forced meme by C-niles, Rust's CoC is a pretty mild one comparing to the other projects.

+-> C++ (advanced)
/
C -> C++ (basic) -> Rust
\
+-> C#

The forced meme here is Rust itself. It brings nothing to the table that C doesn't already have.

C doesn't have:
- zero-cost abstractions
- move semantics
- guaranteed memory safety
- threads without data races
- trait-based generics
- pattern matching
- type inference
- minimal runtime
- efficient C bindings

C or C++ is a good starting language. They are both powerful and low level, so you'll have to learn core comp sci concepts at the same time. They are mostly used in embedded systems or applications that need performance like real time stock trading applications or video games.

C# is an Enterprise language, so pick it up second if you want to land a corporate desk job.

> guaranteed memory safety
Who the fuck needs it? At worse, it lets the compiler to step in do memory management for you. That is an insult to the programmer. C assumes that the programmer knows what he is doing.

> move semantics
C doesn't need that shit. I don't know how that would be relevant.

> pattern matching
C is not a scripting language. You can write your own, nonetheless.

> zero cost abstraction
What the fuck is that?

Fuck it. I can't answer shit anymore. Don't use C. Use Rust because your peanut size brain won't be able to handle the power that comes with it.

This is surprisingly accurate.
Also checked.

Do all C developers have Stockholm syndrome or is it just you?

>guaranteed memory safety
Correctly written C is memory safe. Of course, it's up to the programmer to write correct code. You can't depend on a compiler to tell you whether you got it right.

None of these are bad choices. The resources for rust aren't the greatest compared to the other 3 though.

?

>- threads without data races
what
>- minimal runtime
what
>- efficient C bindings
what

>Rust: you can list 56 different genders without stopping to think
Hold on, let's see if I can list that many genders
Male
Female
Fuck

Python \
Rust boo
/ /
C -> C++ -> C# -> F#
\ /
-> Java

Do a little bit of C and then go balls deep into C#. C is simple, so you can concentrate on the fundamentals. C# will give you a decent overview of higher level stuff. C++ is basically just C with classes so you can skip it comipletely. Rust is a tiny language that no-one uses. Don't waste your time with it.

Just pick c++ and start.

I hope you're not one of those guys who spends months deciding on a language instead of just choosing one and jumping in. In the long run it doesn't matter, because real programming is not about learning (or more accurately, getting used to) the particular language. It's about algorithms, data structures, and other conceptual principles.

>C++ is basically just C with classes
What about templates, compile time expressions, lambdas, operating overloading, exception handling, and all of the crap in the standard library?

C and Rust is the only correct answer. Don't listen to the losers crying "b-b-b-but SJWs!!!!". They resort to that because they are incapable of making a decent argument against Rust as a language. C# is Microsoft trash, don't touch it. C++ is a disaster, don't touch it.

>a decent argument against Rust as a language
Here is your argument: Nobody uses it and it's a total waste of time.

False and false.

ITT: Java babies

literally any of those will be fine, just start instead of navelgazing.

t. somebody who jerked off about picking da right tech/framework/language before doing anything for waaaaaay too long

>C with classes
Good parts of C++
>templates, compile time expressions, lambdas, operating overloading, exception handling, and all of the crap in the standard library
Bad parts of C++

Depends what hardware you want to code for.
C is the only option for 8 bit embedded (Arduino/Pic)
C++ is for 32 bit embedded and PC
C# is for PC

A handful of people think Rust can replace C++ for operating system development but that is unlikely due to the C family being so entrenched. You won't be able to get a job if you only learn Rust.

A difficult part of getting a dev job is dealing with future trends in language popularity. Everybody was certain that Java would fall to the wayside before ~2000, yet it's (mostly) more popular than ever.

With that in mind, Rust is championed as being a C-family replacement, but for all its hype, it still isn't too popular. C is well-used in pet projects and open source stuff, but unless you're in a field that requires C-like knowledge (systems programming, for the most part), you're going to find low demand -- or, more accurately, you certainly won't be able to get a job with *just* C knowledge. C++ is used more professionally in both systems programming and general-purpose programming, so it may be what you're looking for if you want something close to a "one-stop language".

C#...should be avoided. The funny/annoying things are that 1) yes, it's heavily linked with Microsoft and most-easily works on MS systems and 2) it is heavily used and shilled by "Pajeets". More than anything, it doesn't have an objectively great set of learning resources. And, arguably, though C# is in demand, its pay is still behind Rust/C/C++.

>mainframe language
???
Rust has non-SJW issues and minimal SJW issues in actual ecosystem. Not a lot of issues, they've kind of designed themselves into a corner in binary size though. Rust will never be smol or light.

don't bother with any of these. go for Java.

And by java he means native-compiled kotlin

C++ and Rust are complicated and also pretty crap.
C is good if you want to program embedded systems or operating systems.
C# is good if you need a job as a code monkey, but Java is better at achieving that goal.

t. fell for the OOP meme

C++ can be as little crap as C though, it just tends to be explosively crap in a lot of its super-applicable-domains. It works everywhere C works though.

Rust is its own fuckin deal. It might someday replace..... large infrastructure projects that aren't minimal and... also require extreme safety? I'm not sure what that would actually apply to though.

Nobody uses Rust

It won't apply to anything. In the future, employers will finally learn that they should only hire the best programmers, and these lone geniuses, working alone, will write the best code, without the help of some stupid "borrow checker." Mark my words, this day is soon.

top path is the correct path

C++ has a lot of use in the industry but it might pay to learn C first if you can be bothered to read a lot about it and understand its use cases. Also pretty much every language that came after C has been influenced by its design.
C# I would recommend you learn after C/C++, but wouldn't completely object to learning it first. It really depends what you're trying write. C/C++ can be used to make anything really (within reason), whereas C# has some *slight* limitations. For example writing device drivers or real time sound processing code could be problematic due to it's garbage collector.
Rust last, simply because it's the rarest of those languages by far and hasn't really faced mainstream adoption yet. Mozilla is pushing it really hard but so far it seems to be little more than a vanity project.

Step 1: Read K&R, realize the style of declarations used in it won't be used today but it still is the definitive resource on how to read a declaration/bracket order operations ect.

Step 2: Read these lecture notes, slides/additional resources cs.cmu.edu/~15122/schedule.shtml

Step 3: Watch these lectures, read the course book (click on 'old lectures') cs.cmu.edu/~213/schedule.html

Step 4: Read this modern C guide matt.sh/howto-c

Final step: Read this and use for reference cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?

That's all you need. K&R will teach you what is undefined behavior. 15-122 will teach you to write safe programs and how to analyze existing programs. 15-213 will teach you what C looks like at the assembly level, stack frames, two's complement representation, floating point ect. That 'How to C in 2016' guide will teach you how modern C is written to avoid classic C problems like throwing around char's and ints. The CERT guide is a good desktop book to have around to make sure the shit you are writing cannot under any circumstances lead to undefined behavior. Whatever project you decide to contribute to after doing all this to obtain base competence in modern C programming, they will have a contributor's style guide which you must read like the kernel.org style guide or OpenBSD man style

>templates are bad
lmao

learn what you know you'll have to learn in the future anyway

I just read through all the replies in this thread and all the language-bashing.
Regardless of how people on Jow Forums perceive a language you can tell how much it's worth by browsing jobs for it. Although certain languages always seem to have recurring criticisms:
- C is not a very modern language. This can be a good or a bad thing depending on your preference.
- C++ is basically C blown out to enormous proportions. It's huge. Again, this can be a good or a bad thing depending on your preference, but if you really like this about C++ then C probably isn't your cup of tea and vice versa
- C# has strong affiliations with Microsoft. This annoys some people.
- Rust isn't really used at all in the industry, but is interesting as an academic project - there's no money there.

>but if you really like this about C++ then C
You could always appreciate they have different goals in mind.