![]() |
|
![]() ![]() ![]() |
|
natiki13 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
Насколько сегодня актуален такой язык программирования как APL? И насколько реально найти специалистов в этом языке на территории пост-советского пространства?
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Идея языка интересна (удобные векторы/матрицы), но синтаксис отвратителен, особенно использованием не ACII символов.
Тут пример. Ради академического интереса стоит изучить, но шанс, что ты его полюбишь очень мал, ещё сложней найти (активных) единомышленников... ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
APL, безусловно, язык сильный. Т.е. его главную идею -- мощные операции над многомерными массивами -- некоторые даже вообще определяют как самостоятельную парадигму (array programming). К ней относят и прямых потомков APL: J, A+, еще несколько языков в этом роде.
Самым главным недостатком я бы считал как раз отсутствие нормальных средств структурирования кода более высокого уровня, чем операции. А то в APL все то, что алгоритмизируется в рамках операций над массивами можно записать в одну строку (только вот потом проблема в этой строке разобраться ;) ), но как только надо реализовать какую-то более внешнюю логику, то к вашим услугам только безусловные и условные переходы (добро пожаловать в Фортран-4). нормальные условия и циклические операции, хотя бы, не помешали. Ну и новые возможности (ООП, нормальная обработка исключений) в языке б не помешали: то, что есть, как уж очень эзотерично. ;) А то, что набор символов не ASCII, собственно, преодолено во всех реализациях языка, где и ASCII-синонимы для всех операций есть. К тому же, все APL-символы прописаны в Unicode. --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 4 Всего: 41 |
Вытеснен компилируемым Fortran и интерпретируемым M.
|
|||
|
||||
fplab |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 9.11.2006 Репутация: нет Всего: 1 |
Доброго утра, коллеги !
А подскажите, пожалуйста, как пощупать APL ? Т.е. есть ли свободные реализации ? Спасибо |
|||
|
||||
jsharp36 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2011 Репутация: нет Всего: 1 |
Я работал на J два года. Это ASCII реализация APL. Не согласен, что если его изучишь, то полюбить шанс мал. Высокий порог вхождения. Изучить его тяжело. И набить руку очень тяжело. Но если это удастся, больше ни на чем не хочется писать. Хотя, я и на плюсах работал и на C# сейчас работаю.
Мощь этого языка просто не идет ни в какое сравнение с другими языками. В Джее также есть и ООП. Но ООП, на самом деле, не очень там нужно. Это выглядит дико как-то. Язык трудночитаем. Но также, краткость написания любого алгоритма не предрасполагают к использованию библиотек. Например, если там около 6 символов код, чтобы написать простой парсер CSV-файла, то очень лень писать многоразовую функцию, а потом ее искать. Это всё ведет к тому, что вы почти всегда работаете с одними и теми же встроенными сущностями, а не создаете свои. И это значит, что через пару лет, вы начнете свободно читать код и видеть в узорах женщин ))) Т.е. алгоритмы. В других языках, когда усилий больше нужно для написания кода, то приходится выдумывать имена и прятать за ними сделанную работу. Что не делает на самом деле программы суперпонятными. Так что непонятность кода - не аргумент. Это зависит от опыта. А вот, код на плюсах всегда будет непонятен при любом опыте, если есть уже структура классов. Нужно держать в голове, что делает каждый класс, что скрывается за каждым именем. Также, при работе с Джеем, всегда ощущение, что это не язык программирования, а очень мощный калькулятор или база данных или и то и другое вместе взятое или среда для ручного моделирования. На нем можно очень быстро (хотя когда есть опыт), что-то набросать, проверить, построить графики. И это не минус, а плюс, который следует из того, что я выше написал. Обычно программирование на других языках - кропотливая работа и каждый кусочек работы хочется сохранить, чтобы не повторять в будущем. В Джее "стоимость" кодирования субъективно намного ниже. Также, синтаксис, не согласен, что отвратителен. Как раз там придумали такой способ записи, который уменьшает до минимума создание новых имен. Если в других функциональных языках в лямбда-выражениях хоть имена надо давать формальным параметрам, то в Джее (и в АПЛ) этого не нужно. Именно в этом сила, мощь и гибкость. Минусом можно назвать динамическую типизацию. Но это на любителя. Не думаю, что в таком матричном языке это минус. К примеру, если делите матрицу целых чисел на матрицу целых чисел, то можете получить в зависимости от входных данных как матрицу целых чисел, так и рациональных, или действительных. Делать жесткие ограничения по типам здесь, по моему, и нецелесообразно. Так же, как плохо бы было вмешиваться в работу операции над матрицами и проверять на каждой итерации входные типы. Это сообщение отредактировал(а) jsharp36 - 8.10.2011, 22:32 |
|||
|
||||
![]() ![]() ![]() |
Добро пожаловать в раздел "Другие языки" форума Vingrad! | |
|
Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)
Приятного времяпрепровождения! С уважением, Void, kemiisto . |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Другие языки | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |