Сап, погромисты, инженер подает голос.Есть расчетная программа, написанная на FORTRAN 66. Или может на ФОРТРАН-ДУБНА, я не ебу. Короче, для ЕС ЭВМ.Последний раз её редактировали не позже 1982 года. После этого её лишь перекомпилили для Винды, код не трогая.Теперь мне поставлена задача её переписать, добавив пару очень нужных фич. Плюс реализовать наконец интерфейс, нормальный ввод/вывод данных, вывод ошибок и прочее, а то пока расчет нормально запустишь, обматеришься.Но тут возникла проблема - я всегда все делаю в моем любимом Матлабе, но тут обязательно нужен exe-шник, поэтому он не подходит. На Фортране (им тоже на работе часто пользуюсь), как я понимаю, написать интерфейс будет очень сложно. Короче, я в затруднении.На каком языке это можно сделать с минимальными трудностями? Я правильно понимаю, что проще всего выучить этот ваш С++?
>>895929 (OP)я бы сделал dllку на фортране с апи, торчащим наружуну и gui на чем угодно после этого можно делать
>>895929 (OP)алсо, НЕ переписывай на другой языкохуеешь в процессеэто будет гораздо дольше, чем просто модифицировать старый код под новые потребности
>>895929 (OP)А как данные передаются в существующий бинарник и забираются из него? Может GUI с валидацией входных данных с внешней стороны прикрутить?
>>895948Боюсь, переписывать придеться. Прога очень старая и поэтому там много чего нужно будет дописать, список хотелок большой. А поскольку код совершенно не понятен (комментов нет, а go to сплошняком), я опасаюсь запутаться вконец.
>>895953Да текстовый файл обычный с исходными данными. Где-нибудь вместо двух один пробельчик поставишь и усе, сиди ищи.Ну вообще да, можно переписать тот же код на новом фортране, а потом прикрутить интерфейс на другом языке. Но не уверен, есть ли смысл - уж если переписывать, то единообразно.
>>895959>>895958Запасайся тогда тестовыми наборами (входные данные + результат). И сразу какую-нибудь обвязку сделай (на любом языке) для автоматизированой проверки. Если оригинальная программа считает быстро, то тестовый ответ можно и на лету ей генерить.
>>895958>Боюсь, переписывать придетьсяклассическая ошибка новичкану, чтож, ебись и переписывай с нуляты же можешь
>>895977Ну не скажи. Некоторые вещи на самом деле переписывать нужно.Но соглашусь с тем, что это нихера не просто. В таких вещах обычно много математики и посадить багу при ее переносе очень легко. Особенно с учетом того, что документация и способы верификации как правило давным-давно проебаны.
>>895980пффопу дали конкретное задание: прикрутить гуий, обновить ввод-вывод и обработку ошибоквместо этого он уже решил переписывать все нахуй зановотипичная ошибка новичка
>>896093>вместо этого он уже решил переписывать все нахуй зановоНу может мне удастся улучшить алгоритм. В конце концов времени прошло много и многое было не реализовано просто из-за ограничений тех компов.
Какие-то тут жопочтецы-телепаты, впрочем как обычно, предлагают лепить костыли не прочитав, что ОП там нужно новые фичи прикрутить. Есть подозрение, что для этого один хуй придется разбираться в недрах программы.А если заказчик готов платить, чтобы это говно переписали с чистого листа, то почему бы и нет. Костыли нужны, только если БЫСТРА.А интерефейс похуй, тут выше, очень верно подметили, раз на фортране нету графических либ, то имеет смысл сделать DSL в виде dll, и накрутить во все желаемые места, вплоть до слаки, лол. Вот тут, кстати, рассказывается https://habrahabr.ru/post/178717/ как фортран-кодец из C# вызывать.
>>896220>C#сразу иди нахуй
>>896176>удастся улучшить алгоритмчувакеще разу тебя конкретные задачи есть, которые ты озвучил, которые от тебя требуют сделатьдак делай их!просто модернизируй существующее приложениене будь долбоебомделай то, что тебя просят сделатьты же, блядь, на работе
>>896225А ты из кех будешь, из крестоопущенок или скриптодебилов?
>>896243Из богоподобных Qt-господинов
>фортран>Не позже 1982Пиздец просто, вся суть рашкованской "науки"
>>895948Есть такие поциенты после которых прошу действительно легче сделать по новой. Но это не часто
>>896264С каких пор рабы себя к богам относят?
>>896230>не будь долбоебом>делай то, что тебя просят сделать>ты же, блядь, на работеЛол. Мой начальник вообще сказал, чтоб я не копался в чужом коде и писал все это заново.
>имеет смысл сделать DSL в виде dll, и накрутить во все желаемые места, вплоть до слаки, лол. Ни слова не понял.
Короче, разбираться в коде придется полюбому, что верно подметил>>896220. Жалко только, что одно описание алгоритма потеряно (оно ещё кстати на печатной машинке написано было), а более короткое засекречено, работать можно только в помещении первого отдела, вынести не дают. Ладно, это мои проблемы.Значит текущий итог:1. Саму прогу перепишу на современный фортран с комментариями.2. С помощью матлаба буду запускать новую и старую проги с разными исходными данными и сравнивать результаты. Это я умею.3. После переписки отмодифицирую уже понятный код в соответствии с новыми требованиями.4. Снова проверю старую и новую версии матлабом. Правда здесь результаты уже имеют право несколько отличаться.5. Напишу интерфейс, который в итоге должен генерировать текстовый файл и скармливать его программе, а после окончания её работы подгружать в себя файл результата.Звучит понятно.Вопрос остался прежним - на чем лучше писать интерфейс? Ну чтоб совсем просто и понятно было.
>>896327> обязательно нужен exe-шникhttps://www.youtube.com/watch?v=VwGTTn-fAmAЧто тут сложного? -.-
>>896327а вообще, конечно, грустно что вы застряли на фортранах этих ваших. Писать интеграционные тесты на матлабе, кек. Содомиты.
>>896327> 5. Напишу интерфейс, который в итоге должен генерировать текстовый файл и скармливать его программе, а после окончания её работыэто называется костыль, гугли в сторону импорта библиотек:http://stackoverflow.com/questions/10317691/making-fortran-dll-and-calling-it-from-c-sharpу меня фсё.
Шарпоблядь, уебуй.
>>896230Ты тоже делаешь ошибку новичка, но другую. Иногда гораздо лучше потратить полгода на переписывание с нуля, чем полтора на добавление говна в говнокод и подпирание получившегося костылями.>>896327Почему фортран? Интерфейс можно склепать, например, на делфи и подключить библиотекой (или наоборот). Но если у тебя нет задачи написать именно на фортране, то я бы посмотрел на какие-нибудь другие языки. Даже чистая сисечка, наверное, лучше будет.
Пока спал придумал новую проблему. По идее, пользователь у этой программы один и он работает на windows 7 x64. Но в силу разных обстоятельств изредка подключается второй пользователь, а у того windows 2000 x32.Будет программа на C# работать изкаробки на таком старье или нет?>>896477>Но если у тебя нет задачи написать именно на фортране, то я бы посмотрел на какие-нибудь другие языки. Даже чистая сисечка, наверное, лучше будет.Ну на фортране определенно будет проще - ведь код уже написан, довольно большие части можно будет напрямую оттуда взять. Прога работает за доли секунды, поэтому возможное увеличение скорости от С мне не интересно, да его и не будет.>Интерфейс можно склепать, например, на Delphi и подключить библиотекой (или наоборот).Это уже я не хочу. Дельфи я все-равно не знаю, так лучше уж учить что-то современное и востребованное, чем старое и давно умершее.
>>896514А в чем проблема скомпелять две версии под 32 и под 64?Запакуй все либы в саму програму, чтобы никаких сторонних библиотек не требовалось, и вперед.Гуйню можно написать хоть на писюне, хоть на матлабе и тоже статически залинковать в стандалон, правда у меня такая программа запускалась столько же сколько сам матлаб.