On Jul 1, 2007, at 11:45 AM, Peter Bindels wrote: > People use C because they have code in C... I don't think your argument hold up very well. Wasn't the original Apple OS written in pascal? Wasn't ADA going to be required for all government-funded projects? Was not PL/1 going to be THE language for anything IBM? I don't recall C being heavily used in embedded projects 20 years ago; I recall it being barely available for computers as large as the IBM/PC of the day. I think C succeeded because it was one of the few languages that didn't include a library or run-time environment specification that was too big for embedded systems; it was easy to SHRINK. Eventually there were standards for C libraries, but that came LATER... I think you'd have a really hard time finding a set of C++ libraries and run-time environment that will work in the 4k memory environment of even relatively large 8 to 16 bit micros. It's pretty questionable for the single-chip ARMs with 64k or less. Our "embedded" systems allocate at 4k to 8k for each process or interrupt level stack (3 or 4 times that on RISC cpus, cause of the the potentially heftier context saving), and that's still for C. We have relatively frequent arguments about C++, with the nay-sayers harping on just how easy it is to suddenly use up much more of one resource or another than you thought you were using. To use C++ on a mid-sized microcontroller, you'd probably end up needing to restrict yourself to a subset of features and classes that not many people would still consider to be C++... (How's that defined embedded subset/version of java that Sun was pushing (javame?)? A little searching shows Sun bragging that their CLDC JavaME implementation is targeted to devices with "as little as 192KB of total available memory", and that their javaSE for embedded systems has a reduced footprint of "only 30MB." That doesn't make ME feel very warm and fuzzy.) BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist