On Monday, December 16, 2013 8:33:11 PM UTC-6, Steven D'Aprano wrote: > Of course, this is very hard to measure: different languages require > different amounts of code to get something useful done. Different > languages get used for different things -- there are no operating system > kernels written in COBOL, although there are plenty of business apps > written in C. There are vast differences in software methodologies. But I > think that people intuitively grasp that if something is hard to learn, > as C is, chances are very good that it is equally hard to use even for > experts. Why do you think that C programs often have so many bugs and > vulnerabilities, such as buffer overflows and the like? It's not just > down to lousy coders.
I have a real life example of such horrendous design flaws involving a highway intersection. A while back, can't remember when, a friend of mine was involved in an accident that was his fault. This surprised me because i consider this person to be a very cautious driver. After checking records, i was amazed to find a high occurrence of traffic incidents that mirror the exact conditions of my friends accident, and in almost every incident, the person at fault runs the thru the red light. This seemed odd because how could so many people be making the same mistake? The sheer number of signal violations would exclude malevolent intentions. So being the curious chap i am, i investigated further. I myself traveled the course my friend took the day of the fateful accident. The course involves starting from a traffic signal on one side of the freeway, following a long left turn lane under the freeway, and then emerging on the other side to cross the opposing feeder road -- it is a this point that the accidents happen with great frequency! There are two distinct design flaws contributing: 1. The bridge itself is obscuring the view of the second signal. The second signal is not visible until the motorist are very close -- much too close in my opinion! But i feel #2 is the *real* contributing factor! 2. The second signal and the first signal are not synchronized, creating an inconsistency between both signals. For example, sometimes you can catch both lights green, but sometimes, the second light will change unexpectedly whilst you're navigating the long left turn, THUS requiring all traffic to stop under the freeway before crossing the opposing feeder road. ...and the results of this poor design are resulting in injuries on a regular basis!!! The problem is, sometimes people don't stop. Sometimes they simply "assume" that the light will be green because stopping under a bridge does not "feel" normal. Of course they must accept the blame for not being more alert, however, at what point does the fallibility of humans excuse poor interface design? Humans are by nature INCAPABLE of maintaining perfect alertness, and driving requires more processing than the human mind can possibly muster. Your mind is constantly attempting to "predict the future" outcome of current events, and it is this unconsciousness mechanism that, when overloaded, will force the less acute modality of intuition to propagate up and take full control. It is for that very reason that we must design interfaces with the fallibility of human operators in mind -- at least until we can remove the human from the equation. We MUST strive to achieve the highest level of intuitiveness whilst eliminating any and all inconsistencies from the system. -- https://mail.python.org/mailman/listinfo/python-list