Writing one from scratch gives a lot of understanding to how it works under the hood and in the process you learn right phraseology and treat all languages as computational fronteds.