{"id":9321,"date":"2014-01-29T00:08:54","date_gmt":"2014-01-28T23:08:54","guid":{"rendered":"http:\/\/www.bernd-leitenberger.de\/blog\/?p=9321"},"modified":"2014-02-05T10:33:46","modified_gmt":"2014-02-05T09:33:46","slug":"warum-gibt-es-so-viele-programmiersprachen-teil-2","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2014\/01\/29\/warum-gibt-es-so-viele-programmiersprachen-teil-2\/","title":{"rendered":"Warum gibt es so viele Programmiersprachen &#8211; Teil 2"},"content":{"rendered":"<p>Eine ganze Menge Programmiersprachen entstanden, weil man sie nur in einer bestimmten Softwareumgebung braucht. Die ersten Programmiersprachen waren zum einen kompiliert, erzeugten also Maschinencode. Zum anderen waren sie f&uuml;r die Entwicklung von Stand-Alone Anwendungen gedacht. Mit einem zweiten Konzept, des Interpreters konnte man dagegen eine Programmiersprache in jedes Programm einbauen. Bei einem Interpreter wird der Quelltext on the fly &uuml;bersetzt und daher gibt es hier auch die M&ouml;glichkeit Funktionen eines Systems aufzurufen in das die Programmiersprache eingebettet ist. Ein Gro&szlig;teil der Scriptsprachen entf&auml;llt in diese Kategorie wie die ganzen Shell-Scripts, aber auch in komplexer Software integrierte Sprachen wie die in Matlab oder R in Statistikpaketen.<!--more--><\/p>\n<p>R ist auch inzwischen eine eigenst&auml;ndige Programmiersprache geh&ouml;rt aber zu den &#8222;Special Purpose&#8220; Sprachen. W&auml;hrend Sprachen wie Pascal, C oder Java den Anspruch haben sich f&uuml;r eine breite Anwendung zu eignen. wenn auch nicht f&uuml;r jede gleich gut, ist eine Special Purpose Sprache eine die bestimmte Feature hat die man nur f&uuml;r bestimmte Anwendungen braucht, dann sind sie aber sehr n&uuml;tzlich. R hat z.B. als elementaren Datentyp das Array nicht Skalare. Sinnvoll wenn man Statistik betreibt also gro&szlig;e Datenmengen auswertet. Bei Pearl hat man eine Skriptsprache rund um die regul&auml;ren Ausdr&uuml;cke herum gebaut. APL ist eine Sprache f&uuml;r Mathematiker die nicht mal in einer Programmiersprache von ihren geliebten Symbolen lassen wollen. Alle drei &#8211; wen verwundert es &#8211; sind interpretiert.<\/p>\n<p>Eine andere Intention f&uuml;r eine neue Sprache sind ver&auml;nderte Anforderungen. Mit dem Auftauchen des Internets kommunizierten pl&ouml;tzlich Computer auf der ganzen Welt miteinander. Vorher tauschte man Daten aus oder hatte statische Informationen in HTML. Doch wie realisiere ich eine Anwendung die auf dem Zielcomputer Daten eines Servers braucht oder interaktiv ist, ohne das der Anwender jedes Mal eine Anwendung installiert und damit sie auf jedem Rechner l&auml;uft und nicht nur auf dem PC unter Windows. Es entstanden mindestens drei Ans&auml;tze dieses Problem zu l&ouml;sen. PHP ist eine Scriptsprache die man in HTML einbetten und mixen kann. Die Ausgabe erscheint dann da wo der PHP Quelltext im HTML steht. Zur Ausf&uuml;hrung braucht man ein Modul auf dem Server, der also die ganze Arbeit hat (ein Grund warum der Blog deutlich langsamer als die Webseite ist). Javascript macht das gleiche nur im Browser, verlagert also die Arbeit auf die Clients was eigentlich besser ist, doch daf&uuml;r muss der Browser auch die Sprachfeatures verstehen was in der Anfangszeit problematisch war, weil Microsoft und Netscape jeweils ihre eigenen S&uuml;ppchen kochten. Java entwickelt als vollwertige Programmiersprache f&uuml;r Anwendungen die vom Microcontroller bis zum Gro&szlig;rechner alles abdecken sollte, erlaubte es die Arbeit aufzuteilen &#8211; sie konnte vollst&auml;ndig auf dem Client laufen, auf dem Server oder verteilt. Das Konzept hat sich nicht durchgesetzt. Java erweis sich als zu viel Speicher verbrauchend, zu langsam und obwohl als da in einer eigenen virtuellen Umgebung ablaufend, als sicher angepriesen, gilt Java neben Adobe Produkten heute als ein Einfallstor f&uuml;r Schadsoftware,.<\/p>\n<p>Java f&uuml;hrt mich zur letzten Gruppe: Den Firmenstandards. Denn als Microsoft seine selbst ver&auml;nderte Java-Engine aufgrund eines Prozesses von Sun nicht mehr ausliefern d&uuml;rfte entwickelten sie einfach ihren Java-Clone &#8211; nur ein bisschen besser: C#. Es ist nicht der erste Firmenstandard. Microsoft hatte auch BASIC f&uuml;r Microcomputer adaptiert. Das Microsoft-BASIC wurde zum Standard, mit der Folge das jeder diese f&uuml;rchterliche Implementation mit dem Spagetti Code f&uuml;r BASIC hielt &#8211; dagegen wehrten sich die Erfinder von BASIC erfolglos. Google musste als Folge nat&uuml;rlich auch eine eigene Sprache kreieren, n&auml;mlich Go. Firmenstandards haben Vor- und Nachteile. Der Vorteil ist, das eine Firma eine Sprache schneller weiter entwickeln kann, als wenn man immer mit einem Gremium alles abstimmen muss. Paradebeispiele sind die Entwicklung von BASIC durch Microsoft oder Pascal durch Borland. Der andere ist, dass man nun nat&uuml;rlich auch auf Produkte dieser Firma angewiesen ist.<\/p>\n<p>In der Summe wird es wohl immer mehr Programmiersprachen geben. Auch weil immer neue Konzepte auftauchen. In den Sechzigern war es die Strukturierte Programmierung und die Typisierung von Daten, in den Siebzigern die Objektorientierung, die es enorm erleichterte, Code wieder zu verwenden und Probleme zu abstrahieren.&nbsp; Schon hier gab es aber den Bruch: erfolgreich wurden nicht Sprechen die vollst&auml;ndig objektorientiert waren wie Smalltalk, sondern Sprachen die Objektorientierung mit dem vorigen Modell verheiraten wie C++. (Ob dies angesichts der Fehler von C so sinnvoll ist sei mal bezweifelt).<\/p>\n<p>Doch nicht immer braucht man alles, weshalb Dinosaurier wie FORTRAN noch heute eingesetzt werden, auch weil man bestehende Programme zwar erweitert, aber selten in eine neue Sprache umschreibt. Vor allem kann es auch nicht &#8222;die Sprache&#8220; geben, schon alleine weil es zu viele grundlegende Konzepte gibt. Es gibt mindestens drei unterschiedliche Ans&auml;tze:<\/p>\n<ul>\n<li>prozedurale sprachen: Der von meisten am schnellsten verstandenen Ansatz bei dem man die Anweisungen angibt die nacheinander ausgef&uuml;hrt werden. Die meisten Programmiersprachen fallen in diese Kategorie.<\/li>\n<li>regelbasiette Sprachen: Man definiert nicht dem Algorithmus komplett, sondern Daten, Beziehungen und Regeln die man kennt und der Computer ermittelt die L&ouml;sung auf Basis der bekannten Daten und Regeln. Sie waren im Bereich der KI sehr erfolgreich.<\/li>\n<li>Funktionale Sprachen haben den Ansatz der Mathematik, das Funktionen die Eingangsdaten in die Ausgangsdaten transformieren. Im strengen Sinne kennen diese Sprachen dann keine Blockstrukturen und Wiederholungsstrukturen mehr.<\/li>\n<li>Manche definieren Sprachen wie SQL als eine weitere Kategorie. Hier gibt man an wie man Daten erhalten will, nicht jedoch wie dies geschehen muss.<\/li>\n<\/ul>\n<p>Je nachdem welche Problemstellung man hat, wird eine der Gruppen besser geeignet oder schlechter geeignet sein. So wird es auch in Zukunft immer mehr Sprachen geben. ich muss auch sagen ich will nicht die Programmiersprache die alles kann, denn dann wird sie auch unhandlich und schwerf&auml;llig. Man kann in Ma&szlig;en Funktionalit&auml;t in Bibliotheken auslagern aber wenn eine Sprache schon in den Kernfeatures viel k&ouml;nnen muss, ist auch der Kern entsprechend gro&szlig;. Dar&uuml;ber hinaus gibt es nat&uuml;rlich noch die technischen Grundgegebenheiten, Java hat diesen Spagat versucht, vom Microcontroller bis zum Server auf allen Systemen zu laufen, ob im Browser oder als Standalone Anwendung und ist daran gescheitert<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/063b52bb8be544809ab5ec1f745c4ef0\" width=\"1\" height=\"1\" alt=\"\"\/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine ganze Menge Programmiersprachen entstanden, weil man sie nur in einer bestimmten Softwareumgebung braucht. Die ersten Programmiersprachen waren zum einen kompiliert, erzeugten also Maschinencode. Zum anderen waren sie f&uuml;r die Entwicklung von Stand-Alone Anwendungen gedacht. Mit einem zweiten Konzept, des Interpreters konnte man dagegen eine Programmiersprache in jedes Programm einbauen. Bei einem Interpreter wird der [&hellip;]<\/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":[1635,3486,3487,583,2067,3488],"class_list":["post-9321","post","type-post","status-publish","format-standard","hentry","category-computer","tag-basic","tag-borland","tag-funktionale-sprache","tag-microsoft","tag-programmiersprachen","tag-prozedurale-spreche","entry"],"a3_pvc":{"activated":false,"total_views":2034,"today_views":0},"jetpack-related-posts":[{"id":18676,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/05\/31\/die-glorreichen-10-programmiersprachen\/","url_meta":{"origin":9321,"position":0},"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":18683,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/06\/01\/die-glorreichen-10-programmiersprachen-2\/","url_meta":{"origin":9321,"position":1},"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":18888,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/08\/27\/die-ki-nachlese-nach-drei-jahren\/","url_meta":{"origin":9321,"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":9321,"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":9321,"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":9321,"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\/9321","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=9321"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/9321\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=9321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=9321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=9321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}