Die Unterschiede zwischen diesen Sprachen sind relativ subtil. APL "richtig" hat die Vor- und Nachteile der ursprünglichen symbolischen Notation. (Im Laufe der Jahre wurden geringfügige Änderungen am Symbolsatz vorgenommen, die jedoch alle der ursprünglichen Vision entsprechen.)
Die Sprache A + ist Open Source verfügbar. Es weicht erheblich von den "klassischen" APLs ab, ist aber wie sie darin, den größten Teil des Kernzeichensatzes beizubehalten. Meiner Meinung nach wurde es nicht über technologische Änderungen auf dem Laufenden gehalten. Es war ein Vorläufer von K.
Zu den Sprachen in der Array-Sprachfamilie, die vom charakteristischen APL-Zeichensatz abgewichen sind, gehören J, K und Nial. Nial verwendet englische Wörter anstelle von Symbolen und verfügt über einen Open-Source-Interpreter namens Q'Nial. K und J basieren hauptsächlich auf Symbolen, diese werden jedoch aus dem ASCII-Zeichensatz gezogen. Wörter können jedoch anstelle von Symbolen in diesen Sprachen verwendet werden, indem einfach Definitionen zugewiesen werden.
Die APL-Familie von Programmiersprachen ist seit dem ersten Erscheinen von APL als IBM-Produkt im Jahr 1964 in erster Linie proprietär. Proprietäre Array-Sprachen scheinen derzeit mehr Unterstützung und schnellere Entwicklung neuer Funktionen zu bieten als Open-Source-Alternativen. Ich bin mir nicht sicher, wie sich alle Konkurrenten gegeneinander behaupten, aber Dyalog APL hat sicherlich aktiv daran gearbeitet, die Implementierung der Sprache als aktuelle Technologie voranzutreiben. APL2000 bietet Produkte für Unix, Linux und Windows an, einschließlich VisualAPL für .Net (im Ruhestand). MicroAPL Ltd bietet APLX (im Ruhestand) an.
K ist eine Fachsprache, die nicht mehr eigenständig vermarktet wird. Kx Systems vermarktet stattdessen die Kdb + -Datenbank und ihre Q-Sprache (Abfrage), die beide in K geschrieben sind. Es handelt sich um ein leistungsstarkes Spezialwerkzeug, das für die Hochgeschwindigkeitsverarbeitung von Streaming-Daten entwickelt wurde. Es weicht erheblich vom ursprünglichen APL-Ansatz ab. Kx Systems-Produkte sind teuer und ihre Benutzer arbeiten hauptsächlich im Finanzbereich.
APL wurde von Ken Iverson entworfen und hauptsächlich entworfen. Nach einer vollen Karriere als Anwender und Verfeinerer von APL in kommerziellen Anwendungen wandte er sich der Aufgabe zu, eine "rationalisierte" Überarbeitung vorzunehmen, die die Aspekte der Sprache korrigierte, mit denen er im Laufe der Jahre unzufrieden war. Diese neue Version des Themas heißt J. Die Unterschiede zwischen J und APL werden in einem Artikel im J-Software-Wiki skizziert. Eine bemerkenswerte Änderung ist die Eliminierung der Array-Indizierungssyntax. Das größte Merkmal ist jedoch die stillschweigende Form, in der Programme geschrieben werden, indem Funktionen ohne Bezugnahme auf ihre Argumente erstellt werden. Tacit J ist eng mit dem "punktfreien" Stil verwandt, der in funktionalen Programmiersprachen zu finden ist, unterscheidet sich jedoch darin, dass diese Form für die J-Sprache von grundlegender Bedeutung ist.
Für eine Person, die eine Array-Sprache lernen möchte, ist mein Rat, zwischen Dyalog APL, APLX, J und Q'Nial zu wählen. Dyalog APL (insbesondere für Windows) oder APLX (insbesondere für Linux) eignen sich wahrscheinlich am besten für jemanden, der die für APL so charakteristische Kernsymbolik verwenden möchte und eine starke Verbindung zur gesamten APL-Community wünscht. J eignet sich am besten für diejenigen, die Webanwendungen erstellen oder sich auf Mathematik konzentrieren möchten (wie Project Euler), und insbesondere für diejenigen, die von dem stillschweigenden Stil fasziniert sind, den es hervorhebt. Q'Nial ist das, was ich auswählen würde, wenn meine Priorität Open Source wäre, aber nur, wenn diese Priorität nicht auch bedeutet, die Unterstützung einer aktiven Betriebssystemgemeinschaft zu erwarten.
UPDATE: J 7.01 wurde mit Open Source Code unter GPL 3 veröffentlicht. Zusätzlich gibt es Kona , eine Variante von K. Diese erweitern die Optionen für Open-Source-Array-Sprachen.
UPDATE von Tobia: GNU APL ist unter der GPL verfügbar. Es folgt genau dem neuesten veröffentlichten ISO-Standard für die Extended APL-Sprache. Es ist eine großartige Open-Source-APL-Implementierung und wird aktiv entwickelt und gewartet. Es gibt auch andere interessante Implementierungen, zum Beispiel ngn / APL , eine überraschend gut funktionierende und moderne Implementierung von APL, die in CoffeeScript (das zu JavaScript kompiliert wird) geschrieben wurde. Array-Sprachen sind 2015 lebendig und gut.
UPDATE von Adám: Roger Hui , einer der Hauptimplementierer und Designer von J, ist seitdem zu Dyalog gekommen. Unter seiner Anleitung hat Dyalog APL viele von J inspirierte Funktionen hinzugefügt. Dies beinhaltet einen stillschweigenden funktionalen Programmierstil und mehrere Operatoren und Funktionen, von denen viele im Prozess verbessert wurden. Dyalog APL ist jetzt kostenlos für nichtkommerzielle Zwecke. Darüber hinaus sind mehrere neue APL-Implementierungen erschienen. siehe aplwiki.com . Array-Sprachen sind im Jahr 2020 lebendig und gut.