VB6 в RPG
Одна и та же процедура, написанная руками на VB6 и на RPG. Она здесь, чтобы вы увидели, что меняется, а что остаётся, до того как кто-то назовёт вам цену.
Было · VB6
Public Function Interest(ByVal Balance As Currency, _
ByVal Rate As Double) As Currency
Interest = Round(Balance * Rate, 2)
End FunctionВо что это превращается · RPG
**free
dcl-s balance packed(11:2) inz(0);
dcl-s rate packed(5:4) inz(0.0425);
dcl-s interest packed(11:2);
interest = %dec(balance * rate : 11 : 2);
dsply ('INTEREST: ' + %char(interest));
*inlr = *on;Ниже одна процедура на двух языках. На настоящей системе тот же переезд идёт сразу по всему дереву: платформа читает все языки в нём параллельно, строит граф зависимостей, а границы режет инженер. Миллион строк это обычный размер такой работы, и она укладывается в тридцать дней.
Как это выглядит на всей вашей системе
На вашей настоящей кодовой базе тот же переезд отвечает на вопросы, которых пара файлов не покрывает: какие файлы уже никто не вызывает, какое батч-задание пишет в 02:00 запись, которую потом читает другое, и выдаёт ли переписанная версия те же числа, что ваши аудиторы видели в прошлом месяце. Аудит возвращает все три ответа за три-пять дней.