Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
no subject
я думал, ты с HTML/XML сравниваешь, а они тоже префиксные.
на алгебраическую нотацию таки ни то ни другое не похоже, это да.
no subject
no subject
каким образом, интересно?
там же пунктуационного шума больше в несколько раз.
no subject
(это(если(воспринимать(всё(это(как(шум(вот(сравните)))))))))
Правда, первую фразу - с привычной пунктуацией - читать легче? Вот и XML по примерно тем же причинам легче, как мне кажется. Ну и притом, разумеется, легче верифицировать (т.е. в S-expression тоже можно добавить верификацию, конечно, но в XML она более-менее природная).
no subject
45
легче нежели:
(+ 4 5)
?
дабы, тыкскыть, apples to apples сравнивать.
no subject
<plus><int>4</int><int>5</int></plus>
no subject
<chapter id="faq.html">
<title>First Part of the FAQ</title>
<titleabbrev>First</titleabbrev> <para>
This is the text
</para>
<para>
This is second text
</para>
</chapter>
проще понимать, чем:
(define-chapter "faq.html" "First Part of the FAQ" "First" ("This is the text" "This is second text"))
no subject
мы об что говорим? об удобстве представления тяжело структурированных данных (к каковым относится program source code), или об удобстве маркапа легко структурированного текста?
это ведь принципиально разные задачи: маркап можно убрать, и смысл приведённого отрывка не потеряется.
критерии оценки маркапа, соответственно, совершенно иные нежели критерии оценки структурирующего синтаксиса.
no subject
no subject
а. мне так не показалось.
но в таком виде мысль бредовая, сто пудов.
> легко структутированый текст, наоборот - в форме, указаной выше.
лёгкость тут лишь кажущаяся, ибо синтаксис здесь, при всей своей привычной алгебраичности, неиллюзорен и неопционален (и при небольшом усложнении кода лёгкость исчезнет напрочь — стоит лишь появиться необходимости устранить возможную двусмысленность. вспомни любой нетривиальный макрос для C-препроцессора, к примеру). но в целом — дело вкуса, спорить не с чем.
> снаружи я хочу видеть их так, как мне удобнее думать.
это очень правильно.
> мне неудобно думать в терминах списков и S-выражений. Возможно, это с непривычки - но неудобно.
а зачем думать в терминах списков и S-выражений? это всего лишь синтаксис, в его терминах думать не требуется (с непривычки приходится, да, но это ненадолго. причём сие касается любого непатологического синтаксиса, не только S-выражений).
no subject
Препроцессор C сделан для весьма узкого класса задач, и выход за пределы этого класса даёт не всегда хорошие результаты. Собственно, все макросы в C по идее должны быть более-менее тривиальны - исключая, возможно, всякие макросы-оптимизации типа замены memcpy и прочую требуху, которую никто видеть никогда не должен.
а зачем думать в терминах списков и S-выражений?
Ну, мне в тобой же порекомендованом учебнике первым делом рассказывают именно об этом. Но я согласен - вовсе не обязательно, да. Однако если язык на этом построен - то это некоторым образом стимулирует думать в эту сторону.
no subject
я перевожу: синтаксис языка Ц расширять трудно, поэтому никто этим не занимается. а поскольку никто в языке Ц этим не занимается, то значит и надобности нету.
[ тип тебе на будущие споры: надо вместо этого говорить, что вообще-то необходимость расширять синтаксис языка нормальному человеку и в голову-то не придёт. что есть чистая правда, если нормой считать средний статистический уровень современных айтишников. ]
> Но я согласен - вовсе не обязательно, да. Однако если язык на этом построен - то это некоторым образом стимулирует думать в эту сторону.
не совсем понял мысль. вот ежели тебе в голову приходит идея написать на языке Ц, скажем, функцию сложения двух чисел, то ты что же, немедленно начинаешь судорожно вспоминать где там надо фигурную скобку рисовать? ведь нет же, ты просто берёшь и пишешь эту самую функцию, если конечно не познакомился с языком Ц десять минут назад.
no subject
Я не говорил, что надобности нету. Я говорил, что препроцессор для этого - херовый инструмент. Вот lex/yacc, например - инструмент получше :)
не совсем понял мысль. вот ежели тебе в голову приходит идея написать на языке Ц, скажем, функцию сложения двух чисел, то ты что же, немедленно начинаешь судорожно вспоминать где там надо фигурную скобку рисовать?
Сложение двух чисел - слишком плохой пример, чтобы продемонстрировать различие подходов. Хороший пример - это решение нетривиальной задачи.
no subject
и каким, простите, боком lex/yacc расширяет синтаксис языка Ц?
> Сложение двух чисел - слишком плохой пример, чтобы продемонстрировать различие подходов. Хороший пример - это решение нетривиальной задачи.
чем менее тривиальна задача, тем менее важен синтаксис.
что, впрочем, к делу не относится.
к делу относится следующее: ты говоришь "но мне этот синтаксис не кажется естественным!". тебе говорят: "ясен пень, не кажется. он же для тебя непривычен." ты отвечаешь: "но он неестественный!".
ну и что тут можно ещё добавить? ну неестественный он, точно. ты прав, а я инопланетянин. заниматься маркетингом в тяжёлой форме я не собирался и не намерен. на дальнейший флейм можешь вон того юного академического юберменша разводить, он неплохо поддаётся.
а если действительно интересно, то я тебе ссылку на хорошую книжку дал.
no subject
Это зависит от того, что конкретно надо делать. Если задача в том, что в руках есть Ц, а надо понимать такой-то язык - то нужен yacc. Если задача в том, чтобы в Ц добавить конструкцию типа do-until вместо do-while - то это никому не надо :)
к делу относится следующее: ты говоришь "но мне этот синтаксис не кажется естественным!". тебе говорят: "ясен пень, не кажется. он же для тебя непривычен.
Ну, в общем-то, да. Я согласен, дело привычки. Но привычка пошла не из Ц, думается мне, 2+2 всё-таки ещё в школе учат, а (+ 2 2) только в универистете :)
на дальнейший флейм можешь вон того юного академического юберменша разводить, он неплохо поддаётся.
Я его, увы, лишил возможности разводить флейм. Уж больно бурный. Да и какой флейм-то? Я ж не говорю, что Лисп, упаси Боже, плохой или непригодный. Надо будет на Лиспе писать - напишем и на Лиспе. И не на таком писали.
а если действительно интересно, то я тебе ссылку на хорошую книжку дал.
Книжка само собой, я её и читаю потихоньку.
no subject
> Возможно, это с непривычки - но неудобно.
Вот именно, что с непривычки. Объективно оно - удобнее некуда.
no subject
нет, не скрывают, а наоборот, проясняют.
"Обьективно удобнее" - словосочетание, лишённое смысла. Обьективно удобно не бывает, бывает удобно кому-то.
no subject
Чем больше разных коснтрукций необходимо знать для прочтения программы, тем больше усилий приходится затрачивать на парсинг (в голове). По той же причине и инфиксная запись считается неудобной - надо знать о приоритетах, и всё там же, в голове, расставлять виртуальные скобочки.
> "Обьективно удобнее" - словосочетание, лишённое смысла. Обьективно удобно не бывает, бывает удобно кому-то.
Ни фига. Объективное удобство - это оптимум по набору универсальных критериев: отсутствие необходимости выполнения ненужных (устранимых) операций, компактность (возможность любую конструкцию распознать и удержать в памяти за одно прочтение при одном проходе взгляда - в полиграфии это давно вдоль и поперёк изученная наука), ортогональность (как следствие первого требования + требование минимизации требований к количеству того, что следует помнить и держать в активе).
А субъетивное "удобство" удобством не является. Оно должно называться "привычкой", и подвергаться всегда и везде жесточайшему осмеянию и зачмырению. Гнил тот человек, которому удобно то, к чему он привык, а не то, что объективно оптимально. Обычно тем, кто что-то там осмеливается говорить про субъективность удобства, приводят в пример слепой десятипальцевый метод печати. Он никому сразу не привычен, он выглядит противоестественно, для его усвоения необходимо приложить немаленькие усилия для устранения уже имеющихся привычек. Все обучающиеся кричат, что им уж-жасно "неудобно" - у каждого есть свои привычки.
no subject
Разумеется. Поэтому азбуку Морзе гораздо проще читать, чем русский текст - надо знать только точку и тире :)
По той же причине и инфиксная запись считается неудобной
Кем считается? Вами? На здоровье. Мной не считается. И любым человеком, который учился в школе, не считается. Вы можете пользоваться любой удобной вам формой, но при этом не ожидайте, что ваши личные идеи будут волновать кого-то другого.
компактность (возможность любую конструкцию распознать и удержать в памяти за одно прочтение при одном проходе взгляда
Распознавать лисповский синтаксис за "один проход взгляда" может только компилятор Лиспа, но никак не человек.
ортогональность (как следствие первого требования + требование минимизации требований к количеству того, что следует помнить и держать в активе)
Нет такого требования. Это вы придумали. Человек вполне может запомнить десяток конструкций - и оперировать десятком ему гораздо удобнее, чем одной конструкцией - потому что человек, в отличие от машины, не мыслит нулями и единичками. Есть требование упаковывать сложные конструкции в простые символы, которыми можно оперировать. При этом, конечно, хорошо, если символов не очень много - но это не должно быть в ущерб упрощению операций. Самый удобный язык программирования - отнюдь не ассемблер 8080, хотя в последнем команд совсем немного :)
А субъетивное "удобство" удобством не является. Оно должно называться "привычкой", и подвергаться всегда и везде жесточайшему осмеянию и зачмырению.
Ой, баюс, баюс, баюс!
Гнил тот человек, которому удобно то, к чему он привык, а не то, что объективно оптимально.
Оптимально - то, что помогает мне работать, а не то, что нравится вам. Если мне работать неудобно - все остальные разглагольствования можно засунуть в стек и не вынимать никогда, инструмент непригоден для использования. То, что по вашей теории выходит, что он самый хороший - мне возле птицы, поскольку мою продуктивность он не повысит.
no subject
Абсолютно некорректное сравнение.
Русский алфавит изучается гораздо проще, чем китайский. Так - более в тему.
> Кем считается? Вами? На здоровье.
Моё мнение в любом случае существенно весомее.
> Мной не считается.
Меня это нисколько не колышет. Гуманитарский бред всяких недоучек меня не интересует. Пока нет объетивного анализа - базара не будет.
> И любым человеком, который учился в школе, не считается.
Бред. Мнение быдла никого не колышет - быдло должно сдохнуть.
> Вы можете пользоваться любой удобной вам формой, но при этом не ожидайте, что ваши личные идеи будут волновать кого-то другого.
А меня не интересует мнение всякого дерьма. Те, кто мыслит в терминах "привычно" - грязь, и подлежат истреблению. Нерациональных людей не должно быть.
> Нет такого требования. Это вы придумали. Человек вполне может запомнить десяток конструкций - и оперировать десятком ему гораздо удобнее, чем одной конструкцией - потому что человек, в отличие от машины, не мыслит нулями и единичками.
В том и дело, что десяток - но не сотню.
> Есть требование упаковывать сложные конструкции в простые символы, которыми можно оперировать. При этом, конечно, хорошо, если символов не очень много - но это не должно быть в ущерб упрощению операций.
Объяснить, почему не прижились APL и FP? Или вы и слов таких не знаете - но смеете из себя умного корчить при этом?
> Оптимально - то, что помогает мне работать, а не то, что нравится вам.
Бред безграмотного быдла.
Оптимально - то, что позволяет работать эффективно. Время, затраченное на обучение, учитывается. Персональное удобство необученной шпаны никого никогда интересовать не будет. Шпану просто не будут в приличные места на работу брать - рез шпана такая нежная, что желает носиться со своими дебильными привычками.
> То, что по вашей теории выходит, что он самый хороший - мне возле птицы, поскольку мою продуктивность он не повысит.
Бред свинячий. Кто ты такое, чтоб оценивать заранее, что повысит продуктивность, а что - нет? Опять ткнуть харей в десятипальцевый метод - который всем баранам дико неудобен и непривычен, но никто и спорить не станет, что те, кто им владеют, в разы продуктивнее баранов...
no subject
Бред. Мнение быдла никого не колышет - быдло должно сдохнуть.
Бред безграмотного быдла.
Шпану просто не будут в приличные места на работу брать - рез шпана такая нежная, что желает носиться со своими дебильными привычками.
Бред свинячий.
Большое спасибо за интересную беседу. Вы абсолютно и во всём правы, победили на 100% и умнее меня в неизьяснимое число раз. Засим считаю беседу с вами законченой, а все последующие беседы - излишними.
no subject
Вариант с S-выражениями (http://ssax.sf.net) будет такой:
(chapter (@ (id "faq.html))
(title First Part of the FAQ)
(titleabbrev First)
(para This is the text)
(para This is second text)
)
no subject
если стоит задача посылать код по шумным каналам (нафига, собственно? но предположим, что стоит), то надо для этой цели пользоваться подходящим для этой цели представлением. на одном конце кодировать, на другом раскодировать.
в качестве шумоустойчивого представления иерархических данных XML тоже, кстати, как бы так мягко выразиться, неоптимален.
no subject
no subject
XML at its finest.