[11152] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

It's Time to Abandon Insecure Languages

daemon@ATHENA.MIT.EDU (James A. Donald)
Fri Jul 19 23:56:50 2002

From: "James A. Donald" <jamesd@echeque.com>
To: cryptography@wasabisystems.com
Date: Fri, 19 Jul 2002 17:12:08 -0700

    --
On 19 Jul 2002 at 7:44, Andreas Bogk wrote:
> Actually, there are a couple of languages out there that beat=20
> C/C++ both in terms of efficiency *and* safety.  The=20
> International Contest for Functional Programming has been won=20
> consistently by teams *not* using C/C++, and that's not because=20
> nobody tried.

I do not wish to start a language holy war, but I have full life=20
cycle experience in various projects in various languages, and my=20
experience was that if you use any language other than C/C++=20
ninety percent of the project goes much faster, and has far fewer=20
bugs than C++, and the remaining ten percent, which you have to=20
deliver in order to ship, involves a large number of horrible=20
hacks which effectively negate all the safety features of the=20
language and environment, take a very long time, and lead to all=20
sorts of problems.

> If we understand that C/C++ are bad languages, I think it's=20
> about time to question the justification of using operating=20
> systems written in these languages as well.

Why, I ask, is just about everything that large numbers of people=20
use written largely in these languages?

=46rom my experience, the answer would be that stuff written in=20
other languages was never ready to ship.  It was always=20
"essentially complete", and "completed except for integration and=20
install issues", and "ninety nine percent complete", and "working,=20
bug free, and fully deliverable, but there are some matters that=20
have to be resolved before we deliver".

I used to think that a good compromise was to write the gui in=20
visual basic, (or these days in flash and html) and drop into C as=20
required to handle the internals.  This does lead to a deliverable=20
product in a reasonable time -- but after delivery one still finds=20
oneself needing to rewrite stuff into C++ that was in visual basic=20
or flash script.

As a result of my full life cycle experience on a variety of=20
projects, I am coming back towards the view that one might as well=20
write the whole damn thing in C++, rather than discovering after=20
delivery what parts really should have been written in C++.

Of course that sounds much like the old fogy argument, that one=20
should write everything in assembler, because one needed to write=20
some things in assembler.  As compilers improved, that argument=20
became obsolete.

Perhaps with C# and .net the old fogy argument for C++ has also=20
become untrue -- but it was still true pretty recently.=20

    --digsig
         James A. Donald
     6YeGpsZR+nOTh/cGwvITnSR3TdzclVpR0+pr3YYQdkG
     YSrvoU0D3akuA2g2heOzqPt8gzWX6imCFjjDSDE4
     2swXqrKC3hDGNG8gjjm9oIkzGoL63EAnI+jlRT98v


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@wasabisystems.com

home help back first fref pref prev next nref lref last post