8 Stimmen

Wo sind die neuen Ideen in Programmiersprachen?

Ich habe mich kürzlich mit dem Thema Programmiersprachen beschäftigt und soweit ich gesehen habe, versuchen nur wenige ernsthafte Sprachen wirklich "neue" Dinge zu schaffen, die vor ihrer Entstehung noch nicht gesehen wurden.

  • Warum kombinieren alle mehr oder weniger erfolgreichen Programmiersprachen seit etwa 1980 einfach Aspekte ihrer Vorgänger?

Ich kann einfach nicht glauben, dass Programmiersprachen "nicht besser werden können"..

17voto

Jon Skeet Punkte 1325502

Statt wirklich "neu" zu sein, würde ich sagen, dass moderne Programmiersprachen allmählich Ideen einführen, die in der Informatik seit Jahrzehnten bekannt sind, aber bisher nicht wirklich in der Industrie angekommen sind - oder die zuvor in Nischen-Sprachen, aber nicht in Mainstream-Sprachen vorhanden waren.

Zum Beispiel sind viele der Ideen von LINQ an sich nicht neu - aber für viele Entwickler wird LINQ ihre erste Erfahrung damit sein.

Man kann es als Prozess der "Produktisierung" zuvor "experimenteller" Funktionen betrachten. Als ich kürzlich mit Eric Lippert gesprochen habe, sagte er, dass das C#-Team versucht, keine "offene Forschung" in die Sprache aufzunehmen - einfach weil sie nicht sagen können, ob diese Ideen langfristig erfolgreich sein werden. Es gibt genug Raum für Experimente in der Sprache, aber wahrscheinlich nicht in Mainstream-Sprachen.

15voto

rjh Punkte 47430

Äh, Perl 6?

  • aktive Metadaten zu Werten, Variablen, Unterprogrammen und Typen
  • parametrisierte Rollen
  • Makros (implementiert in Perl), die AST oder Quellcode umschreiben können
  • ein Grammatik, die in Perl 6 selbst implementiert ist und durch Code erweitert oder geändert werden kann
  • mehrfache Dispatches, distributive Dispatches, Delegation an das nächste Element in der Aufrufkette
  • Grammatiken als Objekte erster Klasse in der Sprache - kann so ziemlich alles analysieren
  • benutzerdefinierte Infix-, Präfix-, Umgebungs-Operatoren, die jedes Unicode-Zeichen verwenden können
  • optionale starke Typisierung
  • multi-morphe Gleichheitstests
  • hypothetische Variablen
  • Hyperoperatoren (SIMD-Verarbeitung von Listen)
  • Coroutinen
  • faule Listen
  • Junctions (Variablen mit mehreren Werten)
  • automatische Parallelisierung des Codes

Perl 6 übernimmt den Funktionsumfang von Perl, Ruby, Python usw., fügt ein optionales starkes Typsystem hinzu, das OO von Smalltalk und die funktionalen Fähigkeiten von Haskell - plus ein paar weitere Innovationen: genau wie Perl 5 Regexes in den Mainstream brachte, macht Perl 6 nicht-reguläre Grammatiken zu Bürgern erster Klasse. Und ja, es befindet sich in Entwicklung; obwohl es noch nicht vollständig ist, entwickelt es sich schnell weiter: Rakudo Perl 6.

6voto

RoflcoptrException Punkte 50975

Die Menschheit erfindet das Rad nicht alle zwei Jahre neu; wir verbessern es kontinuierlich. Das gleiche gilt für Programmiersprachen; wir verbessern sie, nicht ersetzen sie.

6voto

Mark Byers Punkte 761508

Was ist mit Subtext und Coherence?

4voto

Alasdair Punkte 778

Programmiersprachen können deutlich verbessert werden! Hast du schon einmal Sprachen wie Agda oder Epigram angeschaut? Natürlich handelt es sich hierbei um Forschungssprachen, also vielleicht nicht das, was man als 'ernsthafte Sprachen' bezeichnen würde. Allerdings könnten sie einen Einblick geben, wohin sich Mainstream-Sprachen in Zukunft entwickeln könnten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X