почему серверную логику пишут одновременно на двух языках
В данном случае Js используется для удобства вывода информации клиенту, к серверной части он никакого отношения не имеет. Серверная часть занимается тем, что проверяет полученные данные, сохраняет в базу и т.п. без участия в этом машины пользователя, а js у пользователя в браузере может проверить корректность введенных данных до отправки на сервер или просто сделать форму с красивой анимацией.
По факту в данном случае можно обойтись на клиентской части и без js, но тогда никаких ошибок при вводе неверных данных отображаться не будет.