Was treibt die Einführung neuer Programmiersprachen an oder nicht? [geschlossen]

12

Ich möchte mich wirklich darauf konzentrieren, warum einige neue Programmiersprachen in den Mainstream übernommen werden und andere relativ nisch bleiben. Ich würde gerne etwas über bestimmte Anwendungsfälle, Abwärtskompatibilität oder einige neue Funktionen sowie über einfache oder komplexe Implementierungsschwierigkeiten erfahren. Spezifische Beispiele wären wünschenswert, aber lassen Sie uns hier nicht über die genaue Definition von "Mainstream" oder "Nische" auf dem Laufenden bleiben.

DeadMG
quelle
2
Zufall und unternehmerische Unterstützung sind ein großer Faktor. steve-yegge.blogspot.com/2007/02/next-big-language.html
Job
3
Keine passende Frage zu diesem Forum
Ryan
Naja, zum einen ist das kein Forum. Und für zwei finde ich, dass dies die Richtlinien für eine subjektive Frage ziemlich gut erfüllt.
DeadMG
1
Die Annahme einer Programmiersprache hängt umgekehrt von der Anzahl der Hipster ab, die sie verwenden.

Antworten:

18

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:

  1. 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?
  2. Ist es einfach unter Windows zu installieren (XP | Vista | 7,8 ...)?
  3. Sind Mac / iOS-Plattformen abgedeckt?
  4. Kann es ohne Beeinträchtigung auf älteren Unix-Systemen installiert werden?
  5. 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.

unpythonisch
quelle
1
Der bestimmende Faktor in den meisten Ihrer Kriterien ist Corporate Unterstützung . Java hat vielleicht für eine einfache Umstellung gesorgt, aber ohne jemanden, der bereit ist, Jahr für Jahr Millionen davon in die Luft zu jagen, ist es nicht klar, welchen Unterschied das gemacht hätte. Also, Sie haben Recht, die sehr Reichen wissen die Antwort auf diese
Frage
4
@jaybee - Ich bin mir nicht sicher, ob die Unterstützung der Unternehmen durch die Sprachentwickler wirklich hilfreich war. Fortran und C wurde von IBM / ATT nicht besonders geholfen. Die Oracle-Verbindung scheint Java aktiv zu schaden. Basic, Perl, Python, Ruby usw. hatten keine Unternehmen hinter sich. Interne Unternehmensunterstützung beim Benutzer / Kunden ist wichtig, aber das folgt, lange nachdem es allgegenwärtig wird.
Martin Beckett
1
@ Martin Beckett: Du hast vielleicht einen Punkt. Ich denke jedoch, dass, obwohl alle Arten von Planeten aufeinander abgestimmt sein müssen, damit eine Sprache eine kritische Masse erreicht, die "moderne" Art, diese Planeten in eine Linie zu bringen, darin zu bestehen, Geld zu verbrennen. Zum Beispiel verwendet Mark Haskell als Beispiel - es hat zwar eine großartige, stimmliche Nutzerbasis, aber GHC gewinnt eine Menge Argumente für sie. Compiler wie GHC kosten Geld.
Jaybee
@jaybee - es gibt viel Glück. Aber für coole neue Web-Sprachen ist es möglicherweise die Marketing-Fähigkeit des Urhebers / Early Adopters, die zählt.
Martin Beckett
11

Sprachen werden populär, weil sie einen Vorteil gegenüber vorhandenen Sprachen in einem Bereich haben, der benötigt wird.

Java

  • Automatische Speicherverwaltung (vergleiche mit C ++ und C)
  • In Threading integrierte Sprache / API
  • Läuft auf einer virtuellen Maschine (dh die Entwickler können Windows auf Entwicklungsmaschinen zum Testen und Bereitstellen der Anwendung verwenden, ohne Änderungen unter Linux / Unix vornehmen zu müssen).
  • Die Netzwerkprogrammierung ist viel einfacher als in den zuvor beliebtesten Sprachen (C ++ und C) und Java wurde veröffentlicht, als das Internet populär wurde.

PHP

  • Webentwicklung leicht gemacht
  • Integrierte Unterstützung für die Verbindung mit MySQL-Datenbanken
  • Es war keine Kompilierung erforderlich und es war einfach, die Skripte direkt in Ihre HTML-Dateien einzubinden.

JavaScript

  • Die einzige Sprache für Webbrowser.
  • Webbrowser werden immer häufiger als Thin Clients (Webanwendungen) eingesetzt.
  • Mobiler Code - einfach bereitzustellen und ohne Installation

Ziel c

  • Die Sprache für die Mac OS X-Umgebung und das iPhone. Und das iPhone war ein großer Erfolg.

Rubin

  • Zusammen mit Ruby on Rails - einem Webframework - wurde die groß angelegte Webentwicklung mit MVC erheblich vereinfacht.

C #

  • Die Sprache für Windows-Umgebungen der letzten zehn Jahre. Fast alle Microsoft-APIs sind mit C # einfach zu verwenden, z. B. Winforms und WPF und WCF.

