„Język n-tej generacji” to modne hasło. To jest termin marketingowy. Nie ma powszechnie przyjętej definicji tego, co dokładnie definiuje „n-tą generację” dla n> 2. Niektóre osoby klasyfikują języki „skryptowe”, takie jak Perl lub Python, jako 4GL, ponieważ są one na wyższym poziomie niż C, podczas gdy inni uważają, że definicja Cechą 4GL jest to, że są specyficzne dla domeny, np. SQL. Niektórzy nitwits nawet myślą, że Java (język z połowy lat 90., zorientowany obiektowo oraz zbieranie i odbieranie śmieci) należy do tej samej kategorii „3GL”, co Fortran (z lat 50.) i C (z lat 70.).
Tak pomylona kategoryzacja, jak „język 4. generacji”, nie ma sensu. Możesz to zobaczyć w starych podręcznikach lub usłyszeć od ludzi, którzy zaczęli programować w latach 80., ale tag taki jak „4GL” jest bezwartościowy bez towarzyszącego mu wyjaśnienia, co dokładnie autor ma na myśli.
Ponieważ nikt od razu nie rozumie, co rozumiesz przez „4GL”, nie powinieneś używać takich kategoryzacji. Zamiast tego używaj określonych terminów, aby dokładnie komunikować, co masz na myśli. Np. Wszystkie NASM, LLVM IR i Jasmin są językami asemblera, ale dwie ostatnie docelowe maszyny wirtualne, a ostatnia jest również obiektowym językiem programowania. Czy wszystkie te 2GLs? SQL jest częściowo deklaratywnym, specyficznym dla domeny językiem dla zapytań do baz danych z lat 80. A TeX to język specyficzny dla domeny do składu od lat 70. Czy oba są 4GL, ponieważ oba są bardziej lub mniej specyficzne dla domeny?