Jump to content
Larry Ullman's Book Forums

C++ Or C?


Recommended Posts

Hi Larry,

 

A friend of mine recommended your books. I'm interested in doing a Master's in Computational Linguistics. I was a foreign language major, so I understand the linguistic side, but I'm new to the computer language side. So, for computational linguistics and as my first computer language, which language do you suggest I start with? C++? C? Java?

 

Thank you for your help!

 

Christo

Link to comment
Share on other sites

C is an older language that has influenced a lot of languages, including C++, C# (Pronounced C sharp) and Java. It is still one of the most used programming languages, but lacks support for some of the newer concepts in programming, like adopting an object-oriented approach rather than a procedural one. It is also more of a low-level programming language compared to the languages mentioned.

 

Both Java and C# are fully are object-oriented, while both PHP, C++ and C are generally procedural languages. What this means is that the code is executed in a top-down manner, much like we human read text. Object-orientation is a concept of abstracting pieces of code into more human-understandable concepts. A much used example in this regard, is a toaster. An object of the type "Toaster" may have encapsulated logic for interacting with it, for example putting in an object of bread and pressing down the toaster mechanism. The main difference between the two is the way we think about code and organize it.

 

A high level programming language has more built in features than a low-level one. A high level language may for example make it a lot easier for you to perform operations to files, like reading it's content, adding new content and such common tasks. In a low-level language, you may need to combine a series of commands to do the same thing. A low level language will therefor often be clear computer instructions, (that may actually be C commands themselves, C is widely used in operating systems) while high-level languages will read much more like normal english.

 

It's hard to recommend one over the other. The ultimate coding language is obviously assembly code (Both Java and C# code is parsed to this internally), but that is generally not human-friendly as most men do not think like robots. That is the reason why high-level programming languages and object-orientation exists. There are trade offs to be considered, so no language is perfect for every purpose.

 

I suggest you research each of these languages strengths and weaknesses, read about some general programming concepts and talk to other that has a Master in programming for you choose. Hope this is somewhat helpful, at least gives you some clues to where to begin.

  • Upvote 1
Link to comment
Share on other sites

Well said, Antonio. Hard for me to add more. I initially think that C makes sense, as it's the parent of so many languages, but it's not very accessible, especially when you get into pointers and such. One could start with something like Visual Basic to learn some basic concepts, I guess, although I never learned VB.

Link to comment
Share on other sites

  • 3 months later...
Guest Deleted

Could s/he start with PHP? Aside from knowing a tiny bit of JavaScript, it's the only language I know, so I can't really compare it, but I commonly hear people call it the "gateway language" (compare the term "gateway drug" that is sometimes used in reference to marijuana). I guess what they mean is PHP one of the gentlest ways to cut your programming baby teeth.

 

I could be totally wrong here but yeah this is what people have told me :)

Link to comment
Share on other sites

Guest Deleted

I know that knowing PHP made it a heck of a lot easier to understand JavaScript. Some stuff was the same while other stuff was different but it made sense because PHP taught me how to think all programmerish. :)

 

Like I said though, I do not know much JavaScript. I learned the bare minimum that lets me use jQuery, lol.

Link to comment
Share on other sites

 Share

×
×
  • Create New...