The spelling of English words gives you two separate clues:
1. How it is pronounced.
2. Its etymology and what it means.
Because pronunciation has changed over time and changes across regions, these two features are in conflict. If we made spelling uniformly reflect (current, in some given place) pronunciation, then we would lose clues as to etymology and meaning.
For example, an English speaker can reasonably guess that "native", "nation" have related meanings because of the shared "nat". If we made the spelling follow pronunciation and did "naytiv" and "nayshun", some of that is lost.
Ideally, pronunciation would be fixed across time and place so that a language's spelling reliably reflected both meaning and sound. But that ain't how humans work.
In written languages that do this "better", it's mainly through some combination of:
1. The written language is simply younger than written English and thus has had less time for pronunciation to diverge.
2. The language is used by a smaller, more homogeneous community.
3. Elites exert political force to prevent pronunciation or meaning from changing and to reject loanwords at the loss of expressivity.
English does none of those things. It's been around a long time, has spread throughout the world across widely disparate communities, and is happy to absorb any good idea it finds in any other language. It is the Perl of written languages, for better or worse.