{"id":6059,"date":"2012-03-18T00:56:17","date_gmt":"2012-03-17T23:56:17","guid":{"rendered":"http:\/\/www.bernd-leitenberger.de\/blog\/?p=6059"},"modified":"2012-03-18T18:41:02","modified_gmt":"2012-03-18T17:41:02","slug":"herr-leitenberger-warum-gibt-es-so-viele-programmierspachen","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2012\/03\/18\/herr-leitenberger-warum-gibt-es-so-viele-programmierspachen\/","title":{"rendered":"Herr Leitenberger, warum gibt es so viele Programmierspachen?"},"content":{"rendered":"<p>Tja was antwortet man Maschinenbau-Studenten, die schon mit einer f&uuml;r die Lehre entworfenen Programmiersprache ihre Probleme haben, warum es noch so viel mehr Sprachen gibt?<\/p>\n<p>Nun, es gibt nat&uuml;rlich einige Beantwortungsm&ouml;glichkeiten: Die eine ist weil bisherige Programmiersprachen etwas nicht hatten was gew&uuml;nscht war. Diese allgemeine Aussage kann man in viele Unteraspekte unterteilen.<!--more--><\/p>\n<p>Betrachtet man es historisch, dann waren die ersten Programmiersprachen noch begrenzt: FORTRAN konnte nur Berechnungen, COBOL nur Datenverwaltung. Selbst so Basics wie die heutigen Schleifentypen, Parameter als Wert und Referenzparameter mussten erst noch entstehen. Das kam dann &uuml;ber Programmiersprachen wie Algol, Pascal und C.<\/p>\n<p>Das eine ist der Grundstock an Sprachfeatures. Das zweite sind Konzepte. Nach der prinzipiellen Art sind drei Sprachtypen zu unterscheiden, n&auml;mlich prozedurale, funktionale und deklarative. Wenn man dann noch technische Randbedingungen hinzunimmt, kann man leicht zwischen Sprachen unterscheiden die interpretiert sind oder Maschinensprache erzeugen.<\/p>\n<p>Und nat&uuml;rlich gibt es noch Weiterentwicklungen wie das Objektmodell, Modularisierung, Erweiterung fundamentaler Datenstrukturen wie das native Unterst&uuml;tzen von B&auml;umen, Listen oder assoziativen Arrays. Schon hier kann man &uuml;ber &uuml;ber Bibliotheken viel nachr&uuml;sten, ohne den Sprachkern zu erweitern.<\/p>\n<p>Doch wenn ich mal von den grundlegenden technischen Basiseinschr&auml;nkungen absehe (eine interpretierte Sprache hat einfach andere M&ouml;glichkeiten zur Laufzeit, z.B. kann sie viel einfacher Code interpretieren als eine schon &uuml;bersetzte Sprache) und vielleicht auch, dass eine eierlegende Wollmilchsprache die sowohl deklarativ wie auch prozedural und funktional und objektorientiert ist nicht w&uuml;nschenswert ist, dann gibt es trotzdem noch viel zu viele Sprachen.<\/p>\n<p>Die Frage ist: warum? Nun ein Grund ist, dass Standards meistens drauf hinauslaufen dass Sprachen sich nur ganz langsam weiter entwickeln. Man sieht dass an den Oldtimern wie Cobol, FORTRAN oder C. Die Komptabilit&auml;t zu alten Programmen f&uuml;hrt dazu dass die Erweiterungen immer kleiner werden. Das scheint nun auch anderen Sprachen so zu gehen wie Ruby, Python oder Java. Schon dass f&uuml;hrt dazu dass viele einfach was neues machen wie dies z.B. bei C++ der Fall war.<\/p>\n<p>Das n&auml;chste und wahrscheinlich der Hauptgrund f&uuml;r neues Sprachen ist einfach der &#8222;Ich mach mein Ding&#8220; Ansatz. Anstatt zu sehen wie man eine existierende Sprache weiterentwickelt werden kann, damit sie den Bed&uuml;rfnissen entspricht, macht man einfach eine neue. Angesichts der Vorrede &uuml;ber existierende Standards ist das ja auch kein Wunder. Einen Compiler zu schreiben ist dank Lex und Yacc ja auch kein Problem. Wenn eine gro&szlig;e Firma dahinter steht, dann wird das ganze sogar erfolgreich. Die Zahl der Beispiele ist endlos. So VbScript bei Microsoft als Alternative zu Javascript und Google macht es mit seinem Dart ja auch nicht anders oder C# als Alternative zu Java, nachdem es mit dem J++\/J# nicht so richtig geklappt hat.<\/p>\n<p>Man kann gegen Firmenstandards sagen was man will, aber sie entwickeln sich schneller weiter als offizielle Standards. Nehmen wir mal Delphi, das ja auf Pascal basiert. Pascal hat praktisch keine Marktbedeutung mehr und der einzige Hersteller von Delphi ist eben die Firma Embacederro (Ex-Borland). Das gab die Freiheit sich praktisch vom Standard zu verabschieden und erst Pascal objektorientiert zu erweitern und dann daraus ein komponentenbasierendes visuelles Programmiersystem zu machen, mit dem man erstaunlich viel machen kann. Bestimmte Teile wie die M&ouml;glichkeit es komponentenbasiert zu erweitern haben andere Sprachen noch immer nicht, wenn auch die M&ouml;glichkeiten der Kernsprache inzwischen gegen&uuml;ber C# ein bisschen veraltet sind. Der springende Punkt ist dass es aber im Kern immer noch Pascal ist, f&uuml;r dasselbe Konzept muss man bei den C-&auml;hnlichen Sprachen vier Generationen durchgehen n&auml;mlich C,C++,Java und C#.<\/p>\n<p>Dann gibt es noch die Programmiersprachen als Selbstverwirklichung. Also jeder nur mittelm&auml;&szlig;ig begabte kann eine Programmiersprache erstellen. Von mir stammen auch zwei, die jeweils Messsysteme gesteuert haben. Eine f&uuml;r eine Demonstration an der Hochschule an der ich arbeitete und eine zweite f&uuml;r die automatisierte Ausf&uuml;hrung von Tests bei einem Hersteller von sicheren Steuerungen. Von der letzten habe ich mal ein Programm abgedruckt, wie ihr seht ist es so ein Mischmasch zwischen BASIC und Pascal:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" src=\"\/img\/ats-basic.jpg\" alt=\"\" width=\"1068\" height=\"854\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tja was antwortet man Maschinenbau-Studenten, die schon mit einer f&uuml;r die Lehre entworfenen Programmiersprache ihre Probleme haben, warum es noch so viel mehr Sprachen gibt? Nun, es gibt nat&uuml;rlich einige Beantwortungsm&ouml;glichkeiten: Die eine ist weil bisherige Programmiersprachen etwas nicht hatten was gew&uuml;nscht war. Diese allgemeine Aussage kann man in viele Unteraspekte unterteilen.<\/p>\n","protected":false},"author":169,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[1725,1737,2408,2407,1750,1726,2406],"class_list":["post-6059","post","type-post","status-publish","format-standard","hentry","category-computer","tag-c","tag-cobol","tag-fortram","tag-j","tag-java","tag-pascal","tag-programmierspachen","entry"],"a3_pvc":{"activated":false,"total_views":364,"today_views":0},"jetpack-related-posts":[{"id":18683,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/06\/01\/die-glorreichen-10-programmiersprachen-2\/","url_meta":{"origin":6059,"position":0},"title":"Die glorreichen 10 \u2013 Programmiersprachen (2)","author":"Bernd Leitenberger","date":"01.06.2026","format":false,"excerpt":"Der heutige Teil schlie\u00dft nahtlos an den ersten Teil an, der gestern erschien. Es geht um 10 Kriterien anhand derer man Programmiersprachen kategorisieren kann. Maschinennah oder universell, aber komplex Als eine maschinennahe Sprache bezeichnet man eine Sprache, die nahe den M\u00f6glichkeiten von Prozessoren ist. Das Paradebeispiel ist C. Alle Prozessoren\u2026","rel":"","context":"In &quot;Die Glorreichen 10&quot;","block_context":{"text":"Die Glorreichen 10","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/die-glorreichen-10\/"},"img":{"alt_text":"","src":"https:\/\/vg09.met.vgwort.de\/na\/7f5d9cf5265047179df05b778bf455b5","width":350,"height":200},"classes":[]},{"id":18676,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/05\/31\/die-glorreichen-10-programmiersprachen\/","url_meta":{"origin":6059,"position":1},"title":"Die glorreichen 10 \u2013 Programmiersprachen","author":"Bernd Leitenberger","date":"31.05.2026","format":false,"excerpt":"Ich wollte mal eine Reihe in dieser Rubrik \u00fcber Programmiersprachen machen. Zuerst dachte ich daran eine Liste nach meinen pers\u00f6nlichen Favoriten zu erstellen. Anfangs bef\u00fcrchtete ich, dass ich gar nicht auf 10 komme, aber es sind tats\u00e4chlich mehr, wenngleich ich in vielen Sprachen nur kleine Programme verfasst habe oder mich\u2026","rel":"","context":"In &quot;Die Glorreichen 10&quot;","block_context":{"text":"Die Glorreichen 10","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/die-glorreichen-10\/"},"img":{"alt_text":"","src":"https:\/\/vg09.met.vgwort.de\/na\/4073c4f9dc6943a08702cdde13605d43","width":350,"height":200},"classes":[]},{"id":18888,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/08\/27\/die-ki-nachlese-nach-drei-jahren\/","url_meta":{"origin":6059,"position":2},"title":"Die KI &#8211; Nachlese nach drei Jahren","author":"Bernd Leitenberger","date":"27.08.2026","format":false,"excerpt":"Als die KI vor einigen Jahren aufkam, konnte man ihr noch etliche Tatsachen unterschieben. Ich empfehle, meinen Beitrag \u201eMariner\u202f10 und ChatGPT\u201c mal durchzulesen. Der Beitrag ist sehr humorvoll zu lesen, weil die KI fabuliert und sich auch entschuldigt, wenn man der KI v\u00f6lligen Unsinn als Tatsache vorsetzt. Selbst Bilder waren\u2026","rel":"","context":"In &quot;KI&quot;","block_context":{"text":"KI","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/ki\/"},"img":{"alt_text":"","src":"\/img\/nightcafebild.jpg","width":350,"height":200,"srcset":"\/img\/nightcafebild.jpg 1x, \/img\/nightcafebild.jpg 1.5x, \/img\/nightcafebild.jpg 2x, \/img\/nightcafebild.jpg 3x"},"classes":[]},{"id":18614,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/29\/galileos-cds-teil-3\/","url_meta":{"origin":6059,"position":3},"title":"Galileos CDS &#8211; Teil 3","author":"Bernd Leitenberger","date":"29.03.2026","format":false,"excerpt":"So nun zum dritten Teil \u00fcber das prim\u00e4re Computersystem von Galileo, das CDS. Nachdem sich die ersten beiden Teile nur mit dem RCA 1802, warum er gew\u00e4hlt wurde und seiner Architektur befassten geht es heute um das Computersystem selbst. Der Artikel schlie\u00dft so an seine beiden Vorg\u00e4nger gestern und vorgestern\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/6e7f572a246b4ac395de9c260733b707","width":350,"height":200},"classes":[]},{"id":16660,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2023\/04\/07\/das-solare-balkonkraftwerk\/","url_meta":{"origin":6059,"position":4},"title":"Das (solare) Balkonkraftwerk","author":"Bernd Leitenberger","date":"07.04.2023","format":false,"excerpt":"Heute mal einen Blog \u00fcber ein Thema das sicher viele interessiert: \u201eBalkonkraftwerke\u201c. Ich bin seit einigen Tagen Besitzer eines solchen, und da ich schon drei Solaranlagen mein Eigen nenne, je eine auf der Ost- und Westseite meines Hauses und eine auf dem Dach meines Ferienhauses mit kombiniert zusammen \u00fcber 27\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/vg05.met.vgwort.de\/na\/95581b6b56a24300882788c5ddaaae3f","width":350,"height":200},"classes":[]},{"id":18734,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/06\/24\/groschengrab-sammelbilder\/","url_meta":{"origin":6059,"position":5},"title":"Groschengrab Sammelbilder","author":"Bernd Leitenberger","date":"24.06.2026","format":false,"excerpt":"Jetzt ist ja wieder Fussball-WM-Zeit und es gibt wieder einmal die Sammelbilder von Panini. Die gab es schon zu meiner Jugend. Das Grundkonzept gibt es aber auch woanders, man sammelt Bilder und klebt sie in ein Album ein. Ich war nie Fan von so was, schon als Kind merkte ich,\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/"},"img":{"alt_text":"","src":"\/img\/panini2026.png","width":350,"height":200,"srcset":"\/img\/panini2026.png 1x, \/img\/panini2026.png 1.5x"},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/6059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/comments?post=6059"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/6059\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=6059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=6059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=6059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}