Найти тему

Привет, эксперты!


Продолжаем вспоминать самые важные языки программирования, которыми больше почти не пользуются. Сегодня на очереди клингонский язык APL — совершивший революцию в обработке массивов, но требовавший отдельную клавиатуру для написания кода.

Название APL расшифровывается еще проще, чем у большинства языков, которые мы рассматривали раньше. APL — A Programming Language — был создан Кеном Айверсоном в 1962 году. Изначально это была рукописная нотация для записи математических операций с массивами. Позже IBM превратила её в язык программирования, сосредоточенный на обработке массивов. APL позволял эффективно управлять большими объемами данных с минимальными затратами ресурсов.

* * *

APL известен своим алфавитом: авторы посчитали, что цифры и латиница — слишком просто и добавили загадочных символов. Например, реализация игры «Жизнь» на APL выглядит как загадочный код, который неподготовленному (даже умеющему программировать) человеку расшифровать будет тяжко. Для работы с ним требовалась специальная клавиатура с уникальными символами:

life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

Несмотря на сложности, APL был популярен на мейнфреймах благодаря своей способности работать с ограниченной оперативной памятью.

* * *

Выше мы уже сказали, что APL создал революцию в обработке массивов. В эпоху, когда сложение двух списков чисел требовало использования циклов, этот язык позволял работать с целыми массивами одновременно. Это стало прорывом в прикладной математике, где операции над большими матрицами стали проще и эффективнее.

В итоге APL вдохновил создание современных инструментов для обработки данных, таких как R, numpy, pandas и Matlab. Прямыми наследниками APL стали языки J, Dyalog, K и Q, которые используют в финансовом секторе. APL также способствовал появлению такого понятия, как векторизация. Он и был первым векторным языком программирования.

* * *

Несложно догадаться, что основной проблемой APL были специализированные клавиатуры, затруднявшие его использование. Попытка решить эту проблему в языке J, созданном Иверсоном в 1990 году, оказалась слишком запоздалой. Тогда он предложил использовать диграфы: знак ≠, например, заменился на ~:. Но рынок уже был насыщен другими языками программирования и было поздно.

Еще одна проблема APL — работа только с однородными данными. Невозможность хранить строки и числа в одной структуре данных ограничивала его применение в современной науке о данных, где работа с разнородными данными стала стандартом. В результате, несмотря на свои инновации, APL не смог удержать популярность.

Язык повлиял на развитие множества современных инструментов и подходов в программировании и обработке данных.

#мертвые_языки
2 минуты