I think we are in agreement here, Chris. My point is that the error detection and correction is now done at levels where there is not much need to use earlier and inefficient methods like parity bits set aside. We use protocols like TCP and IP and layers above them and above those to maintain the integrity of packets and sessions and forms of encryption allowing things like authentication. There is tons of overhead, even when some is fairly efficient, but we hardly notice it unless things go wrong.
So written language sent (as in this email/post) does not need lots of redundancy and all the extra effort is, IMNSHO opinion, largely wasted. If I see a bear, I do not wish to check their genitals or DNA to determine their irrelevant gender before asking someone to run from it. If I happen to know the gender, as in a zoo, gender only matters for things like breeding purposes. I do not want to memorize terms in languages that have not only words like lion and lioness or duck and drake and goose and gander, but for EVERYTHING in some sense so I can say the equivalent of ANIMAL-male and ANIMAL-female with unique words. Life would be so much simpler if I could say your dog was nice and not be corrected that it was a bitch and I used the wrong word endings. If I really wanted to say it was a female dog, well I could just add a qualified. Most of the time, who cares? The same applies to so much grammatical nonsense which is also usually riddled with endless exceptions to the many rules. Make the languages simple with little redundancy and thus far easier to learn. I can say similar things about some programming languages that either have way too many rules or too few of the right ones. There are tradeoffs and if you want a powerful language it will likely not be easy to control. If you want a very regulated language, you may find it not very useful as many things are hard to do ad others not possible. I know that strongly typed languages often have to allow some method of cheating such as unions of data types, or using a parent class as the sort of object-type to allow disparate objects to live together. Python is far from the most complex but as noted, it is not trivial to evaluate even the syntax past errors. But I admit it is fun and a challenge to learn both kinds and I spent much of my time doing so. I like the flexibility of seeing different approaches and holding contradictions in my mind while accepting both and yet neither! LOL! -----Original Message----- From: Python-list <python-list-bounces+avi.e.gross=gmail....@python.org> On Behalf Of Chris Angelico Sent: Monday, October 10, 2022 11:24 PM To: python-list@python.org Subject: Re: What to use for finding as many syntax errors as possible. On Tue, 11 Oct 2022 at 14:13, <avi.e.gr...@gmail.com> wrote: > With the internet today, we are used to expecting error correction to > come for free. Do you really need one of every 8 bits to be a parity > bit, which only catches may half of the errors... Fortunately, we have WAY better schemes than simple parity, which was only really a thing in the modem days. (Though I would say that there's still a pretty clear distinction between a good message where everything has correct parity, and line noise where half of them don't.) Hamming codes can correct one-bit errors (and detect two-bit errors) at a price of log2(size)+1 bits of space. Here's a great rundown: https://www.youtube.com/watch?v=X8jsijhllIA There are other schemes too, but Hamming codes are beautifully elegant and easy to understand. ChrisA -- https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list