Каковы современные альтернативы старому языку сценариев JCL (Job Control Language) от IBM?
В течение последних нескольких лет клиент работает над переписыванием/капитальным ремонтом своей старой системы мэйнфреймов с переносом в облако. Переписывание в основном выполнено на C# .NET Framework с небольшим количеством C++, создающим виртуальную машину, имитирующую старый мэйнфрейм на серверах Azure. Прямо сейчас они используют свой старый JCL для обработки больших частей своей базы данных в новой переписанной версии.
Для тех, кто не знаком с JCL в устаревшей среде, клиент использует его для указания частей базы данных, вызова приложений/процессов с параметрами и передачи файлового ввода-вывода в/из соответствующих приложений. Он во многом читается как старые перфокарты и не обладает какой-либо персональной вычислительной мощностью (основные арифметические/логические ключевые слова, обработка памяти или использование каких-либо расширений модулей/библиотек).
Сейчас они рассматривают Lua или TCL как потенциальную замену для встраивания в свою новую систему.
Какие альтернативные языки вы использовали для написания сценариев управления процессами? Плюсы? Минусы?
Во-первых, у JCL есть некоторые из этих возможностей, а во-вторых, JCL не является языком сценариев. REXX — это язык сценариев. JCL гораздо больше похож на CLI для z/OS, где вы указываете программу для запуска, различные аргументы программы и информацию о том, с какими данными следует запускать программу. Есть некоторые возможности макросов/символов.
Вы также можете взглянуть на Python или (учитывая, что вы также используете C# и поэтому, вероятно, рассматриваете возможность работы в Windows) Powershell. В среде Unix первым вариантом будет bash (даже если вы откажетесь от него).
Однако на этот вопрос нет однозначного ответа, по крайней мере, с учетом того небольшого количества информации, которую вы предоставили; есть много вариантов. Если у вас есть язык или базовая библиотечная поддержка для необходимых вам операций, вы сможете выполнить эту работу.
Какое преимущество Python в управлении заданиями имеет перед некоторыми другими встроенными языками сценариев, упомянутыми выше?
Некоторое время назад я предложил им Powershell, но они посчитали, что передать его команде по обслуживанию продуктов было слишком сложно. Отсюда интерес к Lua из-за его более простого синтаксиса и простоты изучения.
Любой язык сценариев решит задачу создания сценариев :-) Lua легче всего встроить в хост-приложение C, но он имеет очень мало готовых к использованию библиотек.