Naast een niveau-indeling kunt u talen ook onderverdelen naar aard (een taal kan hierbij in meer categorieën geplaatst zijn), bijvoorbeeld:
Conversatietalen - voor het voeren van een computergestuurd 'gesprek'.
Query-talen - uitvragen DBMS, SQL.
Job-control-talen - voor sturing van het besturingssysteem.
Simulatietalen - nabootsen van situaties.
Programmageneratoren - zetten een pseudotaal om in een lagere taal, bijvoorbeeld Java.
Dialooggeneratoren - genereren op basis van dialoogstructuren, state transition diagrarns, programma's.
Direct manipulation-talen - geven de mogelijkheid om commando's te geven waar direct het resultaat van wordt getoond, spreadsheetprogramma's zijn hier in zekere zin een voorbeeld van.
Procedurele talen - hierbij geeft u aan in welke volgorde opdrachten moeten worden uitgevoerd, herhaald etc. T/m de derde generatie zijn alle talen procedureel.
Niet-procedurele talen - hierbij geeft u aan wat u wilt, niet hoe dit precies moet gebeuren. Voorbeelden hier zijn wederom het spreadsheetprogramma, maar ook de data-vraagtaal SQL.
Object oriented(OO)-talen - objectgeoriënteerde talen werken met objecten die onderling communiceren om bepaalde diensten aan elkaar te vragen. Een object is een combinatievan een gegeven en de manipulaties die u daarop kunt uitoefenen; een object heeft 'kennis van zichzelf'.