Who needs exceptions (was Re: Two languages, too similar, competing in the same space.)

Cliff Wells logiplexsoftware at earthlink.net
Sun Dec 30 17:58:19 EST 2001


On 30 Dec 2001 14:36:28 +0100
Nils Kassube <nika at kassube.de> wrote:

> I never claimed that an OS should be written in Python. There are 
> several good all purpose languages who are better for this task,
> e.g. Lisp and Ada. 

Sorry, I was being somewhat facetious.  Unfortunately I am not familiar
with either Lisp or Ada so I can't comment on their appropriateness for
low-level work.  Since you aren't the first person I've heard advocate Ada
for this type of work, I have to wonder why it hasn't been done (or has
it?).  Lack of such an OS doesn't prove anything, but it does beg the
question.
 
> > develop run-of-the-mill applications in C.  Like any other language, C
has
> > places where it shines and places where it isn't really appropriate.
> 
> Yes, it really shines for security and stability problems. Heck, even
> bit-fiddling is better done using Ada. 

As I mentioned earlier, I don't know Ada, but I suspect insecure, unstable
software can be written in any language.  Familiarity with a language and
good design is the best way to avoid these problems.  This may be why C
retained its popularity for so long:  small language that's reasonably easy
to learn (both feature-wise and wart-wise).  As far as design, I will grant
that it can be difficult to maintain a good design in C for anything very
complex.  This is why I believe C to be a "better assembler".  Use it for
performance-critical code and then call it from a higher-level language
(like Python).

> BTW: 
> 
> int add_two_numbers(int a, int b){
>         return a+b;
> }
> 
> What's the meaning (semantics) of add_two_numbers(23575,23575)?

Hrm.  Don't like flaunting my ignorance on the list, but I don't see what
you're getting at.  On my 32-bit PC, it means 47150. 

I would say add_two_numbers() accepts two arguments of machine-word-size,
adds them and returns the machine-word-size result on the stack.  If the
result is greater than the machine-word-size, the result will be negative
(on a two's complement machine).  I'd probably return a long if that were
going to be an issue, or perhaps use an arbitrary-precision library.  

I think perhaps you are trying to point out something that I am too obtuse
to see.  Please feel free to enlighten me. 

Regards,


-- 
Cliff Wells
Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308
(800) 735-0555 x308




More information about the Python-list mailing list