Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Другие языки > [APL] Язык программирования APL (АПЛ) |
Автор: natiki13 25.1.2008, 22:06 |
Насколько сегодня актуален такой язык программирования как APL? И насколько реально найти специалистов в этом языке на территории пост-советского пространства? |
Автор: Sardar 26.1.2008, 14:47 |
Идея языка интересна (удобные векторы/матрицы), но синтаксис отвратителен, особенно использованием не ACII символов. Тут http://catpad.net/michael/apl/. Ради академического интереса стоит изучить, но шанс, что ты его полюбишь очень мал, ещё сложней найти (активных) единомышленников... ![]() |
Автор: regis 29.1.2008, 14:10 |
APL, безусловно, язык сильный. Т.е. его главную идею -- мощные операции над многомерными массивами -- некоторые даже вообще определяют как самостоятельную парадигму (array programming). К ней относят и прямых потомков APL: J, A+, еще несколько языков в этом роде. Самым главным недостатком я бы считал как раз отсутствие нормальных средств структурирования кода более высокого уровня, чем операции. А то в APL все то, что алгоритмизируется в рамках операций над массивами можно записать в одну строку (только вот потом проблема в этой строке разобраться ;) ), но как только надо реализовать какую-то более внешнюю логику, то к вашим услугам только безусловные и условные переходы (добро пожаловать в Фортран-4). нормальные условия и циклические операции, хотя бы, не помешали. Ну и новые возможности (ООП, нормальная обработка исключений) в языке б не помешали: то, что есть, как уж очень эзотерично. ;) А то, что набор символов не ASCII, собственно, преодолено во всех реализациях языка, где и ASCII-синонимы для всех операций есть. К тому же, все APL-символы прописаны в Unicode. |
Автор: Cr@$h 18.1.2009, 10:04 |
Вытеснен компилируемым Fortran и интерпретируемым M. |
Автор: fplab 5.2.2009, 08:09 |
Доброго утра, коллеги ! А подскажите, пожалуйста, как пощупать APL ? Т.е. есть ли свободные реализации ? Спасибо |
Автор: jsharp36 8.10.2011, 22:30 |
Я работал на J два года. Это ASCII реализация APL. Не согласен, что если его изучишь, то полюбить шанс мал. Высокий порог вхождения. Изучить его тяжело. И набить руку очень тяжело. Но если это удастся, больше ни на чем не хочется писать. Хотя, я и на плюсах работал и на C# сейчас работаю. Мощь этого языка просто не идет ни в какое сравнение с другими языками. В Джее также есть и ООП. Но ООП, на самом деле, не очень там нужно. Это выглядит дико как-то. Язык трудночитаем. Но также, краткость написания любого алгоритма не предрасполагают к использованию библиотек. Например, если там около 6 символов код, чтобы написать простой парсер CSV-файла, то очень лень писать многоразовую функцию, а потом ее искать. Это всё ведет к тому, что вы почти всегда работаете с одними и теми же встроенными сущностями, а не создаете свои. И это значит, что через пару лет, вы начнете свободно читать код и видеть в узорах женщин ))) Т.е. алгоритмы. В других языках, когда усилий больше нужно для написания кода, то приходится выдумывать имена и прятать за ними сделанную работу. Что не делает на самом деле программы суперпонятными. Так что непонятность кода - не аргумент. Это зависит от опыта. А вот, код на плюсах всегда будет непонятен при любом опыте, если есть уже структура классов. Нужно держать в голове, что делает каждый класс, что скрывается за каждым именем. Также, при работе с Джеем, всегда ощущение, что это не язык программирования, а очень мощный калькулятор или база данных или и то и другое вместе взятое или среда для ручного моделирования. На нем можно очень быстро (хотя когда есть опыт), что-то набросать, проверить, построить графики. И это не минус, а плюс, который следует из того, что я выше написал. Обычно программирование на других языках - кропотливая работа и каждый кусочек работы хочется сохранить, чтобы не повторять в будущем. В Джее "стоимость" кодирования субъективно намного ниже. Также, синтаксис, не согласен, что отвратителен. Как раз там придумали такой способ записи, который уменьшает до минимума создание новых имен. Если в других функциональных языках в лямбда-выражениях хоть имена надо давать формальным параметрам, то в Джее (и в АПЛ) этого не нужно. Именно в этом сила, мощь и гибкость. Минусом можно назвать динамическую типизацию. Но это на любителя. Не думаю, что в таком матричном языке это минус. К примеру, если делите матрицу целых чисел на матрицу целых чисел, то можете получить в зависимости от входных данных как матрицу целых чисел, так и рациональных, или действительных. Делать жесткие ограничения по типам здесь, по моему, и нецелесообразно. Так же, как плохо бы было вмешиваться в работу операции над матрицами и проверять на каждой итерации входные типы. |