Im an amateur python programmer and decided to learn C, C++ or C# but i dont know which one is the latest or the best ?
<My opinion was stupid :smith: >
[QUOTE=benjojo;28825155]I would look into c# as long as you want to stick to windows programming, If not. Its probably a better long term to learn C++[/QUOTE]
So c# is the latest ? Doesnt matter to me how long it will take to learn im just want to sure about which one is most useful and wide.
C# and C++ are both pretty useful. Learning C++ gives you the knowledge of C anyways.
Go for C++, learn that. And then play around with a graphics library or something like SFML.
When you have that knowledge, C# goes easy and it's pretty useful for simple stuff like window applications.
C# is the easiest if you are coming from Python. C# should teach you the basics of C++ and C as well but it won't teach you memory management.
[QUOTE=vBatuhan;28825195]So c# is the latest ? Doesnt matter to me how long it will take to learn im just want to sure about which one is most useful and wide.[/QUOTE]
uhhh you seem to have no knowledge about these languages at all so I'm just going to send you on the way to C++
C99 (or C1X, though that's not a proper standard yet), C++98 (with TR1) (or C++0x, though that's not a proper standard yet), C# 4.0
The closest one to Python is C# I'd guess.
Which is the best one depends on what you want to do with it and personal opinion.
[QUOTE=vBatuhan;28825135]Im an amateur python programmer and decided to learn C, C++ or C# but i dont know which one is the latest or the best ?[/QUOTE]
C# is more friendly, with things like automatic memory managment, c++ is probably more difficult though in the long run both are good languages
Id go with c++ just because i use it :v:
I think C++ but it might be a little confusing and difficult. I'd start with C# and when you start learning C++ it'll be a breeze.
[QUOTE=Volcom13;28825316]I think C++ but it might be a little confusing and difficult. I'd start with C# and when you start learning C++ it'll be a breeze.[/QUOTE]
Contrary to popular belief its completely possible to start off with c++ as your first language, theres no need to do anything else first.
C is probably the most available language out of the three, though C# will do fine for the majority of PCs.
C++ is also available for a vast amount of platforms; aren't there even C++ to C compilers?
C is a very simple language. Simple not necessarily as in easy, but rather as in plain and small.
C++ started out as an attempt to make C object oriented, but it went on. C++ is quite clunky, but for some strange reason I like it.
C# is a traditionally JIT compiled language. The main advantage is that you only have to compile it once and it will theoretically run on all supported platforms and it can do run-time optimizations.
It's not as flexible as C++, but therefore not as clunky.
C++ can also be JIT compiled, a notable project for this is LLVM. This would have the same advantages that I mentioned for C#.
C is mainly used for embedded systems and other low-level development, such as drivers and kernels. I think it's swifting a bit towards C++ nowadays though, but feel free to prove me wrong there.
C++ is mainly used for performance-orientated programming, though it's really a general-purpose language.
C# is probably mainly used for desktop-applications, though some game-developing has also turned to this language.
The main reason to choose C++ over C# are probably libraries, since C++ is mostly compatible to C (and you'll find most libraries in C), while for C# you'd have to port the interfaces and use P/Invoke (I think).
I don't know much about reverse engineering, though I guess the statically compiled nature of C++ would make it harder than doing it for C# which leaves more information to optimize while JIT compiling (and run-time reflection I guess).
The main reason to choose C# over C++ is to deal with less low-level stuff I guess. Perhaps someone whose primary/favorite language is C# should write something about this.
The main reason to choose C over C++ or C# is perhaps for embedded systems, though like I mentioned I think there are C++ to C compilers.
C will also be a good choice for writing libraries, since most languages can somehow interface with C.
If you're minimalistic you might also prefer C just for the reason of not being as clunky as C++.
Personally I prefer C++ just because I know it best and it gives me quite a bit of freedom.
I've also been doing some programming in C and C#. C because I felt minimalistic and C# because you don't have to deal with low-level stuff. I don't really know what to recommend without personal bias. It probably won't matter much either.
I dunno, it might be a good thing to learn C at the same time as learning C++. They are both very similar, but I think knowing C is incredibly useful, and will make you a better programmer.
See Sharp.
All of them
ZeekyHBomb's advice is pretty much the only good advice in this thread so far.
Remember that while C and C++ are distant relatives, C# is not related to them. There are some similarities though, the most noticeable are that C# uses the same C-style syntax, and its object-oriented model bears similarities with that of C++.
That said, they are three different programming languages and none of them are "best" or "latest" (unless you mean it like "modern" or "new", in which case it's C#, C++ and C, in decreasing order). All three are being actively used because they excel at different areas, much like you wouldn't compare Python to C# and ask which is "best" or "latest".
[QUOTE=jA_cOp;28834860]much like you wouldn't compare Python to C# and ask which is "best" or "latest".[/QUOTE]
But you can - C# was released later than Python!
Why not learn all of them?
I would recommend starting with C, then moving to C++, then C# C# may be seen to be easier but if you learn C and C++ first, you will understand why things work the way in C# as well rather than just how to use the features of the language. When you understand the why also, it becomes even easier.
I recently started learning Ada and I prefer it to C style languages.
Learning C or C++ AFTER learning C# will be hard, as you'll be use to the high level libraries and features.
Learn C++ first as it is more useful, more things use it, that is.
Unless you are into unity engine, then learn C#.
What you need is the mind set of coding, not actually a specific language.
When you get into the industry, you are most likely gonna code with their library and etc.
They might even have their own higher level language, so you won't be able to work with C, C# or C++ at the lower level.
language is just how you express what you want to code.
As long as you know what to code, it shouldn't take long to get used to a new language.
Agreed, you don't necessarily have to choose one language and stick with it forever. The skills you pick up in C++ will most likely be useful in C# or any other language.
Seeing as this is personal, choose the one that looks interesting to you.
I started C++ its not very hard or im learning fast
I have only used and am still using C#, of these 3, so I'd say you go with C#
Just a heads-up,
many institutes, such as CMU and MIT
are adapting functional programming, instead of object-oriented.
CMU is even planning on dropping object-oriented programming.
So you might want to look into functional programming.
Everything you listed there is object-oriented.
[QUOTE=vBatuhan;28825135]Im an amateur python programmer and decided to learn C, C++ or C# but i dont know which one is the latest or the best ?[/QUOTE]
Latest would be C#.
"Best" in the general sense (unless provided with specific criteria for assessment) is subjective. I happen to be quite partial to ordinary C. Most of Facepunch is allergic to C.
Just note that C, C++, and C# are three [i]very[/i] different languages and you should not lump them together like this. All three are still actively developed and widely used.
C strives for simplicity above all else. It contains only the bare minimum you need to get things done. There is very little syntactic sugar in the language and absolutely no overloading of any sort, so the meaning of things might be more immediately apparent to some. It is still more than capable of anything you might throw at it. Many libraries are still written in C because the only other alternative, C++, is plagued with ABI incompatibilities when you try to use any feature that isn't in the C-like subset of C++.
It is required to learn for a serious programmer.
The idea for C++ was simple; take C and add modern conveniences like object-orientation, overloading, and namespaces. These simple changes, though, had major implications and it became something of an unruly beast. Difficult to master, full of distractions, retains all of C's flaws and pitfalls and even manages to add plenty of its own. It's seated firmly in the awkward middle ground between languages geared toward low-level precision and languages which provide features to rapidly develop high-level structure; tries to do everything and, in my opinion, excels at nothing.
If you want clarity and control, you'd be better off using C (or writing C-style C++). If you want rapid development, you'd be better served by Java/Python. If you need both, you'd be better off using some combination of these.
Still, it's extremely popular and an industry standard, so you [i]need[/i] to learn it at some point if you want to call yourself a programmer.
C# is a new thing from Microsoft. I believe it was their effort to displace Java. It was 'standardized' but it's probably not suited to cross-platform development because it's tied in closely to the .NET platform which will always be way ahead on Microsoft's implementation. Just flat out not my cup of tea and I can't comment on it much more.
[QUOTE=Maya2008;28929901]Everything you listed there is object-oriented.[/QUOTE]
C is procedural, not OO.
Sorry, you need to Log In to post a reply to this thread.