On 13/10/2010 02:40, Steve Howell wrote:
On Oct 12, 5:54 pm, Lawrence D'Oliveiro<l...@geek-
central.gen.new_zealand>  wrote:
In message<mailman.1606.1286889135.29448.python-l...@python.org>, D'Arcy

J.M. Cain wrote:
On Tue, 12 Oct 2010 23:34 +1300
Lawrence D'Oliveiro<l...@geek-central.gen.new_zealand>  wrote:

Symmetry is always a tricky balance in programming languages.

Is that what we used to call “orthogonality”?

No, orthogonality is something else.  "Orthogonal" means "perpendicular
to."

The appropriate meaning is ‘being able to combine independently” (as in the
orthogonal decomposition of a Fourier transform). An example of contemporary
usage, from the “Revised Report on the Algorithmic Language ALGOL 68” (1974,
I think):

     0.1.2 Orthogonal design
     The number of independent primitive concepts has been minimized in
     order that the language be easy to describe, to learn, and to implement.
     On the other hand, these concepts have been applied “orthogonally” in
     order to maximize the expressive power of the language while trying to
     avoid deleterious superfluities.

So “orthogonality” has to do with use of minimum number of primitive
components (operators, object types) in a maximum number of meaningful
combinations.

Lawrence, I was actually talking about symmetry, not orthogonality.  I
was making the observation that Python doesn't always strive for
symmetry as its #1 driving concern (as well it shouldn't).  I think
your definition of orthogonality is more what Python is about.  I'd
say that symmetry and orthogonality go hand in hand for most
situations.   Symmetry often helps minimize the number of primitive
components, for example.  But sometimes symmetry arguments can be
forced or just be made on a weak foundation.

Someone (Niklaus Wirth?) once said something about how a simpler
language isn't necessarily easier to learn. Pascal, for example, makes
a distinction between procedures and function, which can help to
prevent some bugs, and Python forbids assignment in expressions, which
also helps to prevent some bugs.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to