I am planning to start learning C. But there's seems to be quite a few derivatives (C++, C#...

I am planning to start learning C. But there's seems to be quite a few derivatives (C++, C#, C*) Which one should I start learning? What's the similarities and differences in their syntax?

Other urls found in this thread:

vndb.org/v8038
hitomi.la/galleries/678923.html
chan.sankakucomplex.com/post/show/3874954
en.wikipedia.org/wiki/C*
twitter.com/AnonBabble

start with C .. then look at C++ and C# and you will notice they are very similiar in syntax.

Biggest differences are the available libraries.

pretty much this

starting with C is about the best thing you can do

C is insecure, deprecated peace of mess. Check out Rust.

Thank your for your """contribution""".

>>>/sqt/ is good for stuff like this.

Polite sage.

post full pic

And on topic, learn C quickly. For the higher abstractions stuff look C++, it runs on more platforms than C#.

Is it an organized effort by Rust fags to badmouth C on this board lately?

yes they spread out from reddit ... its a gospel now

Post full pic or sauce or more pics from that folder while we help ya

C++ and C# are literally Java so just learn Java after C

>c++ is the same as java
not really user, but then again im basing this on what i remember and it's been quite a while since i used java

for newfags
>C
for gay winfags
>C#
for fags that want to compile stuff
>C++
for fags that want to pseudo compile stuff
>Java

Tfw nobody mentions go

well of course syntax is a bit different

Only if you're an idiot.

Do you know how to program? Start with Python if not.

I actually think starting out with C can help enforce basic programming principles. Because Python is dynamically typed and has fancy iterations, I think it holds peoples' hands too much.

We used to have our 101 class in C then it was switched to Python for some reason, and tons more people have had issues with it. Python will obscure away data types, you'll never know how to write a while loop well for a while, and so on. C can actually be a pretty good primer on programming, I think.

C isn't very useful to new programmers, I don't know why/g/ always recommends it. What are you planning to write daemons or device drivers or something?

Sameposting because I forgot to mention something.

I've been thinking more and more recently that a scheme based language would make for a good language to start with. I've been having oodles of fun with Typed/Racket and that could be used as a good starting point to teach programming.

Any programming course worth taking would hammer in those principals regardless of what language you're using. The issue with C is that with elementary knowledge of programming you really can't use it for anything. With Python you can start making very useful scripts right away

C is useful to learn and once you do it gives you a ton of control over what's going on.

Which I'd argue is not useful at all for new programmers.

If you're not writing low-level programs, is there a reason to be using C? I want to use and learn it, but I mostly write scripts for myself and I want a real-world application.

Depends on what you want to do.
If you want to shit out useful programs before dying of old age, C++ is the way to go.
IF you want to go low level driver/backend stuff, C gets the job done there.

Personally I'd recommend learning a scripting language like python, since it is easy enough that you can shit out useful scripts extremely quickly.

>C
Very close to what the computer is actually doing. I think every programmer should do at least some small projects with C to deepen their understanding of how code and hardware work together. Also pretty much everything has been built on C, so in the long run some knowledge will help you when you run into problems when working as a programmer.

>C++
A superset of C. Made for writing highly performant code, provides a lot of data structures and algorithms that are pretty much as fast as they can get. There's so much magic going on during compilation that it'll take years to understand it all. A huge amount of desktop software has been written in C++, and it's also the base for pretty much all modern game engines.

>C#
Microsoft's answer to Java. A rather high level language that's also performant, but due to garbage collection and other factors, it can't really compete with C and C++ when it comes to raw speed and control over the underlying machine. Very pleasant to write, and modern Windows apps are often written in C#. Nowadays open source but hardly used outside the Microsoft ecosystem.

In my opinion, you should try all of them, in no particular order. You could try writing a simple mouse driver with C, do some hackerrank or codeforces assignments with C++, and write an editor with C#. Each of the three have their place in the world, and people who come spouting nonsense like "X is better than Y" are just some weirdos who probably don't work as professional programmers.

>Very close to what the computer is actually doing.
People keep spouting this myth lol

quick, a language that has lower level features than C has

he's a dumb frog poster, would you ever expect quality posts from him?

x86 assembly

GTFO

Rust Internet Defense Force is active lately

VHDL

