#IBM_i

2024-05-18

Современный RPG — что может и зачем нужен

RPG - это совсем не то, что приходит на ум обычному человеку. Это не только ролевые игры (Role Play Games), но еще и язык программирования. Здесь уже была статья Первый взгляд на RPG: оказывается, это не только ролевые игры , но она носила достаточно обзорный характер и не отражала современного состояния дел. Будучи “широко распространенным в узких кругах” (достаточно сказать что более 80% кода на платформе IBM i написано и пишется именно на RPG), это язык практически не используется за пределами этой платформы. Да, были попытки распространить этот язык за пределы его родной платформы - компания ASNA выпускала свою версию Visual RPG (в т.ч. и для .NET), но широкого распространения все это не получило. Стоит сразу отметить, что RPG не является ЯВУ общего назначения. Это специализированный язык для работы с БД и коммерческих расчетов. Именно так его и надо воспринимать. И тут сравнения “что лучше - RPG или C/C++/C#/Rust/[подставить по вкусу]” бессмысленны. RPG создавался и развивался для решения вполне определенного класса задач и там он хорош - эффективен и прост. Для решения иных задач он будет крайне неудобным. Данная статья ни в коей мере не является пособием или референсом по языку. Здесь опущены многие моменты и не дается полного описания всех функций и особенностей. Это просто попытка в общих чертах обрисовать что из себя представляет современный RPG, где, почему и зачем он используется.

habr.com/ru/articles/813015/

#IBM_i #RPG #RPGLE

2024-05-07

IBM i: системные очереди данных

IBM i (AS/400) является "объектной" системой, построенной на концепции "все есть объект". У каждого объекта есть имя (может меняться в течении его жизненного цикла), тип (устанавливается единожды при создании и далее не меняется) и, в некоторых случаях, атрибуты ("подтип", аналогично типу, устанавливаются при создании и не могут быть изменены). Также объект может иметь текстовое описание (необязательное) - строка до 50-ти символов, которое может быть задано как при создании, так и после. Действия, разрешенные над данным конкретным объектом, определяются его типом. Простейший пример - тут нельзя открыть программу в hex редакторе и поправить пару байтиков - такая операция просто не предусмотрена для объекта типа *PGM. Существует очень большое количество типов системных объектов, предоставляющих большие возможности для разработчика. Цитата из предисловия к книге Френка Солтиса "Основы AS/400" :

habr.com/ru/articles/812605/

#IBM_i #Queue #*DTAQ #*USRQ

2024-05-04

Standard Time как его видит IBM

Более 6-ти лет занимаюсь разработкой под IBM i (бывшая AS/400). В основном, конечно, это работа с БД и разная бизнес-логика, но иногда приходится и что-то низкоуровневое писать. Не так давно занимался разработкой удобного и простого в использовании API для работы с User Queue (есть на АС-ке такой системный объект - очередь *USRQ). И в заголовке извлекаемого из очереди сообщения есть такой параметр - message enqueue time (время размещения сообщения в очереди). Который описан как _MI_Time. Которое, в свою очередь, определено как

habr.com/ru/articles/812275/

#AS/400 #IBM_i #UnixTime #Standard_Time

2023-12-25

Внедрение персистентной памяти: добро пожаловать в революцию?

Следующим шагом эволюции компьютеров (который уже буквально на пороге) может стать постоянная энергонезависимая память большой ёмкости . Твёрдотельные накопители на несколько терабайт обеспечивают одновременно и длительное хранение данных, и функции оперативной памяти. Это идеальный путь для развития компьютерных систем, так как он устраняет одно из фундаментальных противоречий современной компьютерной архитектуры. Но он вполне может хорошенько перемешать фигуры на доске существующей компьютерной индустрии, поскольку придётся изменить не только компьютеры, но и софт.

habr.com/ru/companies/timeweb/

#timeweb_статьи #Phasechange_memory #PCM #3D_XPoint #ReRAM #Phantom_OS #IBM_i #Advanced_Science #ОС_Фантом #Дмитрий_Завалишин #слоистые_никелаты

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst