Warum gibt es so viele Programmiersprachen?
Und was veranlasst jemanden, eine Programmiersprache zu erstellen, obwohl es bereits andere Sprachen gibt?
programming-languages
Moshe
quelle
quelle
Antworten:
Programmiersprachen entwickeln sich
Neue Programmiersprachen lernen oft aus vorhandenen Sprachen und fügen Funktionen auf neue Weise hinzu, entfernen sie und kombinieren sie. Es gibt ein paar verschiedene Paradigmen wie objektorientiert und funktional und viele moderne Sprachen versuchen, Merkmale aus beiden zu mischen.
Es gibt auch neue Probleme, die gelöst werden müssen, z. B. die Zunahme von Mehrkern-CPUs. Die gebräuchlichste Lösung dafür waren Threads, aber einige Programmiersprachen versuchen, das Nebenläufigkeitsproblem auf andere Weise zu lösen, z. B. das Actor Model. Siehe Erlang - Software für eine gleichzeitige Welt
quelle
Es ist ein Zyklus. Sie beginnen eine neue Sprache und können sich von der schlechten Syntax und den schlechten Entscheidungen Ihrer Vorgänger lösen. In Version 1 sieht die Sprache großartig aus, weil sie nichts von diesem Gepäck hat und die Arbeit erledigt. In neueren Versionen experimentieren Sie mit Funktionen, die möglicherweise nicht funktionieren, oder bringen Funktionen aus anderen, neueren Sprachen ein, die Ihre Syntax etwas unübersichtlich machen. Nach ein paar weiteren Versionen stellen Sie fest, dass Ihre Sprache jetzt genauso kompliziert ist wie die, die Sie ersetzt haben, mit dummen Syntaxproblemen und altem Gepäck. Und plötzlich merkt man, dass man all das reparieren kann, wenn man eine neue Sprache erstellt ...
quelle
Aus dem gleichen Grund gibt es Hämmer, Schraubendreher, Handsägen, Bandsägen, Presslufthammer, Brecheisen und viele andere Werkzeuge: Nicht jede Sprache ist für jede Aufgabe perfekt. Einige Sprachen zielen auf bestimmte Problembereiche ab: R eignet sich besonders für statistische Analysen, C eignet sich besonders für das Schreiben von Betriebssystemkernen, Haskell eignet sich besonders für mathematisch anspruchsvolle oder finanzielle Berechnungen, Erlang eignet sich besonders für die gleichzeitige Programmierung usw.
Aus dem gleichen Grund gibt es auch Shirts in verschiedenen Farben: Manche mögen den "Stil" einer Sprache über einer anderen.
Und natürlich finden es viele Programmierer lustig, eine neue Sprache zu erfinden, nur um zu sehen, was passiert, oder vielleicht, weil sie etwas über Sprachen wissen und einen Kratzer kratzen oder einige Ideen ausprobieren möchten.
quelle
Weil sie alle saugen (so oder so).
Im Moment haben wir ungefähr 5000 Sprachen erstellt, um natürliche Probleme zu beschreiben, und keine davon steht zum Schreiben von Programmen zur Verfügung (ein Beispiel wäre "Englisch").
Bis jemand einen Weg findet, eine Programmiersprache zu erstellen, die das ausdrückt, was Sie in einem Satz in einer natürlichen Sprache ausdrücken können, werden sie weiter kommen.
quelle
Offensichtlich ist eine wichtige Motivation für die Schaffung einer neuen Sprache, etwas Besseres als die bereits vorhandenen Sprachen zu erreichen. Und da es immer Raum für Verbesserungen gibt, wird es immer neue Sprachen geben.
Kommerzielle Interessen sind ein weiterer wichtiger Grund. Ich halte es zum Beispiel für wichtig, dass Microsoft eine Sprache für jeden Bedarf anbietet, damit Unternehmen und Entwickler ihre Plattformen bevorzugen.
quelle
Legacy-Code. Wenn Sie eine neue Sprache beginnen, müssen Sie nicht alle Beschwerden anhören / berücksichtigen, wenn Sie eine alte Sprache ändern. Auch wenn alle zustimmen, dass die neue Implementierung besser ist, kann sie den alten Code nicht brechen. Und da draußen gibt es viele alte Codes.
quelle
weil es Spaß macht, neue Sprachen zu erstellen, auch wenn sie nicht wirklich gebraucht werden
quelle
Das Erstellen einer Programmiersprache macht ziemlich viel Spaß. Es ist nahezu reine kreative Arbeit, da Sie nicht auf vorherige Anforderungen beschränkt sind. Es ist nicht mehr so schwer zu implementieren, da Sie immer nach C kompilieren und den C-Code kompilieren können, um eine angemessene Leistung zu erzielen, wenn Sie überhaupt einen Compiler schreiben.
Natürlich haben die meisten von uns weniger gute Ideen, als wir denken, und daher werden sie häufig enttäuscht oder von niemand anderem als dem ursprünglichen Designer geliebt.
Denken Sie an jede Programmiersprache, die Sie kennen. Du kannst dir leicht ein paar Dinge einfallen lassen, die du nicht magst, oder? Sie haben vermutlich Ideen, wie diese behoben werden könnten. Mit ein wenig mehr Schwung, vorausgesetzt Sie wissen viel über Compiler-Erstellung (und viele Leute wissen es), könnten Sie anfangen, Ihre eigenen zu entwerfen und sogar zu implementieren.
quelle
Schnelle kurze Antwort
Das Rad neu erfinden ... Was ist der aktuelle Trend ...
Langweilige Antwort
Viele Leute vergessen, dass "eine andere ähnliche neue Sprache für alte Programmierer" "eine einfache neue Sprache für neue Programmierer" ist.
Was meine ich damit?
Nun, für "mehrere Jahre" -Programmierer können Java oder C # eine zusätzliche Programmiersprache zu vorhandenem Cobol, (OO / Procedural) Basic, C / C ++ sein, während für "neue" Programmierer Java oder C # neue Sprachen sind, während Cobol, (OO / Procedural) Basic, C / C ++ gibt es für sie nicht. Das Rad neu zu erfinden ist daher eine häufige Angelegenheit ...
Und wenn es einen neuen Technologietrend gibt, können die Leute eine neue Programmiersprache entwickeln, die auf diesem Trend basiert, wie Ecmascript / Javascript für das Web und funktionale Programmierung ...
Prost.
quelle
Neue Programmiersprachen werden aus vielen verschiedenen Gründen erstellt, vor allem, weil es ein neues Programmierparadigma gibt oder weil die Fortschritte in der Hardware dazu führen, dass neue Sprachen erstellt werden, um die neuen Hardwarefunktionen wie Multitasking usw. zu nutzen.
In meinem Fall baue ich normalerweise aus speziellen Gründen kleine Compiler (mit einer neuen Programmiersprache). Wenn ich viele Spiele mache und glaube, dass eine Programmiersprache, die speziell für die Spieleentwicklung entwickelt wurde, zu einem kleineren, schnelleren Code und einer schnelleren Entwicklung führt, dann erstelle ich sie. und am Ende stellt sich heraus, dass es auch für andere allgemeine Zwecke verwendet werden kann.
Ich denke, die meisten Leute, die Programmiersprachen erstellen, haben einen bestimmten Zweck im Sinn, es gibt diejenigen, die sie von Anfang an für allgemeine Zwecke erstellen. aber die meisten sind es nicht.
Übrigens denke ich, dass es viel zu viele Programmiersprachen gibt, aber es werden immer hundert neue herauskommen. Einige aus Spaß, andere aus einem Nischenzweck, als Schulprojekt oder aus Hunderten anderer Gründe. und früher oder später wird ein neuer populär. Es wird niemals enden.
quelle
Aus dem gleichen Grund gibt es so viele <was auch immer> und wir erschaffen immer wieder neue <was auch immer>
Es gibt beispielsweise ein Dutzend PHP-MVC-Frameworks, aber die Leute werden immer neue erstellen, um bestimmte Anforderungen zu erfüllen, um nicht von einem anderen Team abhängig zu werden, oder um einfach zu versuchen, etwas Besseres zu erstellen. Das gleiche gilt für praktisch alle Arten von Werkzeugen oder Anwendungen.
Es ist eine sehr gute Sache, meiner Meinung nach eine Win-Win-Situation für alle.
quelle
Universitäten steuern viele Programmiersprachen bei, ebenso wie sehr große Unternehmen wie Ericsson (Erlang = Ericsson-Sprache), Bell Labs (B- und C-Sprachen) und Google (Go-Sprache seit einigen Monaten). Viele derjenigen, die im Rahmen der Universitätsforschung geschrieben wurden, werden nicht viel verwendet. Es gibt jedoch einige bemerkenswerte Ausnahmen. Ich nehme an, dass das Schreiben einer eigenen Sprache / eines eigenen Compilers ein gutes Thema für Doktorarbeiten von Personen ist, die CS-Theorie oder verwandte Disziplinen studieren. Es fällt mir auf, dass Python eine der ersten Sprachen ist, die aus den gemeinsamen Online-Bemühungen verschiedener Programmierer um eine einzige Idee hervorgegangen ist.
quelle
Es gibt ein paar Gründe, die meisten sind, weil die Leute denken, dass das, was existiert, es nicht einfach macht, eine Reihe von Problemen zu lösen. Einige sind nur zum Spaß oder für akademisches Interesse.
Ich denke, es gibt ein stichhaltiges Argument dafür, dass die Frage, wie Sie die perfekte Sprache entwerfen, noch nicht gelöst ist (und möglicherweise nie). Solange die Leute neue Ideen haben, was eine großartige Sprache ausmacht, werden sie es weiterhin versuchen. Einige dieser Versuche werden coolen neuen Raum wie Erlang abbilden und andere werden floppen, aber solange aus dem Flop etwas gelernt wird, ist das auch in Ordnung.
quelle
Wie bereits erwähnt, versuchen Sprachen, auf bestimmte Aufgaben abzuzielen, und die neuen Sprachen können auf einen neuen Bereich abzielen. Diese Sprachen können Funktionen aus anderen Sprachen übernehmen, die derzeit nicht verfügbar sind.
Ein weiterer Grund für neue Sprachen ist der Versuch, viele verschiedene Aufgaben zu übernehmen und die Sprache der Wahl für viele verschiedene Bedürfnisse zu sein. Einige dieser Sprachen versuchen, alle Sprachen zu umfassen, die Sie immer verwenden würden, unabhängig davon, welchen Bedarf Sie haben.
quelle
In meiner Programmiersprachenklasse habe ich gelernt, dass die meisten Sprachen erfunden wurden, um Juckreiz zu lindern. Die meisten Sprachen wurden erfunden, um einige Algorithmen besser ausdrücken zu können. Zum Beispiel wurden funktionale Sprachen erfunden, um rekursiven Algorithmen einen viel ausdrucksstärkeren Raum zu geben.
Zu fragen, warum es so viele Sprachen gibt, ist wie zu fragen, warum C ++ 0x? :)
Und je mehr Sprachen Sie kennen, desto ausdrucksvoller können Sie werden - dies gilt sowohl für Programmiersprachen als auch für natürliche Sprachen!
quelle