Wenn jemand es wirklich wüsste, wären sie sehr reiche Leute.
Das heißt, hier ist meine Vermutung:
Verfügbarkeit
BASIC ist eine schreckliche kleine Sprache, die bei der ersten Veröffentlichung von (allen?) PCs mitgeliefert wurde. Der Apple II (der Standardcomputer für viele High Schools) und der ATARI 400/800 (der erste supergünstige Heimcomputer) waren beide mit BASIC ausgestattet.
Wenn Sie eine UNIX-Maschine hatten (entweder AT & T System V oder Berkeley's), hatten Sie C. Wenn Sie die Maschine programmieren wollten, mussten Sie diese verwenden.
EDIT : Mit dem Aufkommen und der Allgegenwart des Netzes verwandelt sich diese Anforderung in:
- Wie viele Linux-Distributionen packen eine aktuelle Kopie und wie gut halten sie sie auf dem neuesten Stand? Sind Bibliotheken von Drittanbietern ebenfalls für die Installation verfügbar?
- Ist es einfach unter Windows zu installieren (XP | Vista | 7,8 ...)?
- Sind Mac / iOS-Plattformen abgedeckt?
- Kann es ohne Beeinträchtigung auf älteren Unix-Systemen installiert werden?
- Und wie einfach ist es, nach der Installation auf Bibliotheken von Drittanbietern zuzugreifen, und wie einfach kann ein Upgrade durchgeführt werden?
Einfache Umstellung
Java ist hier ein gutes Beispiel. Wenn Sie mit C-Programmierung vertraut waren, war Java kein großer Schritt voraus, und dennoch gab es viele der Funktionen, die C fehlten, und C ++ konnte sie nicht sauber bereitstellen.
C ++ war aus offensichtlichen Gründen ein einfacher Schritt vorwärts von C, und es war einfach, es als "verbessertes" C an das Management zu verkaufen.
Perl war ein Zusammenschluss von C, awk, sed und anderen Unix-Dienstprogrammen in einem Paket. Vor seinem Erscheinen wurde der Großteil der Systemadministration durch Shell-Skripte durchgeführt, die alles auf unbefriedigende Weise zusammenfügten. Es war ein Glücksfall, mit den Datenstrukturen und der Kontrolle einer C-ähnlichen Sprache alles unter einen Hut zu bringen.
Füllt einen Bedarf
C hat sich durchgesetzt, weil Sie auf diese Weise eine montagenahe Effizienz erzielen konnten, ohne in der maschinenspezifischen, schwer zu wartenden Montagewelt hängen zu bleiben.
FORTRAN startete, weil es die einfache Übersetzung mathematischer Ideen in Code ermöglichte, ohne sich in den Details der Maschine verlieren zu müssen.
Ebenso für LISP und symbolische Manipulation.
Python entstand aus der Notwendigkeit eines "besseren" Perl. (Ich bin voreingenommen, deshalb werde ich nicht mehr sagen.)
PHP war im Wesentlichen das BASIC für das Web - es wurde standardmäßig auf vielen Webservern installiert, und es war einfach, schnell etwas Nützliches zusammenzubauen.
Anwaltschaft, Benutzerbasis, Code beigesteuert
Seien wir ehrlich, Haskell wäre nirgendwo so beliebt wie in einer nicht in Produktion befindlichen Sprache, wenn nicht die unermüdliche Fürsprache der Entwickler und der Anwenderbasis dahinter steckt.
Viele Sprachen haben einen Personenkult hinter den Schöpfern der Sprache, und wir alle wissen, wer sie sind.
FORTRAN verfügt über eine Vielzahl etablierter und überprüfter Mathematik-Codes. Gleiches gilt für Java und die Web / System-Integration / MVC-Systeme. Gleiches gilt für Perl und CPAN. Gleiches gilt für T E X und Dokumentenverwaltung. etc.
Der It- Faktor
Aus irgendeinem Grund scheinen einige Sprachen nur die richtige Menge an Neuem zu haben , mit einer Anspielung auf das Alte , mit einer Art, die es einfach oder nötig erscheinen lässt. Das heißt, es macht seinen eigenen Fall. Und wer weiß, wie das passiert?
Wie auch immer, das ist meine beste Vermutung, warum manche es schaffen. Was den Grund angeht, warum manche nicht ... Nun, wenn sie die oben genannten Kriterien nicht erfüllen, ist dies wahrscheinlich der Grund, warum sie versagt haben.