On Friday 13 May 2011 18:47:50 Hans Georg Schaathun wrote: > On Thu, 12 May 2011 23:20:20 +1000, Chris Angelico > > <ros...@gmail.com> wrote: > : Writing a program requires expertise both in programming snip... > > And the main difference here, is that the civil engineers > have a much better language to share information. The best > programmers have is the programming language, and we ought > to make that as good as possible.
As an old Civil Engineer and a retired educator of Civil and Aeronautical Engineers, I want to get at the end of the long thread. Early in the thread I (wrongly) thought that the discussion just did not make sense. Much as has been said, makes a good sense, though some of it is hardly relevant. So what is the purpose of this discussion - is it to proffer advice to the "Benevolent Dictator for life" and to his cohort or is it to better understand the programming language Python? In relation to the first part of the question is that the aim is far too ambitious - the success of Python language is enough to suggest that Guido and his team do not need advice and they will ask for it if they really do want to hear the opinions about it. The job they have done in developing the language is admirable and the users better concentrate on trying to understand it better. The second part of the (rhetorical) question is that the answer depends what the designers of Python have chosen as criterion for "True" or "False". In my little effort to present Vector algebra in an easy to use manner (refer to thread of yesterday: "Python 3.2 Vectors.py module") it was necessary to answer the question of what could and what should be used to determine what the instruction '==' or '>=' should mean and what should be used for comparison. The only one that I could find useful was the equality - two vectors are equal if and only if all three of their components are equal. As the components (for purposes of engineering analysis) are real numbers, even the postulation of (v1.x == v2.x) is problematic, as has been pointed out in the thread (as the "floats" are subject to unavoidable round off errors). So the answers are not necessarily unique and one must consider what the program is supposed to achieve. BTW, the "Vector" class inherits from the list, which avoids "reinventing the wheel". The other operators are assigned specific purposes, viz. v1 * v2 is a scalar product of two vectors (the result is a scalar, float), while v1 * r (where v1 is a vector and r is a float) is scaling the size of vector by factor r, (the result is a vector) i.e. each component of v1 is multiplied by r. Vector product (cross product) is shown as v1 ** v2 (the result is a vector). The purpose of choosing this scheme is neither linguistic, nor philosophical - it is practical, just as the vector algebra is practical. It helps to visualise solutions of physical problems (or, if you prefer, engineering problems). OldAl. -- Algis http://akabaila.pcug.org.au/StructuralAnalysis.pdf
-- http://mail.python.org/mailman/listinfo/python-list