ActionScript

  • Die einzige Sprache für Addobe Flash / Flex, die einen enormen Erfolg für Medieninhalte im Internet und für Dinge hatte, mit denen JavaScript nicht umgehen konnte.

Erlang

  • Parallelität und Fehlertoleranz - Erlang verfügte über ein einzigartiges Modell für fehlertolerante Systeme für Parallelität und Frameworks. Begann, für die Telekommunikationsbranche nützlich zu sein, später Open-Source-Dienste zu nutzen und Interesse bei großen Internet-Unternehmen zu wecken, die auch Fehlertoleranz benötigten.
Jonas
quelle
1
Erlang's Parallelitätsmodell ist nicht einzigartig, es unterscheidet sich nur von dem, das von den hässlichen imperativen Sprachen verwendet wird :). Scala hat den gleichen Typ. Ebenso sind Clojure und Haskell auf STM spezialisiert.
Alternative
4
@mathepic: Stimmt, aber all diese Sprachen sind neuer als Erlang. So war es für Erlang am Anfang einzigartig - wie bei fast allen Sprachfunktionen, die ich aufgelistet habe. Gute Ideen sind es wert, gestohlen zu werden.
Jonas
1
C # ist die .net-Sprache. Ich dachte, Windows wurde tatsächlich in C ++ geschrieben. Liege ich falsch Ich würde sagen, dass C # populär wurde, indem eine bereits bekannte Sprache (C) mit einem neuen Framework genutzt wurde, das das Entwickeln leistungsfähiger Anwendungen mit einem leistungsstarken, benutzerfreundlichen Editor-Tool, das die Bedürfnisse der Entwickler und die tatsächliche Verwendung berücksichtigte, einfacher machte.
SoylentGray
1
@Chad C # hat nichts mit C zu tun
Alternative
1
@mathepic - Ich habe an C-, C ++ - und C # -Programmierung gearbeitet. Ich kann sagen, dass C # seine c-Wurzeln bis zur Nomeklatur beibehält. Zugegeben, es ist über C hinausgegangen, was nicht bedeutet, dass die Sprache nicht genutzt wird.
SoylentGray
5

Ich werde ein Zyniker sein: Geld und damit Marketing.

Es ist kein Zufall, dass C # von Microsoft, Java von Oracle und Objective C von Apple unterstützt wird. Nur Go von Google hat sich noch nicht wirklich verbessert.

Natürlich ist Geld nicht der einzige Grund, aber tiefe Taschen helfen dabei, Ihre Sprache auf den Markt zu bringen.

Carra
quelle
Ich muss zustimmen und erweitern: Schlagworte, Managerattraktivität, große Namen, aufregend klingende Features. Wenn Sie nicht einverstanden sind, gebe ich Ihnen nur einen Namen: COBOL.
SF.
1
C # und Obj-C werden nicht so sehr unterstützt wie von "mandated". Es ist schwierig, Windows-Apps in c ++ mit nur von MSFT bereitgestellten APIs zu programmieren, und AFAIK only obj-C ist auf mindestens Apple-Mobilplattformen zulässig. Andererseits könnte die Klage von Oracle gegen Android-Hersteller Java schaden
Martin Beckett,
1
@Martin - Du hast weitgehend Recht WRT Obj-C. Technisch gesehen können Sie Dinge wie Appcelerator Ttanium verwenden, um andere Sprachen zum Schreiben der Apps zu verwenden, aber es wird immer noch für die Bereitstellung in Obj-C konvertiert (und es war ein Kampf für sie, auch das zu bekommen). Apple wird so gut wie alles andere verbieten (sogar PhoneGap ist eine feine Linie gegangen).
Shauna
3

Auf der einen Seite geht es um Marketing, genauer gesagt um Präsentationen, Blogs usw. Es ist wichtig, Funktionen zu haben, mit denen sich Mainstream-Programmierer identifizieren und Vorteile gegenüber dem, was sie wissen, erkennen können (Java vs. C ++ - Garbage Collector vs. Memory Management). Last, but not least muss die Eintrittsbarriere niedrig sein - Beispiele, gute Dokumentationen, nahtlose Installation, gute Community und Unterstützung, dynamische Entwicklung.

Gabriel Ščerbák
quelle
1

Fast alle Sprachen hatten nicht triviale, reale Problemlösungsprogramme, die sehr früh in ihrem Leben mit ihnen geschrieben wurden.

Unix wurde in C geschrieben, genau wie die Tools unter Unix, als C noch sehr jung war und sich weiterentwickelte.

Anaconda (RedHats Installationsprogramm) wurde in Python geschrieben, als Python noch jung war und nicht die Popularität von heute hatte.

Dies sind die Dinge, an die ich mich ohne weiteres erinnern kann. Diese Liste könnte jede der Sprachen berühren, die ihre Gründungsjahre überstanden haben.

Dann kann eine groß angelegte Übernahme an den Universitäten die Langlebigkeit einer Sprache verbessern. Java ist als Unterrichtssprache an Universitäten sehr beliebt. In gewissem Maße genießen auch Lisp und die Dialekte von Lisp diesen Status.

vpit3833
quelle