{"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_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_featured_media_url":"","jetpack-related-posts":[{"id":18614,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/29\/galileos-cds-teil-3\/","url_meta":{"origin":9321,"position":0},"title":"Galileos CDS &#8211; Teil 3","author":"Bernd Leitenberger","date":"29. M\u00e4rz 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":18612,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/28\/galileos-cds-teil-2\/","url_meta":{"origin":9321,"position":1},"title":"Galileos CDS \u2013 Teil 2","author":"Bernd Leitenberger","date":"28. M\u00e4rz 2026","format":false,"excerpt":"So, heute geht es weiter mit Teil 2 \u00fcber Galileos CDS, dieser Beitrag schlie\u00dft nahtlos an den ersten Beitrag von gestern an, wie man schon an der ersten Textzeile sieht. Nach der Einleitung im ersten Teil geht es heute weiter damit warum der RCA 1802 genutzt wurde und was seine\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\/191e4b0728de42829cf656027b84dc82","width":350,"height":200},"classes":[]},{"id":18502,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/01\/22\/der-ariane-kompatible-orbit\/","url_meta":{"origin":9321,"position":2},"title":"Der Ariane-Kompatible Orbit","author":"Bernd Leitenberger","date":"22. Januar 2026","format":false,"excerpt":"Heute wieder ein Grundlagenblog f\u00fcr alle, die die Grundlagen auf der Website noch nicht entdeckt haben, oder sie ihnen zu detailliert sind oder die einfach nur den Blog lesen. Es geht um einen Begriff, den man heute kaum noch h\u00f6rt, der aber mal das Ma\u00df der Dinge war und was\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:\/\/vg06.met.vgwort.de\/na\/901d5ccaac304c8baace44abf9e7aebe","width":350,"height":200},"classes":[]},{"id":18649,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/04\/28\/die-bangles\/","url_meta":{"origin":9321,"position":3},"title":"Die Bangles","author":"Bernd Leitenberger","date":"28. April 2026","format":false,"excerpt":"Wer heute einen Blog \u00fcber Raumfahrt oder Computer erwartet, kann gleich die Seite verlassen, heute geht es um was ganz anderes n\u00e4mlich die M\u00e4dchengruppe \u201eThe Bangles\u201c. Die Bangles hatten ihre gr\u00f6\u00dften Hits zwischen 1986 und 1989 und h\u00e4tte man mich damals gefragt, (im Alter von 21 bis 24) wer wohl\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:\/\/vg06.met.vgwort.de\/na\/3105fc821fc840169501c1347f6767e5","width":350,"height":200},"classes":[]},{"id":18536,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/02\/22\/thor-nomenklaturchaos\/","url_meta":{"origin":9321,"position":4},"title":"Thor Nomenklaturchaos","author":"Bernd Leitenberger","date":"22. Februar 2026","format":false,"excerpt":"Heute geht es wieder um einen Splitter meiner Recherche zu dem Buch und zwar um Bezeichnungen und Abk\u00fcrzungen der Thor. Wer mit den Akronymen PGM-17, SM-75, WS-315A, DM-18, MB3, DSV-2L-1A, DSV3E, SLV-2G, Thorad, TAT, TAID, LTTAT, UBT ELT und XLT etwas anfangen kann, der braucht den Blog nicht zu lesen.\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\/b59364b1981c43209378f0bd5b9df7ef","width":350,"height":200},"classes":[]},{"id":13740,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2019\/02\/17\/die-2019-er-spacex-wette\/","url_meta":{"origin":9321,"position":5},"title":"Die 2019-er SpaceX Wette","author":"Bernd Leitenberger","date":"17. Februar 2019","format":false,"excerpt":"Wer mich kennt, wei\u00df, dass ich jedes Jahr eine Wette mit SpaceX eingehe. Das System ist eigentlich sehr einfach: Ich nehme nur eine SpaceX-Aussage und wette dagegen, also, dass sie nicht stimmt oder nicht erreicht wird. Das mache ich schon seit einigen Jahren und bisher habe ich mit einer Ausnahme\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg06.met.vgwort.de\/na\/7955f286a7004559b4ddbb5d8b481043","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_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}]}}