Carl Banks <[EMAIL PROTECTED]> writes: > FWIW, when I posted my comment about C++, I was mocking the article > writer's notion that it was static typing and compile-time checking > that made Java and C# "safer" for newbies, by presenting an example > that clearly defied that. I was taking it for granted the C++ is > notoriously dangerous and newbie-unfriendly.
Well, sure, but the danger from C++ is precisely that it is untyped (so you can dereference invalid pointers, etc). Yes, C++ has a type system, but it leaks, so the most you can say about it is that it's better than nothing. A better example than C++ might have been Ada, which is in fact designed to be newbie-friendly in the sense that one of its design criteria is that engineers who are not software specialists (e.g. jet engine designers) are supposed to not be led astray when reading it. I have the impression that Ada programs are much less likely to crash than C++ programs, unless you set special compiler flags to make them unsafe (e.g. by disabling subscript checking). Yes, good programmers can keep track in their heads what types their programs are supposed to compute, so Python doesn't stop them too much, and the dynamicness makes some things easier (e.g. deserializing arbitrary structures). But it's the same way with assembly language. It just seems to me that there is a killer language just around the corner, with Python's ease-of-use but with a serious compile-time type system, maybe some kind of cross between ML and Python. I don't think Coq (http://coq.inria.fr) is beginner friendly enough yet ;-). -- http://mail.python.org/mailman/listinfo/python-list