Wouter van Ooijen wrote: >> The problem comes from an inexperienced user writing code that might >> make perfect sense on some other processor, but that is difficult to >> implement on a PIC. In these cases, some of these compilers will >> silently generate truly horrid code. Not inefficient, amazingly awful. > > If so, who cares? If the generated code is correct, and its size and > execution time are not off (with respect to what?) by a factor of more > than let's say 100, what's the problem? I'd even go further: as long as the generated functionality (in terms of program size and execution speed) does what it is expected to do, the beauty of the generated code is a quite secondary issue. Maybe not for a pro -- I do care somewhat whether my compiler produces awful code, because it may indicate that it has other deficiencies --, but not for a beginner. >> I write for and mostly talk to PIC hobbyists. Many, many of these folks >> (and way back at the beginning of this thread the OP sounded like a >> hobbyist new to the PIC) have a very limited understanding of >> microcontrollers in general, let alone the PIC. For them, the PIC is >> very alien territory, and very hard to grasp. Putting a layer of >> abstraction in there (the compiler) BEFORE they understand the >> architecture make it a LOT harder. > > I disagree. I have seen kids who don't even understand binary numbers > sucesfully write small Jal programs. For many people a HLL is the *only* > way to do something on a PIC. They might be doing things in a terrible > way, but they get something done. I don't have much experience with hobbyists and beginners (other than with myself :). But I would tend to think that especially C is /not/ for the normal hobbyist and beginner in micros. IMO C on a PIC is for someone who already knows C; it is not easy to learn. (I guess in that I disagree again with John :) There are languages that are easier to get your arms around, like maybe Basic or Jal. I guess it depends on what you want to do, as a beginning hobbyist without prior knowledge of either programming or microcontrollers. For getting quick results, neither C nor assembler are a good choice, IMO. Something like a Basic Stamp looks much more inviting to me for that situation. You probably can get something blinking in less than an hour, even without knowing anything before. I know it's limited, but when you get to /that/ point, then you already know something and are not a bloody beginner anymore, and everything looks a bit different. And maybe you just take the next step to a compiled Basic and your own hardware... Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist