A few days ago Larry Ferlazzo posted this Arika Okrent video on English spelling.
You can also find out more about English spelling by reading David Crystal's article on The Guardian.
It starts back around the year 600 A.D. when Christian missionaries arrived in England with their Roman alphabet. They found the Anglo-Saxons, who spoke a Germanic language, with different kinds of sounds like "th" and "x" that Latin didn't have. So scribes came up with their own ways to write them. Over a long time everyone finally settled on "gh" for the "x". But there's no "x" in thought… anymore!
The pronunciation changed. Over hundreds of years "x" turned to "f", in words like cough and enough or disappeared entirely in words like though or thought. As those changes were getting underway, the printing press was invented and that was great for the spread of written English, but unfortunately it was also great for the spread of the spellings that printers had decided on before the pronunciation changes already in progress were complete.
Other pronunciation changes that happened over this time period were the loss of certain sounds at the beginning of words, and an almost complete overhaul of the entire vowel system of English known as the great vowel shift.
As if that wasn't complicated enough, the French-speaking Normans had taken over in 1066, and French was the language of educated culture, courts and universities in England for a few hundred years. Those years left their mark on English vocabulary and spelling. So for the most part, the answer to "why do we spell it that way" is either "because we used to pronounce it that way" or "because that's how they did it in French." But sometimes we can't blame either of those things.
In the late 1500s, English spelling had stabilized well enough, but some renaissance scholars who were all fired up about classical Latin and Greek decided not to leave well enough alone. They thought the glory of the ancient world should be better reflected in the current one. They decided words like receipt, salmon, indict, and debt, needed to put their Latin roots on better display, so they purposely added letters that no one had ever pronounced in English. They also found ways to connect words to their Greek roots and give them a fancier, classical look to replace homelier, but more sensible spellings.
And sometimes the classical craze went a little too far. The word island, for example, came from an Old English word iglund. It didn't come from Latin at all. And people were happily pronouncing it and writing it as iland until someone picked up an "s" from the Latin insula and stuck it where it was never meant to be.
Finally, we have a whole bunch of words that we simply borrowed from other languages as is, including another later wave of French words that we left in their original spellings. English loves to borrow from everywhere. Sometimes we borrow from languages that bring their own silent letters and spelling issues, and they then become our spelling issues too. And sometimes, we borrow the same word from two different places.
That's what happened with colonel. We borrowed it from French, along with a lot of other military vocabulary, in the 1500s. Back then they said it and spelled it as coronel. Later English scholars stared translating old Italian military treatises, where it was colonello. Time goes by, and wouldn't you know it, people are spelling it the Italian way and pronouncing it the French way. Meanwhile, the French switched over to colonel in spelling AND pronunciation. How boring is that?
So there's a lot of blame to go around for the spelling situation we find ourselves in. You might not find any comfort in that the next time English sneaks up on you with another crazy spelling prank, but try not to get too mad at English. It's not an arbitrary meanie. It’s just a victim of a complicated history.