gerade habe ich das buch ‘eine kleine geschichte der sprache’ von steven roger fischer gelesen (2. auflage 2004; engl. original aus dem jahr 1999). es ist ein nettes kleines büchlein, das einen sehr allgemeinen und für laien ausgericheten überblick über die entstehung der sprache, über die sprachwissenschaft, die wichtigsten sprachfamilien, sprachtypologie etc. bietet. natürlich kratzt der autor bei den einzelnen themengebieten nur an der oberfläche, doch liegt dies in der natur eines solchen buches, das auf ein breites, nicht ausgebildetes publikum zielt. im teil zu den germanischen sprachen, den ich aufgrund meiner ausbildung beurteilen kann, hat es zwar einige ungenauigkeiten und fehler drin (z.B. kann man altnordisch nicht als die ‘ursprüngliche germanische sprache’ bezeichnen, S. 132), aber es ist nichts allzu schlimmes dabei.
allerdings, und dies ist der grund für meinen blog post, bin ich in einem punkt ganz und gar nicht mit fischer einverstanden: nämlich damit, dass er programmiersprachen immer wieder mit natürlichen sprachen in einem atemzug nennt, und damit die grundlegenden unterschiede zwischen beiden missachtet. um es auf den punkt zu bringen: programmiersprachen sind überhaupt keine sprachen. sie haben, wenn man es genau nimmt, in einem linguistischen einführungsbuch über die geschichte der sprache nichts verloren.
zwei punkte mögen genügen, um dies zu klären:
- es sind verschiedene definitionen von ‘sprache’ denkbar, aber man kommt in keinem fall um die grundlegende feststellung herum, dass die sprache ein medium für die kommunikation ist. das trifft zu bei gesprochener sprache, bei geschriebener sprache, bei gehörlosensprachen, und, wenn man will, sogar bei der pheromon-kommunikation von insekten und anderen tieren. bei programmiersprachen trifft dies aber gerade nicht zu. programmiersprachen ermöglichen keine kommunikation. oder hast du dich schon einmal mit einem computer in java unterhalten? hat er vielleicht eine frage von dir mit einigen zeilen python beantwortet? natürlich nicht, denn programmiersprachen dienen einem ganz anderen zweck: sie sind konstrukte, um komplizierte berechnungen an einem computer effizient und übersichtlich beschreiben zu können. von einer kommunikation zwischen mensch und computer kann somit keine rede sein. mit einer maschine kann man lediglich interagieren, aber nicht kommunizieren. für die kommunikation braucht es einen gleichwertigen gesprächspartner.
- wenn die sprachwissenschaft zu einer grundlegenden einsicht gekommen ist, was das wesen der sprache betrifft, dann ist es die, dass sich sprachen im verlaufe der zeit verändern. gerade dieser fundamentale satz trifft bei programmiersprachen aber nicht zu – jedenfalls nicht in der gleichen art wie bei natürlichen sprachen, wo sich ein wandel der sprache ohne bewusstes eingreifen einer ‘normativen kraft’ vollzieht. programmiersprachen können zwar von ihren erfindern überarbeitet werden, doch hat dies mit sprachwandel gar nichts zu tun.
in meinen augen ist die benennung von programmiersprachen als ‘sprachen’ nur eine metapher, die aufgrund von einigen oberflächlichen eigenschaften (z.B. dass beide eine syntax haben) zustande gekommen ist. damit sollte aber nur gesagt werden, dass c++, assembler, fortran und java so etwas ähnliches wie sprachen sind, aber keineswegs, dass es sich tatsächlich um sprachen handelt. aussagen in der art, dass computer miteinander “sprechen” könnten, dass sie programmiersprachen “benutzten” und dass dies ganz ähnlich wie bei der kommunikation zwischen mensch und tier ablaufen solle (alles nachzulesen auf s. 223), sind irreführend und zeugen von einem grundsätzlichen unverständnis darüber, was programmiersprachen sind und wie sie funktionieren.