winner winner chicken dinner

It isn't a programming language as such though, it's a hardware description language and isn't compiled.

Depends on how you define programming, and also how you define compile. VHDL could perfectly well be used to make software, it's just not what it was made for. Also it arguably is compiled, both when simulated and when synthesized. At least compiling is what the programs that compile it calls it.

It depend of what you want to do ?
Video games or other desktop application (with qt essentially but others are quite good too )? C++ ( the best )
Just start to learn the basic of programming and low level ? C ( the harder )
Doing some desktop application without knowing everything you do ? C# (the easiest)

good post user

point proven anyway, C is as low as you can get without touching some kind of assembly-type of language, and thus being
>Very close to what the computer is actually doing
in comparison with every other language out there

well deserved trips

you had enough replies post sauce you op

C# is basically Java. C++ is its own beast, complex as hell. C is simple but outdated.

They really serve different purposes.

Sauce is Bishoujo Magekyou - Norowareshi Densetsu no Shoujo, a visual novel.
vndb.org/v8038

Should be somewhere in here too:
hitomi.la/galleries/678923.html

I wouldn't put C# in the same category as C.

Also:
chan.sankakucomplex.com/post/show/3874954

>without touching some kind of assembly-type of language
Which basically means you're high up in the air and not low at all.

C is just a basic procedural language.
C++ has a ton of additional crap piled on top. It's powerful as hell but it's also a complete fucking mess.
C# is Java except less shit and less portable.

C = latin
C#, C++ = roman languages
Java = creole language

learn C++, but keep in mind C++ is full of features, and C++11 and C++14 added a lot more, you don't need to learn them all. I still think it's better to learn than C because it fixed some archaisms od C

C++ is the only one that's really related to C. I'd suggest starting with C (so you can learn the basics) and then learn C++. My university started us with C++ (the curriculum is heavy on software engineering/OOP), and it was really too much at once, we were learning about inheritance and virtual functions before we really had a solid grasp of how pointers work. If you really want to learn C++ properly, you should probably make sure you fully understand the C-like subset of C++ first, at which point you might as well just study C itself.

C# is much more like Java than C actually, and unlike C++ isn't a superset of C. And C* isn't really used, it was for specialized massively parallel stuff in the 90s, but nobody uses it anymore, maybe you were thinking of Objective-C (which is basically C with some weird Apple extensions).

The Rust compiler produces horrendously bloated machine code.

That's not the main difference though. Far more significant is that it doesn't have garbage collection or many of Java's safety features.

Non-portable, and not intended to be written by humans.

You're the MVP, thanks man

agreed. I'm a newbie and i picked up python and pygame a couple of months ago. I just started making a few games and some other gui programs which i think is very fun. Learning C just because it's good to learn seems like such a bore to me. It makes more sense to me to learn languages to accommodate your needs, and goals. Not the other way around.

C*... wait what?
en.wikipedia.org/wiki/C*
Evolutionary dead end. Hunh.

Ok. C family. Your options are the following:
C
C++
Obj/C - apple meme language
Java / C# (essentially the same language with minor differences)
Python - hipster meme language, not C family but most implementations are C on the inside and you should know it for its various CS and science applications.

Out of that list the most complicated with the least payoff is C++.
Best bet looks like learn Java/C# and also learn C. C shows you how pointers work and how the computer work on the inside.

Basically comes down to what your interests are. If you want to program for a living a lot depends on which ones are popular in the industry (BUT, warning, a lot of those languages aren't actually fun or productive to program in, that's largely driven by non-programmers in management falling for memes). If you're doing it for fun, a lot depends on what you want to do. If you want an easy way to tell the computer what to do, without having to worry about low-level stuff, Python's a good choice for that. C is good if you want to really learn how computers work at barely-above-the-hardware level, or intend to do stuff with device drivers or operating systems. It's a passable general purpose language, but not the best one for that.

To reiterate:
Learn C for pointers and low level understanding
Learn Java or C# for how a real language should work
Learn Python for Python

C# is not a C derivative its a Java clone made by Microsoft

I went C# -> C++ -> C but if I had to do it over I'd do C -> C++

/thread

Learn C, then maybe C++, but C# is just Microsoft's proprietary Java. Learning it just because it has "C" in the name is stupid.