Различия между этими языками относительно невелики. APL «надлежащий» имеет преимущества и недостатки оригинальной символической записи. (Существуют незначительные изменения, которые были внесены в набор символов за эти годы, но все они достаточно верны первоначальному видению.)
Язык A + доступен с открытым исходным кодом. Он значительно отличается от «классических» APL, но он похож на них, сохраняя большую часть основного набора символов. Я чувствую, что он не был в курсе технологических изменений. Это был предшественник К.
Языки в семействе языков массивов, которые вышли из отличительного набора символов APL, включают J, K и Nial. Nial использует английские слова вместо символов и имеет интерпретатор с открытым исходным кодом Q'Nial. K и J полагаются в основном на символы, но они взяты из набора символов ASCII. Однако слова могут использоваться вместо символов в этих языках, просто назначая определения.
Семейство языков программирования APL было в основном проприетарным с момента первого появления APL в качестве продукта IBM в 1964 году. Проприетарные языки массивов, похоже, в настоящее время имеют большую поддержку и более быстрое развитие новых возможностей, чем альтернативы с открытым исходным кодом. Я не уверен, как все конкуренты складываются друг с другом, но Dyalog APL, безусловно, активно работает над продвижением их реализации языка в качестве современной технологии. APL2000 предлагает продукты для Unix, Linux и Windows, включая VisualAPL для .Net. MicroAPL Ltd предлагает APLX.
K - это специализированный язык, который больше не продается самостоятельно. Вместо этого Kx Systems продвигает базу данных Kdb + и ее язык Q (query), оба из которых написаны на K. Это мощный специализированный инструмент, предназначенный для высокоскоростной обработки потоковых данных. Это значительно отличается от первоначального подхода APL. Продукты Kx Systems дороги, а их пользователи в основном работают в сфере финансов.
APL был задуман и главным образом разработан Кеном Айверсоном. После полной карьеры применения и совершенствования APL в коммерческих приложениях он обратился к задаче «рационализированной» ревизии, которая исправляла аспекты языка, которым он был недоволен на протяжении многих лет. Этот свежий взгляд на тему называется J. Различия между J и APL изложены в статье на википедии J Software. Одним заметным изменением является устранение синтаксиса индексации массива. Однако самой большой особенностью является молчаливая форма, в которой программы пишутся путем составления функций без ссылки на их аргументы. Tacit J тесно связан со стилем «без точек», встречающимся в функциональных языках программирования, но отличается тем, что эта форма является фундаментальной для языка J. Символы на основе ASCII, используемые в J, могут быть сложнее для чтения, чем более характерные символы APL.
Для человека, желающего выучить язык массивов, я советую выбирать между Dyalog APL, APLX, J и Q'Nial. Dyalog APL (особенно для Windows) или APLX (особенно для Linux), вероятно, лучше всего подходят для тех, кто хочет использовать символику ядра, столь характерную для APL, и хочет прочной связи с сообществом APL в целом. J может быть лучше для тех, кто хочет создавать веб-приложения или сосредоточиться на математике (например, Project Euler), и особенно для тех, кто очарован молчаливым стилем, который он подчеркивает. Q'Nial - это то, что я выбрал бы, если бы моим приоритетом был открытый исходный код, но только если этот приоритет также не означал ожидания поддержки активного сообщества ОС.
ОБНОВЛЕНИЕ: J 7.01 был выпущен с открытым исходным кодом под GPL 3. Кроме того, есть Kona , вариант на K. Это увеличивает опции для массива с открытым исходным кодом языки.
ОБНОВЛЕНИЕ Tobia: GNU APL доступно под лицензией GPL. Это близко следует за последним опубликованным стандартом ISO на расширенном языке APL. Это отличная реализация APL с открытым исходным кодом, которая активно развивается и поддерживается. Есть и другие интересные реализации, например, ngn APL , удивительно хорошо оснащенная и современная реализация APL, написанная на Coffeescript (которая компилируется в Javascript.) Языки массивов живы и здоровы в 2015 году.