Category: наука

Лекции по гомотопической теории типов (Санкт-Петербург)

6 февраля в 19:00 на 4-м этаже бизнес-центра "Таймс" (рядом с Кантемировским мостом) на базе института биоинформатики JetBrains стартует курс лекций Валерия Исаева (СПбАУ), напрямую посвященный гомотопической теории типов.

Первую лекцию можно посмотреть вот здесь:
Book

Haskell vs Prolog

Неожиданно пришёл развёрнутый ответ на мой старый (неумный, так что нет смысла приводить его здесь) пост о Haskell vs Prolog. Возражений 2: а) хаскелл не равноценная замена Прологу б) не надоть нам ентих абстракций.

> Хаскел не сложнее Пролога. Но он

возражаю. именно что "мощнее" (более широкого применения), но и сложнее на пару порядков. в понимании и применении.

1) любая претендующая на универсальность механика сложнее специализированной и оптимизированной под конкретный тип задач.

2) реализовать на Хаскеле или другом языке типа МЛ механику примитивного варианта пролога конечно можно. очень просто. несколько строк. но эта реализация будет годна лишь для простых задач. она _не будет конкурентоспособна_ и сравнима по эффективности с нормальными развитыми реализациями пролога, на более-менее крупных реальных проблемах. ни по скорости поиска решения. ни по обьему потребляемой памяти. ни по эффективности доступа к памяти (в том числе излишняя нагрузка на GC). не будет в ней и новых логических разработок типа constraints. которые дают во многих реальных задачах много порядков _алгоритмического_ преимущества перед примитивным старым движком пролога.

3) менее очевидная засада с Хаскелем (при попытке применять его вместо пролога в задачах где обычно применяют пролог) это его кэррирование и т.п. эта концепция внешне кажется привлекательной но на самом деле лишь прячет связи между частями программы под капот, делая ее на порядок менее читабельной. программы на прологе более многословны но как раз это обилие явных логических переменных через которые идут потоки данных между предикатами делает понимание, чтение и главное _модификацию_ программ на прологе гораздо более простой. просто-напросто меньше приходится держать в голове и больше можно думать о задаче а не о механике ее реализации. в хаскеле гораздо больше позиционности и контекстной зависимости. это не сказывается когда реализуется готовое решение один раз. но это очень сказывается когда идет процесс поиска решения и постоянные переделки. пролог более декларативен и абстрактен, в своей области.

таким образом пролог уверенно держит свою нишу инструмента исследователя и средства прототипирования. помогая в решении задач или уточнении недостаточно проработанных постановок задач. помогая экпериментировать пробуя и обьективно сравнивая разные варианты решений. и хаскель не вытеснит пролог из этой ниши. кстати типизация тут не сказывается. тут только удобство формулировки и поиска решения сказывается.

а далее найденное и проработанное во всех моментах решение переписывается на сильнотипизированном языке, да. для упрощения поддержки отдельной командой индусов. но и тут хаскель не идеал. тут лучше что-то типа МЛ или меркури применять. это гораздо более прямолинейные языки а чем меньше всяких хитровыделанностей и спецабстракций в языке тем лучше он подходит на роль промышленного, для команд индусов/студентов.

я воспринимаю хаскель как академический мутант пролога и мл. он конечно дает богатый корм академикам - кучу тем для статей с новой хитровыделанной терминологией как это было и есть с ООП (тоже не дающая никаких практических преимуществ парадигма, кстати). но он не способен удовлетворить так же хорошо ни одну из двух областей которые он пытается совместить. несовместимых между собой в принципе кстати. вся эта терминология конечно формирует некую цельную идеологию. беда в том что понятия "практическая полезность" и "реальная необходимость" при создании этой идеологии не учитывались никак. не были ее разработчики практиками. они теоретики. это не порок, просто другой акцент.

думаю ниша хаскеля останется академической. его разработчиков не интересовало реально практическое удобство применения и реальные ниши - ниши проектирования и инженерной реализации. они только предполагали но не проверяли на практике. что легко видеть по тому что хаскель рос как придется и даже не имеет единообразной системы модульных имен. и выглядит как несистематизированная куча, поэтому его надо знать весь чтоб понимать. грубо говоря хаскель это как джек-решу-все пытающийся быть как архитектором дома так и каменщиком кладущим кирпичи. в то время как эти вещи требуют развития человеческого организма в принципиально разные стороны )) либо голова либо руки. на все сразу времени не хватит и пользоваться малой кучей навыков удобнее.

с уважением, 4KCheshireCat
китайский пазл, фиолетовый, игрушка, бегемот, lilo

экономический аспект

0. Встретил на другом форуме вопрос, который хочу задать здесь. В наших недоразвитых государствах программисты считаются богачами. Согласно экономической теории, если в некоторой профессиональной области зарплата выше, то люди переквалифицируются, предложение труда увеличивается, и зарплаты выравниваются. Как программирование смогло сохранить высокие зарплаты уже в течение десятилетий?

[Update 2014-11-05. «Украинки открыли охоту на женихов-программистов».]

[Update 2014-11-23. Когда будут популярны обычные статистики?]

1. Прикладная наука питается от промышленности. Информатика является теорией программирования. Поскольку программисты являются богачами, и информатикам должно что-то перепадать. Почему мы не наблюдаем перетока денег из программирования в информатику?