klapaucius,
K>Когда без коментариев даже человек разбирающийся в языке не может понять что делает код — это фича?
Кто сказал, что не может? Я говорил, что какой бы вы язык не взяли, всегда требуется выработать стиль и следовать этому стилю. Наличие внятных комментариев — важная составляющая хорошего стиля. И APL/K/J не исключение.
LCR>>Во вторых,
LCR>>
LCR>>Совершеннно ничего не значащий набор символов для ученика начальных классов. Но этот факт говорит лишь о немощи этого ученика.
K>Во-первых, это не говорит о немощи ученика, как не говорит о Вашей немощи (предположительное) незнание валлийского языка.
Именно моё невладение валлийским языком и говорит обо мне как о пустом месте, когда требуется прочитать поэму на валлийском языке. Я могу теоретически это исправить изучив язык до уровня, на котором я смогу прочитать типичный текст. И до этого момента у меня просто не хватит наглости сказать: "Валлийский — плохой язык, его невозможно читать."
Короче, "не лезть в чужой монастырь со своим уставом" — это сугубо моё внутреннее ограничение, которое тем не менее многие окружающие меня люди считают разумным поведением.
K>Во-вторых, синтаксис математических выражений оттачивался столетиями, и он не ограничен набором аски-закорючек, что очень хорошо приведенная Вами формула демонстрирует. Кроме того синтаксис математических выражений общепринят и изучается всеми начиная со школы. Если бы код выглядел именно как метематические выражения я бы про синтаксическую недостаточность не говорил. Математика, в принципе, тоже когда-то была чем-то эзотерическим, вот только такой большой отрезок времени (чтобы изотерика стала мейнстримом) никакой язык программирования просто не проживет.
K>Легко видеть, что код этот не похож ни на декларативную математическую запись — ни на общепринятый способ записи алгоритмов.
Да, это действительно нечто новое. Анализу подвергались мельчайшие детали математической нотации с целью
максимальной унификации и упрощения последней. ASCII — исключительно ограничение, возникшее из-за соприкосновения с реальными операционными системами. Только в последнее время стало возможным безболезненно писать программы в Юникоде.
K>Этот код напоминает страшнейшие write-only регекспы (которые зачастую даже их автор не может прочитать уже через 2 минуты после написания) с редкими вкраплениями чисел и сокращенных названий математических функций.
Слишком много эмоций, причём совершенно не по делу. Есть функции, данные, и то и другое могут иметь имена. Те куски, которые вам напомнили "write-only регекспы, которые даже их автор..." содержат на 90% идиоматические конструкции.
Ну что ещё могу добавить? Ну вот месяцок-другой назад
постАвтор: Mikl Kurkov
Дата: 08.02.06
был про волка, козу и капусту. Никто не умер.
K>Какие это дает преимущества, кроме автоматической обфускации, лично мне (по всей видимости, очень ограниченному человеку) совершенно непонятно.
1. K и J содержит большое количество действительно новых идей, а не старья в 984234-й инстанции заимствованного из других языков.
2. K и J являются самыми быстрыми интерпретируемыми языками благодаря их уникальным способностям к операциям с массивами. J особенно силён в математическом, статистическом анализ данных, K — в базах данных. Следствием интерпретируемости является большая гибкость.
3. Помимо синтаксиса эти языки несут определённую точку зрения на проблему, взгляд с которой помогает находить решения лучше для задач, где чего-то уже было, или хоть что нибудь, если ничего не было.
4. K и J очень компактны, соответственно и скорость создания программы тоже очень высока. В комментариях к "выпуклой оболочке на J" проскальзывала информация, что на ежегодной выставке в Нью-Йорке товарищ из KX в реальном времени (за 0.5...1 часа) пишет довольно-таки фукнциональную ERP, заказчиком выступают зрители в зале. Очень впечатляет.
5. Наконец, писать/читать программки на J это интересно, и кроме того очень полезно — совершенствуются навыки, которые востребованы сплошь и рядом, не только в программировании.
Определённо не для мэйнстрима, но есть люди, применяющие J для коммерческой разработки.