Re[9]: Размер класса
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 21.06.06 14:19
Оценка: 46 (5) +1
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 для коммерческой разработки.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.