CompuServe Messages

#Oberon-2

    21-Sep-95 11:54:53
Sb: #48227-#Oberon-2
Fm: Greg Comeau@Comeau Cmptg 72331,3421
To: Bart Van Bockstaele 100574,2352
>>..unless, of course, there's a bug in the assembler. :-)<< > >True of course, and I have met one or two. The big advantage, even then, is >that assembler errors are generally very much easier to track down and >circumvent than compiler errors. I see your use of generally, and do agree the translation to machine code is simpler, and I hate to keep saying this, but that simply does not follow. Even if we quality better exactly what "an assembler" means, I still think we cannot necessarily get at this except for a case by case review of the error. If it is a doozie, then it is a doozie. Some are obvious, some are not. Assembler might be too low and involved to see some things. And so on. A bug is a bug and it's the skill of the person to get at it. Some bugs are easier, ditto for the predicaments. I won't deny this. But that alone doesn't seem to suffice to me. Further, I think you are leaving out significant things, like: macro assemblers, assemblers that actually have HLL constructs, etc. >In my experience at least. "One is often best at what one does best." This implies habits, savvy, the whole pot. IOW, perhaps you are an assembler expert and have never quite put your mindset wholeheartedly into other approaches et al. For sure then, you might find program, compiler, OS, etc bugs in assembler faster and so on that in a HLL language. Just like I will probably do so in C and C++ than in Ada. >In theory at least, writing portable code is good programming practice. I don't see it as a good (or bad) issue. I see it as a decision made on an educated slate. >However this also depends on what levels of quality you >want to achieve. If you write portable code you'll never get the most of the >two different platforms. A chain is never stronger than its weakest link. Your point is not invalid per se, but don't push it either. Assembler definitely does not solve this problem. In fact, hardly at all. Indeed, it is possible to obtain quality code that is very portable. Where the links become not perfect is more say with different GUI's, and generic frameworks atop of them, or where perhaps sizeof int might be important, etc. Many can be coded, or arranged, for. >I had an extremely bad >experience years ago. I decided to write an accounting package that worked on >the Amiga, PC, Atari and Mac. It never really worked. Different bugs in all the >compilers made the project impossible. I'm beginning to wonder if you've really ever allowed yourself the proper exposure and getting used to to HLLs. I know some people who always seems to purchase a lemon car, no matter how good the model seems to currently be rated. Perhaps, Murphy was not on your side with this experience and it has left an (improper and hence unfortunate) sour taste in your mouth? >An example: the program for the client database needed 2Megs of internal >memory. Now, in assembler, it needs about 100K and it does more than the >old one. That's an order of magnitude of 20. Unless you were running some sort of debugging interpreter for the language in question, I cannot accept that the language alone was the reason for this. >I am not against an easy high level language. But what is 'easy'? >I consider it to be my deontology to feel responsible for >every bug in my programs. Therefore I feel compelled to do everything in >assembler. I don't understand you technical decision, but I find this noble, and wish everybody felt this same way.