https://medium.com/@amulya_k/the-unifying-threads-of-programming-languages-exploring-their-common-ground-acd3a2cd1f23