This reminds me of the recent DHH TypeScript kerfuffle. Imagine doing a port like this without static types. Every change you make you have to build, launch, look for a crash. Times like this you are so happy you built things in a more refactorable language and used a good architecture.