No point in learning C? Use C++ instead?

C

Chris Hills

Richard <[email protected]> said:
Chris Hills said:
CBFalconer said:
Pierre Asselin wrote:

In a recent programming class I was taking, another student went
on and on about how C was a dead language. [ ... ]

Have a look (both of you) at the C++ faq, this one in particular:
http://www.parashift.com/c++-faq-lite/big-picture.html#faq-6.5

If you examine the name of this newsgroup with extreme care, I
suspect you will detect the absence of "++" in its name. That is
another language.

Did anyone ever tell you that you are an extremely irritating, boring
man? Did you not notice that he is asking about C too?

GO AWAY we do NOT discuss Ctoo here ONLY "standard C"

mutter whinge etc :)
 
B

Bahadir

In a recent programming class I was taking, another student went on and
on about how C was a dead language. I tried my best to explain why this
was not so, but he was more able to explain things like C missing the
STL, vectors, linked lists and a ton of other stuff.

Having limited knowledge of C, I wasn't able to properly or adequately
discuss this with him. Although *I* think C is not dead, I realize it
lacks certain things that C++ does. But to me that is the point of *ALL*
programming languages... they each do something differently, and lack
something that some other language does.

Anyway, my question is this: Is C dead?

Just so that my intent for an answer is clear, should a new programmer
focus on C++ instead of C? If they were given the opportunity to attend
a *good* programming class for a whole year or so, which should they
choose?

Also, I didn't focus on desktop, network-related, graphics-specific, et
cetera questions, because I don't really care. C or C++. If you had to
answer based on just each one as a language... what would you recommend?

Also, I would have poured over the FAQ more, except it is currently down
(both links).

I had exactly the same problem when I knew neither languages. I
wrongly chose to start with C++. Its better to start with C. C++ is a
huge language, and *a lot* of the fanciness features are derived from
certain inconveniences the original designer faced with C. A rough
example would be, the exceptions in C++ are a fancier version of
setjmp/longjmp pair in C. But barely learning how to use exceptions
does not give you a clue about why they exist. There are so many such
things that you would learn without understanding why they are there,
if you start with C++. I strongly recommend you start with C. In fact,
if I went back to start, I would start with assembler. That way you
would understand why there are structures, functions etc. in C.

Another example; I had hard time understanding why there is a call-by-
value and call-by-reference style of passing arguments to a function.
If you don't understand what's happening when you call a function,
where variables are stored, what a stack is etc. you will be confused,
even though you will be perfectly able to pass arguments around. The
catch is to learn the *why* side of things. Without that, you would
know no more than a script kiddie.

Thanks,
Bahadir
 
M

Mark McIntyre

Pierre said:
-Lost said:
In a recent programming class I was taking, another student went
on and on about how C was a dead language. [ ... ]

Have a look (both of you) at the C++ faq, this one in particular:
http://www.parashift.com/c++-faq-lite/big-picture.html#faq-6.5

If you examine the name of this newsgroup with extreme care, I
suspect you will detect the absence of "++" in its name. That is
another language.

You need to read the reference. Its relevant.
Quote:

[6.5] Is C++ better than Ada? (or Visual Basic, C, FORTRAN, Pascal,
Smalltalk, or any other language?)

Stop. This question generates much much more heat than light. Please
read the following before posting some variant of this question.

In 99% of the cases, programming language selection is dominated by
business considerations, not by technical considerations. Things that
really end up mattering are things like availability of a programming
environment for the development machine, availability of runtime
environment(s) for the deployment machine(s), licensing/legal issues
of the runtime and/or development environments, availability of
trained developers, availability of consulting services, and corporate
culture/politics. These business considerations generally play a much
greater role than compile time performance, runtime performance,
static vs. dynamic typing, static vs. dynamic binding, etc.

Anyone who argues in favor of one language over another in a purely
technical manner (i.e., who ignores the dominant business issues)
exposes themself as a techie weenie, and deserves not to be heard.
Business issues dominate technical issues, and anyone who doesn't
realize that is destined to make decisions that have terrible business
consequences — they are dangerous to their employer.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
 
C

Charles Richmond

CBFalconer said:
The millenium has arrived. We agree on something. :)
Two n's in "millennium", Chuck... ;-)
Two n's in "millennia" also.

<non sequitur>

Approximately, there are as many femtoseconds in a second,
as there are seconds in 31,000 millennia.

</non sequitur>
 
C

CBFalconer

Charles said:
CBFalconer wrote:
.... snip ...


Two n's in "millennium", Chuck... ;-)
Two n's in "millennia" also.

And my rarely used spell-checker agrees with you. Now I know that
I misspell the word :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top