Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any reason to use C?

Author: Matthew White

Date: 15:20:47 07/31/03

Go up one level in this thread


On July 31, 2003 at 11:21:58, Robert Hyatt wrote:

>On July 30, 2003 at 18:07:07, Matthew White wrote:
>
>>On July 30, 2003 at 00:00:54, Robert Hyatt wrote:
>>
>>>On July 29, 2003 at 22:10:11, Matthew White wrote:
>>>
>>>>On July 29, 2003 at 22:08:13, Robert Hyatt wrote:
>>>>
>>>>>On July 29, 2003 at 20:16:59, Matthew White wrote:
>>>>>
>>>>>>On July 29, 2003 at 16:53:05, Vincent Diepeveen wrote:
>>>>>>
>>>>>>>On July 29, 2003 at 03:15:54, Hristo wrote:
>>>>>>>
>>>>>>>>On July 28, 2003 at 19:12:56, Vincent Diepeveen wrote:
>>>>>>>>
>>>>>>>>>On July 28, 2003 at 17:34:46, Russell Reagan wrote:
>>>>>>>>>
>>>>>>>>>>Is there any reason to start new projects with C anymore? It seems like most (if
>>>>>>>>>>not all) of the drawbacks of C++ have faded away with modern compilers.
>>>>>>>>>>
>>>>>>>>>>Note that I am talking about new projects, and maintaining old projects is
>>>>>>>>>>obviously a good reason to still use C.
>>>>>>>>>
>>>>>>>>>If i would learn coding today i would prefer C++.
>>>>>>>>>
>>>>>>>>>However let's be clear, for good programmers there is not much diff between C
>>>>>>>>>and C++. Every complex problem which you can solve in 10000 lines of C++ you can
>>>>>>>>>solve in 10000 lines C too.
>>>>>>>>>
>>>>>>>>
>>>>>>>>Vincent,
>>>>>>>>with all due respect I must disagree. In 10K lines of C++ code one can solve a
>>>>>>>>much more general or larger set of problem(s) or cram in more features. :)
>>>>>>>>(think templates, exceptions, and often inheritance ... all of which can shorten
>>>>>>>>your code)
>>>>>>>
>>>>>>>I do not know about you, but i program both in C and C++.
>>>>>>>
>>>>>>>Do you?
>>>>>>>
>>>>>>>Not a single program where you can use all the nice toys you can also make a few
>>>>>>>functions for in C.
>>>>>>>
>>>>>>>In general the average programmed C++ program you program more compact in C.
>>>>>>>
>>>>>>>That's not what i'm talking about.
>>>>>>>
>>>>>>>If you do not know how to program in C, then just say it loud instead of writing
>>>>>>>it down like this.
>>>>>>>
>>>>>>>the advantages of what you mention here (assuming 1 man products) you can show
>>>>>>>great in 50 line examples or even 200 line examples.
>>>>>>>
>>>>>>>But as soon as you write a 10000 line product then it doesn't matter what you do
>>>>>>>in C++. I can do the same in C too. No problem!
>>>>>>>
>>>>>>>>In your post, latter, you indicate that C++ offers some advantages over C,
>>>>>>>>especially for large projects. In my experience this is %100 true, so we are in
>>>>>>>
>>>>>>>I see no other advantages to C++ than for big projects in fact.
>>>>>>>
>>>>>>>The advantage is *really* huge there for companies.
>>>>>>>
>>>>>>>Given the importance of those companies for the world, the choice to teach
>>>>>>>students C++ instead of C is a logical choice.
>>>>>>>
>>>>>>>teaching them Java, delphi i find a bad idea.
>>>>>>>
>>>>>>The best reason that I see to teach students using Java is that Java gives you
>>>>>>useful information when an error occurs (remember the first time you saw a
>>>>>>segmentation fault how lost you felt?). Java has strong typing and it FORCES
>>>>>>object orientedness. C and C++ are too frustrating for new programmers...
>>>>>>
>>>>>>Matt
>>>>>
>>>>>
>>>>>Strong typing was also Pascal's claim to fame.  Thankfully it died a
>>>>>graceful death.
>>>>
>>>>It was good for teaching, though...
>>>>
>>>>Matt
>>>
>>>
>>>Depends on your ultimate goal.  If you are going to be a programmer, it is
>>>not the best way to go.  If you program in Java for 4 years, then leave and
>>>go to work where they use C, you have a _long_ learning curve.  You've never
>>>seen pointers, for example.
>>>
>>>We took a _lot_ of heat about that from companies like BellSouth.
>>
>>I see what you mean. However, for intro-type classes, Java makes a lot of sense.
>>When a student is first learning syntax, Java is far easier than C++. Once a
>>student has a fairly good command of syntax, then C/C++ could be used for
>>development in more advanced classes. It seems to me that the learning curve
>>will be easier to overcome once syntax is no longer an issue...
>
>I'm not sure how Java is "easier".  Omit C's pointers.  The loops, declarations,
>etc are the same.  You have to learn to use some imported class stuff for I/O
>and the like.  In C you use a run-time library.
>
>However, omitting pointers is a serious problem for those that are going to
>use C/C++ professionally.  I've taught classes for BellSouth to remedy this.
>They get kids that simply haven't been exposed to pointers, yet all their
>applications at BellSouth depend on them, because you can't even use the
>normal library stuff without pointers.

I realize that they are essentially the same. The reason why I lean towards Java
is the fact that if you read past the end of an array in Java, you get an
ArrayOutOfBounds exception with the line number where the exception occurred. In
C/C++ you get the obscure "Segmentation Fault (core dumped)." That scared the
hell out of me as a student, having no clue what a core was... I just think that
Java is a friendlier intro...

Matt



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.