"Elias Salom�o Helou Neto" wrote in message news:86748003-860f-4729-ae26-55be1e58ac2b@d27g2000vbz.googlegroups.com... >On Apr 18, 8:10 pm, "Randy Brukardt" wrote: >> "Elias Salom�o Helou Neto" wrote in >> messagenews:d169b543-eed4-4a0a-a295-e391c198463e@j9g2000prj.googlegroups.com... >> On Apr 17, 8:43 pm, "Nasser M. Abbasi" wrote: >> ... >> >> >> I must have been doing something really wrong all those years, >> >> becuase the only way I learned a new language was by >> >> programming in it. >> >> >Without even reading a book about it? You are doing things terribly >> >wrong. Of course programming is the best way to learn, but not without >> >a good book to read while practicing. >> >> There aren't always books to read. > >C books? Come on! We're not talking about C specifically, we're talking about "a new language". >> We wrote a partial Ada *compiler* back in >> 1980 from a description circulated by our professor (Janus/Ada originally >> started in a compiler construction course). > >Surely the first Ada compiler you wrote wasn't coded in Ada itself. >Haven't you read any book about the language used to code the compiler >before? Sure, but irrelevant, since we had to create test programs for the compiler in Ada (gotta test that it works), and that requires some understanding of the language. > Weren't the professor's description a kind of "book"? Depends on what you meant by "good book". A raw language description (as in the professor's handful of mimographed sheets) or even the Ada Reference Manual doesn't seem to be a "good book" about programming in the language. I had presumed that you meant "textbook" when you said "book", because otherwise your statement doesn't seem to say anything useful (by definition you'd have to read a language description to program, but there is no such requirement to read a book about how best to program in a particular language). Even so, the professor's description looked nothing like a "book", in any sense of the term. So you have to be so expansive about the meaning of "book" to have made a meaningless statement. > So keep saying people that they do not need to study the language they > intend to write code on. This is really smart, isn't it? Huh? I said no such thing. I simply said that you don't necessarily need a "book". I meant "textbook" when I said that, but it is really strictly true as well: you need a "language description", but it surely doesn't need to be in the form of a book -- it could be a handful of loose pages, it could be a a web site somewhere, a help file, or even a program editor. Go back and re-read the statement that you made: "...but not without a good book to read while practicing.". I disagree with this statement as written, and I explained why. I also didn't feel any need to insult you when disagreeing with you, which does not help your point any. >> The only book that we had (and >> we didn't get that until near the end of the class when we had already >> decided to commercialize it) was the 1980 Ada Reference Manual. > >So you're again trying to claim you have written a compiler without >knowledge of the language to be compiled? It must be some kind of >magic, for sure. Again, what about the description by your teacher? It surely was not a "book". And by no stretch of the imagination, a "good book"! These days, I hardly expect anyone to expect requiring a "book" to do anything. Even counting "e-books" as "books", there are a lot of information sources which have nothing to do with "books". It was a lot harder to understand back in 1981, yet it still happened then (and even then there were a lot of information sources having nothing to do with books - papers, magazine articles, seminars, lectures, computer-aided-instruction). >> I'm pretty >> sure that we had already converted the entire compiler into Ada code (so >> it >> could compile itself) before we saw any of the early Ada textbooks. (The >> Pyle textbook that we distributed with the compiler didn't come out until >> late 1981, I think.) > >After writing an Ada compiler it is very unlikely for someone not to >know the language. There are lots of C textbooks, why not to use them? >Nonsense. We're not talking about C specifically, we're talking about "a new language" in general. And I doubt I would *buy* a textbook these days; pretty much everything one needs is on-line (and often not in the form of a book!). >Also, please notice that I've recommended a book for those that are >learning the language, not for those who have already mastered it (but >even so a good reference manual is invaluable). Again, I don't give a hose about C; I see no reason to waste my time with obscure language wars. (Ada is best, and that's it. :-) >> That was OK, Ada wasn't that different than Pascal which we both already >> knew well. > >This is dangerous. People seem to believe C is like Pascal or BASIC. >Is this knowing C? This is the kind of misconception we have to fight. Maybe *you* have to fight it. I happen to think that a language that is unnecessarily different than what a typical programmer would expect is dangerous. (And yes, Ada suffers from this in a few places as well -- and those things are also dangerous.) A lot of people (not me, thankfully) have to program in a polyglot of languages, and remembering the obscure rules of one or the other without confusing them is difficult. We had this problem in the first year of Janus/Ada, when we were programming in Pascal, Modula I (for classes), and Ada all at the same time. Lots of mistakes made where they differed -- luckily most of those were compile-time failures and thus didn't cause bugs. >No programmer should claim to know C (or any other language) if he/she >doesn't really knows it. I don't claim to know C (anymore), but that doesn't prevent me from hating it. :-) The one project I was forced to write in C (rather than Pascal or Modula) during my university days was the only such project that didn't work at the deadline. (And I was annoyed enough to spend several hours afterwards figuring out why it didn't work - the bug turned out to be a missing pointer dereference which the C compiler was happy to ignore.) Since then, I've learned to detest the C syntax -- I don't even get to hating the semantics. The only C I do is to read it well enough to be able to write interfaces to C APIs. I realize this is somewhat irrational, which is why I try to stay out of language wars -- there is no way to win (I'm more likely to marry a supermodel than I am to change my mind about C! :-) Randy.