Computer science is what makes that difficult. Getting bit-for-bit compatibility is extraordinarily difficult.
It is easier to try to reimplement a specification written in code than it is to reimplement a specification written in English. The former can at least be tested by actually running the code. The latter will always be unclear.