An aside: when you have two $LIST values, L1 and L2 ,that you want to concatenate then you can just compute L1_L2 and string concatenation will do the job. Some programmers loop over L2 one element at at time and add that element to the end of L1. This can take n-squared time based on some product of the $LISTLENGTHs of L1 and L2. Using string concatenation just depends on the sum on the lengths of L1 and L2.
Interestingly, for small examples, L<30, the first example is slower because it does both a $LISTBUILD plus a concatenation while the others just call a $LIST/$LISTUPDATE built-in. But for large examples, L>1000, the first example can win by at least one order of magnitude because the other examples include execution steps that take O(L**2) time.
If you are doing a moderate amount of computing between database access then there is no question that Python is faster then ObjectScript. If you are doing heavy computing then a call out to C++ or C would be faster than both ObjectScript and Python.
But if you doing lots of database accesses with only simple string compares and string computations between each access then ObjectScript will usually be fastest because it is so close to the Globals engine that is doing all the accesses.
Generally, manipulation of strings in ObjectScript is reasonably good. Parsing of JSON and XML is OK if you are using functions built into ObjectScript to do the parsing. But if you are doing character-by-character parsing of complex data structures that are not supported by ObjectScript built-ins then it might be best to call out of ObjectScript to do that parsing.