Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any reason to use C?

Author: Robert Hyatt

Date: 12:57:51 07/31/03

Go up one level in this thread


On July 31, 2003 at 11:16:32, Ulrich Tuerke wrote:

>On July 30, 2003 at 17:15:11, Robert Hyatt wrote:
>
>>On July 30, 2003 at 16:52:47, Gerd Isenberg 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.
>>>
>>>Bob, that may be true - but if they do Java in their job, the learning curve is
>>>rather short, if not zero.
>>
>>I already said that.  But for large IT organizations, Java is not an
>>option.  C/C++ and COBOL are dominant, still.
>>
>>
>>>
>>>In my working environment i found the trend goes to Java. Huge business
>>>client/server applications with Java application server like Bea and JBoss.
>>>I found Java-beans much more intuitive than C++ based component ware i used so
>>>far, but still a newbie in this field. Have you ever used COM (the better C++?!)
>>
>>No to COM...
>>
>>
>>>or MSXML-DOM with ms-smartpointer?
>>>
>>>I learned in the "bottom-up" way, from assembler close to hardware to Pascal and
>>>later C/C++. I had clear imaginations what an address or a pointer is.
>>>
>>>In the meantime with C++, i prefere the reference synonym instead of pointer,
>>>only because of syntax ( a=b instead of *a=*b, passing a,b instead of &a,&b and
>>>only a prototype with (int &a) instead of (int *a).
>>>Due to my career i'm not sure what's the "best" didactical way to teach "call be
>>>reference" or "call by pointer" first, may be very individual.
>>
>>
>>I learned assembly first, then FORTRAN and then others.  The point is that it
>>is far better to learn your main programming language (for your career) first,
>>rather than later.  Learning syntax is easy.  Learning semantics is not as
>>easy.  Experience to become a _good_ programmer in a specific language takes
>>_much_ longer.
>>
>>By the way, the two calling conventions are commonly called "pass by value
>>(where a copy of the value is passed, as in FORTRAN)" and "pass by reference"
>>(where a pointer to the value is passed).
>
>I think that you are wrong here: good old Fortran passes parameters by ref..
>C is an example for "pass by value".
>
>Uli
>

You are right.  However IBM modified fortran years ago so that you could
put // around a variable and "pass it by value".  So you could do it either
way, just as in C.  The only difference was that looking at the code, you
could not tell whether a=a+1 was modifying a copy of a, or the original back
in the calling program...

the // stuff was done on multiple fortran compilers, but I'm not sure it was
ever a "standard" (although many vendors, cray included, even added pointers to
fortran as another language extension).

>>
>>
>>
>>>
>>>Gerd
>>>
>>>>
>>>>We took a _lot_ of heat about that from companies like BellSouth.



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.