Ralf Corsepius wrote: > On 12/17/2010 06:28 PM, Robert Myers wrote: >> On Fri, Dec 17, 2010 at 3:54 AM, Les<hlhowell@xxxxxxxxxxx> wrote: >>> On Fri, 2010-12-17 at 10:00 +0000, John Haxby wrote: >>>> >>>> >>>> On 17 December 2010 09:41, Ralf Corsepius<rc040203@xxxxxxxxxx> wrote: >>>> >>>> That said, I'd choose "C" to getting started. It's a bit of a >>>> rough ride >>>> in the beginning, but it pays off in longer terms. > >> And many of the things that are dangerous/subtle/hard-to-learn about c >> are much less obscure if you are an assembly-language programmer. In >> fact, they seem quite natural. Trouble is, they will *not* seem >> natural to a beginning programmer. > Exactly. "C" tends to expose many of the low-level details and the > concepts behind them (e.g. pointers, addresses, registers, > bit-operations, word-sizes, interfacing with other langu). > > That's why I prefer exposing newcomers to these concepts early in their, > e.g. by choosing "C". Also worth mentioning is them learning and > understanding the concept of "preprocessing", "compilation" and at least > some details of linkage, details which many interpreted languages hide > away from them. > Before doing pointers I always taught the control structures, the three part "for" loop, vs. loop with the test at the start vs. test at the end. Which loops can execute zero times, which at least once? Why? C is one of the richest languages ever, and was at the time of the first standard (I was GE's rep to X3J11), and recent additions have made it even more powerful. However, I still like perl for a teaching language, because it can do math, strings, and networking. It's forgiving, just about anything you write will do {something}, often rewarding muddy thinking. I like C for systems work, although I use a lot more bash than I used to. -- Bill Davidsen <davidsen@xxxxxxx> "We have more to fear from the bungling of the incompetent than from the machinations of the wicked." - from Slashdot -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines