18 Apr, 2009, Igabod wrote in the 1st comment:
Votes: 0
I was at hastings yesterday afternoon looking at books and decided to look into getting a C/C++ programming for dumbasses or whatever book. Yeah I know I should have gotten this done 8 years ago when I started coding but whatever. Anyway, I saw 3 books that were put out by the same company and they were "C programming for the complete beginner" and "C# programming for the complete beginner" and likewise for C++.

Now, I know the difference between C and C++ but I haven't actually looked into C# enough to know what the difference between that and standard C is.

What would C# be better used for than C or C++? I could probably google this, but I'd rather get the information directly from the programmers who use the stuff for what I'm interested in.

I haven't actually bought any of the books yet but I'm most likely going to get the C++ one since it seems everybody is converting stuff to C++ lately.
18 Apr, 2009, quixadhal wrote in the 2nd comment:
Votes: 0
C++ is (mostly) a superset of C. It adds features to facilitate object-oriented programming, while still being (mostly) compatible with standard C.

C# is a totally different language, which shares some syntactic similarities with C and C++. It is implemented on Microsoft platforms via the .NET system, which can also be emulated on linux platforms via the mono project.

C# isn't a bad language. Like many modern languages, it has strings as a base type (and thus is better for use when working with large volumes of text). It also features concepts like reflection and inspection, meaning you can write code that generates new classes on the fly. It is, however, a very different animal than either C or C++.

If you're looking for learning a widespread language, C++ is probably the choice. C# will mostly put you into the Microsoft .NET world, which is fine unless you end up wanting to do things in unix/vms/etc… in which case you'll be griping about mono being a bit behind all the time.
18 Apr, 2009, Igabod wrote in the 3rd comment:
Votes: 0
Ah, thank you quixadhal that was a very concise and adequate answer. I didn't actually plan on learning C# but I was just a little curious so I had to ask.
18 Apr, 2009, flumpy wrote in the 4th comment:
Votes: 0
Igabod said:
I was at hastings yesterday afternoon

ha i used to live in hastings! :)

live in spain now tho. :rolleyes:
18 Apr, 2009, David Haley wrote in the 5th comment:
Votes: 0
You know, frankly, you're probably better off learning C# or some similar language than C. Yes, it's quite different from C. But most people who write MUDs in C shouldn't be writing in C anyhow, so I'm not sure what merit people are assigning to C other than the "unfortunate" fact that most MUD code out there happens to be in C. (Yes, I know that's worth something, but it doesn't change the fact that C is totally inappropriate for most people's MUD code.)
18 Apr, 2009, JohnnyStarr wrote in the 6th comment:
Votes: 0
Personally I love C# (for the most part) I don't like that it isn't open source, and i would have have
to agree mono is a pain. I was at the same crossroads you were about what to do, and dived right
into Ruby. I learned allot about OOP from C# and a little help from this forum ;) ever since that I
have found anything that a MUD project would need Ruby does just as well, its fast, it's clean, and
it's just plain fun. The upside of C# is that Visual Studio rocks, and .NET is pretty amazing.

As far as C++, I know allot of programmers love it, and if i was a bit older i would have probably learned it "back in the day" as well. Personally, i would rather spend the majority of my time developing the game logic of my mud, for me Ruby fits that mold. So i guess it all depends on what you want to do. To be honest with you a big part of me wants to learn C++ inside and out just so i can say i can do it, but i just dont have that kind of time.
18 Apr, 2009, elanthis wrote in the 7th comment:
Votes: 0
quixadhal said:
If you're looking for learning a widespread language, C++ is probably the choice. C# will mostly put you into the Microsoft .NET world, which is fine unless you end up wanting to do things in unix/vms/etc… in which case you'll be griping about mono being a bit behind all the time.

Not sure I can agree here. C++ has long since peaked in popularity and is only declining at this point. Whether or not C# is its true successor is easily debatable, but fact is that less and less new projects are being started in C++. Certain segments of the industry are still very C++-focused, just like some segments are still very C-focused, but for general purpose development, you are far better off learning either C# or Java than you are learning C++. That said, LEARN BOTH. It's impossible to be worth shit as a programmer if you're a one trick pony.

If you want to be a good programmer, I would suggest learning (in suggested but non-required order):

* C (and the C++ additions, but start with bare C) – solid well-rounded understanding of programming concepts, and introduces you to the low-level concepts that you need to at least be aware of when working in other languages, even if they hide most of the details

* Python (or Ruby) – object oriented programming without the restrictions C++ imposes, and dynamic programming

* JavaScript (or Lua) – freeform object-based programming, very high demand in certain segments, only take a day or two tops to get down if you've already got the above items under your belt

* C# (or Java) – most popular high-level general-purpose languages, plus C# at least has light support for data-driven and functional programming beyond the limited support C++ offers

* LISP (or Scheme or Erlang) – true functional programming

* Smalltalk (or Self or Eiffel) – "true" object oriented programming

* one or two more languages that catch your eye and preferably aren't just syntactical variations of one of the above

Some people recommend moving the functional languages to earlier in the list. The problem with functional languages as a first or second programming language is that they are very much modeled off of the mathematical foundations of computer science, which are relatively difficult to grok on your own without dedicated instruction at a university. Plus functional languages have relatively low industry usage outside of a few niche segments, so while it's critical to understand the concepts they embody to be a good programmer, it's even more critical to learn everything else.

However you go about it, be sure to learn at least one new language every year or so, or at the very least learn one new major application toolkit every year. Continuous learning is key.