Портирование программы из одного языка программирования в другой

Сразу скажу, что этот вопрос следовало бы поместить в блог "Я безумный" или хотя бы "Я очень любопытный".

Предположем есть open-source программа(под GNU General Public License) и есть необходимость перенести ее полностью на другой язык программирования(очень прошу не спрашивать зачем), исходники программы весят около 10 мб. Также есть уверенное знание обоих языков программирования, но нету опыта проектирование/создания столь больших систем.

Вопрос в том, как это сделать:
вариант а) переписать каждый класс один-в-один, благо технология позволяет.
вариант б) написать все заново, не смотря в исходники, чтобы программа полностью использовала преимущества системы куда ее портируют.
вариант в) сначала написать один-в-один, потом оптимизировать/частично переписать.

вариант а - наиболее быстрий по времени; вариант б - мне не сделать.

Так вот, исходя из вышеописанного, как обычно в таком случае поступает Ынтерпрайз? насколько вариант а - реалистичен(а то мало ли я еще студент и чего-то в этой жизни еще не понимаю)

Заранее благодарен за ответы!

1 ответов


Буду абсолютно краток(в ответе):
Напишите оболочки для всех классов, функции и т.д., используемые в исходном приложении. То есть, Ваша
"новая" программа просто вызывает оригинальные функции. А код вызывающий оригинальные функции должно быть
переписано так, чтобы вызвали вашы оболочки.
После, когда все уже заоболочено, вам будет необходимо уже переписать алгоритмы(вернее менять), если не
такие "оптимизированные" как Вам хотелось бы.
+ в ходе работы после каждой добавленной строчки компилируйте код, чтобы избежать непонятных ошибок как можно раньше.
Вы не можете проектировать программу на основе другой, если не представляете как она спроектирована, сперва читайте документацию оригинальной программы.


"Ынтерпрайз" изначально выбирает кроссплатформенный фреймворк для разработки. ;)
Если уже такое случилось, то стоит поискать возможность запуска скомпилированного приложения на новой платформе. И только если таких возможностей нет, начинать писать. По какому из вариантов - зависит от деталей проекта, исходной и конечной платформы и фреймворков.


А какой язык то собственно? Можно уточнить "откуда и куда?"


Думаю, любой вменяемый разработчик в первую очередь задался бы теми вопросами, которые вы просите не задавать.
И полагаю, что "энтерпрайз" будет до последнего избегать столь клинической ситуации.