Hmm. In the QuestView product, we were using a sort of a
cobbled-together OPM version of a service program before there was such
a thing as a service program, or such a thing as ILE: such
"pseudo-service-programs" take an opcode to determine which routine to
invoke. And even though the server on our Wintouch product is almost
entirely written in ILE (both C and RPG), it still has an OPM MI
"pseudo-service-program" that contains a number of routines that we
prefer to keep in OPM MI.
And that, I think, brings up another strength of ILE that I don't think
anybody else has mentioned yet: it allows you to incorporate mixed
languages in a single PGM or SRVPGM object, whereas in OPM, if you want
to combine multiple languages in order to accentuate their strengths and
minimize their weaknesses, you had to do it in separate PGMs.