#ObjectOriented
21-Sep-95 11:54:35
Sb: #48233-#ObjectOriented
Fm: Greg Comeau@Comeau Cmptg 72331,3421
To: Bart Van Bockstaele 100574,2352
>Not programming in assembler has cost me a few years of my life in >solving
>compiler bugs.
>…when writing “portable'' code. There were different bugs in the
>different compilers and the code had to be written so that all bugs were
>circumvented. In the end it was a non-useable program.
I still contest that you've have some VERY extenuating circumstances.
One of this things I am extremely well known for is the vast number of
machines and operating systems that Comeau C++ is available for. Ditto for
some other products and other code I've ported "everywhere".
Such a dilemma need not be.
>Mainly two: IF there is a bug in the HLL it can be nearly impossible to solve,
Nearly impossible is quite an overstatement. I've solved many and I know
other people who have too, including optimizer bugs, which can be most
elusive.
>and HLL's work slower than assembler.
You mean compile-time-wise? Although common sense seems to implicitly imply
this would be the case (I mean, "what's so complicated about assembler
since it's compilating is a simplier mapping from the instruction to object
code"), I'm _positive_ that I could demonstrate cases where this would not be
the case.
> Since people are prepared to pay much for
>a faster computer to work more efficiently it definitely makes sense writing
>everything in assembler even if you have the fastest computer.
Sometimes. I'm more interested in a reasonable tradeoff wrt power of
expression, maintenance, readibility, manipulation, etc.
In fact, I'd be more apt to get a faster computer with a slower app
than write it in assembler. Most definitely. Also, as you mention
portability above, I'm definitely not going to rewrite my XX/YYYKLOC apps
everytime I go to a machine with a different CPU. Even on a CPU family,
what made sense with one machine, may not be optimal on the upgraded CPU
(it should still work though). And with assembler, since it is so low
level, even if I have to rip out parts of my app do to say user input,
I have to rip and throw out more in general, which seems to defeat part of
the point of it all. I can see if we're talking about jamming something
into a talking Coke Machine, or need something kick butt in say a device
driver, but you can count me out of doing say my business apps in assembler
(and yes, I know what it is like doing so).