Was meinst Du mit
„Write-only“-Sprache?
Hallo,
ein Grund, warum es überhaupt so viele verschiedene Sprachen gibt, ist dass die Entwickler ganz verschiedene Design-Ziele im Auge hatten. Bei C++ war eines davon, dass man alles möglichst kurz hinschreiben kann, ob es später noch einer lesen kann, war dagegen völlig egal. Ganz im Gegensatz dazu Cobol: furchtbar viel Schreibarbeit, aber im Ergebnis hat man fast normale englische Sätze und lesen kann das Programm zu grossen Teilen selbst jemand, der kein Cobol kann. Das erleichtert natürlich die Wartung bestehender Programme, sonst gäbe es nicht mehr soviel Cobol-Software.
Man kann mehr solche „Antipoden“-Paare von Computersprachen bilden, das ist vielleicht für deine Entscheidung auch hilfreich:
Pascal wurde von Niklaus Wirth ausdrücklich zur Ausbildung von Programmierern entworfen und hat deshalb auch sehr strenge Regeln; bei Basic war dagegen wichtig, dass man ohne Vorkenntnisse schnell was zusammenhacken kann, möglichst ohne irgendwelche Regeln beachten zu müssen, didaktisch ist Basic eine Katastrophe.
Der schnellen Erlernbarkeit von Basic steht wiederum C++ gegenüber: da hat niemand auf die Verkürzung der Lernkurve Wert gelegt.
Vielleicht macht sich mal jemand die Mühe, alle Programmiersprachen in einer mehrdimensionalen Matrix nach solchen Gesichtpunkten anzuordnen.
Für die Verbreitung sind natürlich auch andere Tatsachen entscheidend, z.B. welche Sprache MS für die Programmierung von Windows verwendet. Und man kann APIs nur einsetzen, wenn man Funktions-Deklarationen in der gewünschten Sprache hat - wenn Borland nicht windows.h in windows.pas (für Delphi) übersetzt hätte, müsste ich die C-Deklarationen von vielen hundert Funktionen selbst umschreiben, das wäre kaum sinnvoll. Schon die Tatsache, dass es fast alle solchen Interfaces in C, viele davon aber in keiner anderen Sprache gibt, übt einen starken Druck in Richtung C/C++ aus.
Meistens ist es so, dass für spezielle Zwecke, sagen wir mal Bildverarbeitung, sowohl Hardware als auch Libraries mit Funktionen wie z.B. Kantendetektion angeboten werden, aber eben nur mit Deklarationen für C, damit ist die Entscheidung schon gefallen. In was die Library selbst geschrieben ist, ist dagegen ziemlich egal, solange die Funktionsaufrufe dokumentiert sind.
Gruss Reinhard