Probably related to this slightly weird sentence at the beginning: "Some advanced 3GLs like Python, Ruby, and Perl combine some 4GL abilities within a general-purpose 3GL environment." I sorta get the argument but it's not standard usage. The problem is that there are (multiple categories of) language that are really post-3GL but 4GL was long ago coopted for a different purpose. And given different classes and branches of languages I'm not sure talking in generations makes sense any longer anyway.