За что МЫ не любим GPSS.
Для тех, кто его знает.
Всё нижеследующее относится к GPSS – World, но большая часть текста справедлива и для других систем GPSS.
Причины нелюбви языка GPSS программистами – я перечисляю ниже, вероятно, это далеко не всё.
Не программисты – не любят GPSS по тем же причинам, по каким они не любят программирование.
1) В GPSS не видно, где блоки, а где команды. Они могут перемежаться в модели друг с другом, а запомнить где кто - не просто.
2) СЧА в GPSS имеют странный вид: одна или две буквы, а затем – уточнение, номер или имя объекта. Причём номер ничем не отделён от буквенного обозначения, а имя – идёт после значка $.
3) Иногда числовая часть вообще не имеет смысла, например, Xn1, C1, Ac1, M1.
4) Многие простые имена заняты под СЧА, например, N, W, X, P.
5) Неоправданные чудеса, например, в качестве индексов матрицы можно использовать только P – параметры.
6) Чудеса продолжаются, одну и ту же функцию или таблицу с различными аргументами нужно описывать многократно.
7) После вынужденной остановки по Halt, пункт Report недоступен, и его следует вызывать как пользовательскую команду в окне Custom.
8) Создаются бесконечные окна компилятора и отчётов при многократном запуске модели. Их нужно всё время закрывать и, сгоряча можно закрыть саму модель, так и не сохранив последнюю версию.
9) Модель не является текстом, в каком – либо стандартном формате. Почему это так, не понятно.
10) Язык не содержит средств, для структуризации модели, то есть явного разделения её на подмодели, которые можно хранить в одном файле, или в отдельных файлах, и использовать многократно, в частности, без дополнительной компиляции. Более того, в соответствии с пунктом 1, возможность этого вообще не предусмотрена.
11) Многие имена в системе вообще не описываются, например, очередей, устройств, списков пользователя, групп… Это провоцирует ошибки типа использования в модели сходных, но различных имён. Поэтому нужно всегда проверять стандартный отчёт на предмет появления «лишних» имён.
12) В модели нельзя просто и естественно использовать несколько массивов объектов, например, очередей, устройств, X и P параметров, и так далее, а, «по жизни», такая необходимость есть.
13) Очень не просто работать с переменными и текстовыми файлами для внешней настройки модели, что провоцирует использование констант прямо в модели, и бесконечные повторы фрагментов текста, различающихся только числовыми константами.
14) Странные обозначения для косвенного обращения к СЧА. СЧА*<имя или номер P - параметра>. Косвенные обращения вообще возможны только с помощью P – параметров.
15) Странный символ для знака умножения - #.
Продолжите список сами. Жду ваших писем.