However ASObjC has raised the bar way, way up despite its complexity.
It's a shame there's not a CPAN-like entity for AppleScript, because many of those algorithms (and other goodies) have been implemented by one scripter or another over the last 20 years.
set _str to "Now is the time for all good men to come to the aid of their country"
set newStrA to reverseWordsofString(_str)
set newStrB to reverseWordsofStringBetter(_str)
-------------------------------------------------------------------------------------------
on reverseWordsofString(_str)
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set newStr to (reverse of (words of _str)) as text
set AppleScript's text item delimiters to oldTIDS
return newStr
end reverseWordsofString
-------------------------------------------------------------------------------------------
on reverseWordsofStringBetter(_str)
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set newStr to (reverse of (text items of _str)) as text
set AppleScript's text item delimiters to oldTIDS
return newStr
end reverseWordsofStringBetter
-------------------------------------------------------------------------------------------
The reason method 2 is better is because you cannot depend upon AppleScript to define words the same way you do.