Author: Matthew White
Date: 18:47:15 07/30/03
Go up one level in this thread
On July 30, 2003 at 02:50:34, Tony Werten wrote: >On July 29, 2003 at 22:31:46, Vincent Diepeveen 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 >> >>I agree fully with Bob here. His Pascal argument is very valid. > >No it isn't. Neither are yours. Both of you haven't programmed in Pascal for a >long time, so I don't understand how your opinions are formed, but anyway. > >As any programmer who can program in more than 1 language can tell you, there >isn't a best language. It depends on the needs. > >If you only have a hammer, everything looks like a nail. If you have more, >you're better off choosing the right tool. One of my favorite expressions :). > >If you need speed, use assembly, if you need to do some word or excel >automation, Visual basic is best choice. Need a good userinterface, use Delphi. >Compatibility with other os'es, take C. > >Because in real life ( as opposed to chessprogramming ) all that matters is to >shorten developement time. > >Tony > >> >>Let me give you a bunch of reasons why you should not teach in a language like >>that JAVA or delphi or pascal: >> >> 1) the students will later use the language they are learned. So >> if you directly learn them C++ they will use that. now they are doomed >> to use java or pascal because that's what they are familiar with. >> 2) your students will earn thanks to that you learned them this toy language >> a lot less. C++ programmers earn better than Java programmers in general. >> In fact even some 'older' languages like fortran earn very well. >> Majority of >> programmers in netherlands at the KPN (which is about a 1000) is fortran >> programmers just to give an example. But also at supercomputers fortran >> is very important. >> 3) If you learn them C++ you achieve 3 objectives at the same time >> 3a - they learn a language they can later use >> 3b - you can show them the great things of object orientation >> in 50 line programs >> 3c - they are not fearing to program in C++ as they are familiar with it >> 4) In big companies decisions get taken by management. Not by programmers. >> Managers in general are doing what is good for their company. >> If statistics show that 80% of all programmers with very small shoe >> sizes will make buggy code, then in theory the law doesn't allow you >> to discriminate. However managers do not work like the law there. They >> fear hiring someone who writes buggy code, so they never hire someone >> with a small shoe size if that statistic would be the case. >> Same is true for Pascal. Pascal is for newbies, exactly as you say so. >> Therefore managers will not hire people who are good in pascal, because >> a manager always finds out the truth. With his questions to the programmer >> the programmer in the end will confess he's better in pascal than in >> C++, so the manager concludes he's a pascal coder. So the programmer >> deduces from that he gotta be a crappy coder. So he isn't hired. >> Managers work very instinctive and they should. They are there to prevent >> disasters for their company, not to play the advocate of the devil which >> will say that a coder isn't a bad coder unless you have clear proof >> of that. Trivially it's easier to not hire someone than to fire someone. >> 5) This really is important. In university and colleges they still do not >>understand a thing very well and that is that 99% of the time you are busy >>fixing bugs and 1% of the time you are busy creating something new. I will not >>say throwing someone in the deep is a good thing. I have no opinion there. >>But for sure it is better to learn to debug. Example at my own university out of >>all the years that i was there i saw only 1 course which had 1 sheet which said >>that debugging was important. >> >>All the other theories about debugging i have figured out myself. What is a >>boundschecker. How the debugger works and how to effectively write testbeds. >> >>Your simple programming language when preventing severe bugs will definitely >>create a bad coder. Someone who can't debug. That's a horror. >> >>If someone has followed your course i bet he can't debug. yet 99% of his time he >>will lose debugging in his programming career. >> >>Programmers just starting their program i have always this discussion with: >> >>"Did you let it print to a log file all the lines is searched with alfa and beta >>scores?" >> >>.. >> >>"Why not?" >> >>.. >> >>"SURE you must do that" >> >>.. >> >>"yes i am VERY sure you must do that. How can you fix a bug in your chess >>program if you do not know where it is and all you know is that it plays the >>wrong move?" >> >>How many more programmers who just started their chess engine i need to explain >>it to? They should learn this already at *school* IMHO. >> >>If you only teach someone to drive a car, why give him a flying license?
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.