Разные языки требуют разных парадигм.Вы определенно не пишете и не разрабатываете код, например, в.Matlab, Python, C # или C ++.Даже иерархии объектов сильно изменятся в зависимости от языка.
Тем не менее, если ваш код состоит из нескольких взаимосвязанных процедур, вы можете отказаться от прямого построчного перевода (каждый язык позволяет вам писатьдве или три взаимосвязанные функции, оставаясь при этом идиоматическими).Но это относится только к самым простым программам.
Создание прототипов на языке высокого уровня, а затем реализация той же идеи надежным и чистым способом на «производственном» языке - очень хорошая практика, но включает в себя дваочень разные вещи:
- Прототип на любом языке, который вы хотите.Протестируйте, поэкспериментируйте и убедитесь сами, что идея работает.Обратите внимание на общую картину, фокусируйтесь не на производительности, а на идеях высокого уровня.Обратите также внимание на трудности, с которыми вы сталкиваетесь при реализации, как вы снова столкнетесь с ними на шаге 2.
- Реализация идеи с нуля в производственной среде на языке X. Это будет быстрее, чем если бы вы этого не делалисделайте стадию прототипирования, так как большинство трудностей были встречены на стадии 1. Используйте идиоматический X и сосредоточьтесь на правильности.Обратите внимание на угловые случаи, общую надежность и, как только все заработает правильно, производительность.Вы заметите, что примерно половина вашего кода состоит из новых вещей, которые не появились в 1. (например, проверка ошибок, обработка угловых случаев, ввод / вывод, модульное тестирование и т. Д.).
Вы можете видеть, что построчный перевод, очевидно, не хорошая идея, поскольку вы не переводите в одну и ту же программу.
Кроме того, когда я не создаю прототип, я выбрасываю первую версию и создаю другую, которая мне нравится больше, т.е.Я нахожу себя прототипом!Реализация одного и того же дважды - не потеря времени, это нормальный процесс разработки.