LINUX.ORG.RU

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


0

1

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

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

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

Что имеено?
предположим, что WordPress, PHPbb, ... -> python/django

Зачем?
мне скорее интересен сам процесс. Прошу на этом пункте не заострять внимание!


>мне скорее интересен сам процесс. Прошу на этом пункте не заострять внимание!

Если бы тут были психопатологи, они бы сильно заинтересовались именно этим пунктом.

//wfrr

anonymous
()

б: нужно просто правильно описать имеющийся функционал.

anonymous
()
Ответ на: комментарий от anonymous

саркарз_он
предположим есть желание, чтобы лубимая цмс была под Ъ-язык
саркарз_офф

есть коммерческая выгода, которую не хочется озвучивать...

xhat
() автор топика
Ответ на: комментарий от xhat

вариант 3 притом постараться сделать эо автоматизированно. но вотще видно что тебе нечем занятся

//wfrr

anonymous
()

в «исходниках» цмс окоромя пхп очень немалый процент занимают картинки, цсс и прочее джей-эс непотребство, так что пыху там не больше четверти;
даже если два ЯП тюринг-полные и все такое, это не значит что преобразования с одного в другой будет успешным и к тому же оптимальным;
алсо пейтон почти такой же тормозной что и пых

anonymous
()
Ответ на: комментарий от anonymous

>в «исходниках» цмс окоромя пхп очень немалый процент занимают картинки, цсс и прочее джей-эс непотребство, так что пыху там не больше четверти;

ну это понятно

алсо пейтон почти такой же тормозной что и пых

цель - не сделать быстрее. это не нужно. да и скорость в основном упирается в бд.

xhat
() автор топика

>PHPbb, ... -> python/django

Если сделаешь это, сообщи пожалуйста. благодарность моя не будет знать границ)

pilotys
()

вариант Б. Ибо пожелать изучить исходники ВП и прочего пхп поделия можно только врагу.

ciss
()

Вариант б, разумеется. PHP даже нельзя сравнивать с Python, настолько PHP убог и никчемен.

ilias
()
Ответ на: комментарий от ilias

>PHP даже нельзя сравнивать с Python, настолько PHP убог и никчемен.

ППКС

xhat
() автор топика
Ответ на: комментарий от uju

>Спасибо за идею, но писать я буду на ruby on rails.

когда дочитаешь учебник на wikibooks? ^_^

По сабжу:всегда делал по варианту В. Только не «один в один», но тем не менее. Самый кайф - это оптимизация конечная. Я так переписывал бота с питона на руби. На руби оказался быстрее и я начал оптимизировать на питоне, потом на руби, потом на питоне, потом опять на руби. Остановился через недели две. :)

chinarulezzz ★★
()
Ответ на: комментарий от chinarulezzz

Нет, делать буду тогда, когда изучу основы программирования, руби, рельсы, веб-технологии и мускуль.

uju ★★
()
Ответ на: комментарий от uju

Спасибо боженьке, он услышал мои молитвы. До этого дня не доживу ни я, ни Лор, ни мир, при твоих альтернативных способностях :)

chinarulezzz ★★
()

Бредовая затея, у пхп и питона принципиально разная идеология. Другое дело если вы возьмете за основу архитектуру базы данных и просто перепишите функционал цмс уже, например, на питоне. Просто так, не получится, первое с чем вы столкнетесь в питоне, это с извлечением request переменных, если в пхп есть суперглобальные массивы для них, то в питоне вам придется писать ручками например используя cgi.FieldStorage, свой интерфейс или использовать готовый фреймворк где эта работа проделана. Не говоря уж о том что в питоне в стандартной библиотеке питона нет модуля по работе с сессиями, вам нужно будет написать свой механизм или использовать фреймворк с поддержкой вебсессий. Итак я могу долго перечислять особенности... При всем этом хочу сказать сразу сравнивать питон и пхп - это всеравно что сравнивать авиалайнер и аэроплан. Пхп очень убогий язык

yanka ★★
()
Ответ на: комментарий от anonymous

>алсо пейтон почти такой же тормозной что и пых

Бред, все корректные бенчмарки говорят о превосходстве питона, причем разница порой на порядок. Вот если бы вы заявили , что перл шустрее, я бы согласилась Да и это не главное питон просто очень хороший язык!

yanka ★★
()
Ответ на: комментарий от Terrens

> Zend Optimizer докажет!

Ну вы, блин, сравнили кусок проприетарщины с открытым изначально модульным компилируемым Питоном.

ilias
()
Ответ на: комментарий от Terrens

И даже с учетом использования Zend Optimizer он уступает питону по скорости исполнения да и памяти жрет больше, без зенда как я говорила разница в разы.

yanka ★★
()
Ответ на: комментарий от uju

> Спасибо за идею, но писать я буду на ruby on rails.

щ-Щ, vkt! Ты освоил ещё одну команду кроме puts?)))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.