sergio masci wrote: > On Thu, 2 Jul 2009, Tamas Rudnai wrote: >> I think it is not a win or loose conversation. I love these >> conversations too as many times some very important thoughts pulled >> out of someones head that would never mentioned otherwise. >> > > Actually I agree with Tamas. > > I find that trying to discuss languages with most people these days > tends to boil down to: use C, use C++ or use Java. Not very > productive if you're trying to do something better. I remember that when I first read about Ada, I thought that this would be the future. It didn't become the future... Ada compilers are too heavyweight, too complicated, too expensive, too "niche". Probably no way to implement a compiler for a small 8bit micro efficiently. > Remember, the point of a programming language is to allow the user to > describe the problem so that the compiler can generate the best code > to solve that problem. One thing that's missing in this affirmation is that it's not typically about "the compiler can generate the best code". Typically it's foremost about describing the problem in an efficient way -- for the programmer. The compiler doesn't have to produce the best code possible; it has to produce code that's good enough. But it has to make the programmer's job easy; this is its main job. It seems a certain part of the engineering population thinks that ladder logic is an adequate way to describe their control problems, yet ladder logic compilers are definitely unpopular with the micro crowd. There seem to be groups that have different views of what is the easiest way to describe a problem. Another thing that's IMO missing in the affirmation above is that it's not about "the" problem, it's about "a relevant subset of all engineering problems". And here is where the "glorified assembler" (and assembler) comes in, with the flexibility to address problems in not yet thought-of domains. > It is not to micro manage the generation of an executable such that > the compiler becomes nothing more than a glorified assembler. Hm... With "nothing more than a [...] assembler" you're probably correct. OTOH, I don't know of any language in widespread use that is "nothing more". (We could probably disagree on what "glorified" means :) But if you substitute "nothing more" with "not much more", things are not so simple anymore. It is a tricky balance between adaptable and standardized, lightweight and powerful, flexible and supporting, almost requiring, good practices, universal and highly optimized, allowing solutions adequate for every domain and including yet unknown domains, ... One thing I wonder is why we haven't seen a programming language on silicon. Not a Basic interpreter in firmware, but something more substantial and efficient, along the lines of the Java micros (that never seem to take off). Is this because it produces faster code with the same amount of silicon when a compiler optimizes assembly than when microcode executes high-level constructs directly? Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist