Good to see Ian posting again in: A Python Poka-Yoke (said as if I have been consistent in my posting
Good points, on taking a Japanese quality assurance technique and applying it to software based on stuff from MemoRanda by Keith Ray.
We often see programminmg languages and software applications judged by speed or user friendliness, yet it would be very interesting to see them judged by the number of defects that result from their use.
For example, it has been part of folk wisdom that the first WYSIWYG word processors lowered the document quality in terms of spelling and grammer as the writers spent more time on playing with layout and fonts. However, a big win for me is background spell checking, seeing the red wavy lines as I type is definitely better than an end of process spell check.
In programming I can immediately think of 4 big wins
- minimized typing: verbose languages lead to poor code as
- you shorten what you can control to reduce typing time: that means short variable names which means harder to read code
- critical things are hidden in masses of characters
- you code verbose code to avoid re-typing and miss things you should have changed
- strict type checking
- obvious I think, if the language cannot tell that x is a string or an integer then lots of easy mistakes are not caught early.
- automatic memory allocation/collection
- a big winner in my book
- rapid type code to run cycles.
- if you have never had time to make a coffee each time you compile then you don’t know how lucky you are.
So what wins for me? Well at the moment Python scores better than anything else I have used (especially when you add the indentation for block structures which must score highly on any Poka-Yoke scale).