metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-06-24 03:03 pm

Лямбды и Firebird, ад продолжается

А теперь, внимание, бородатая женщина будет есть червей мнение разработчика Firebird о лямбда-функциях:

Отвратительная возможность, провоцирующая написание нечитаемого
и несопровождаемого спагетти-кода, созданная на пустом месте чисто в
маркетинговых целях.
Вот такое моё частное мнение о лямбда-функциях.

[identity profile] volodymir-k.livejournal.com 2011-06-24 01:49 pm (UTC)(link)
И Вас с пятницей!
Извините за неразбрчивй пчрк.

[identity profile] nivanych.livejournal.com 2011-06-24 01:54 pm (UTC)(link)
Ну если без шуток, то основной проблемой было сделать нормальный язык для работы с низкоуровневым.
Почему-то, до сих пор, мало такого появилось. Может быть, что относительно недавно стали пытаться широко использовать зависимые типы.
Тем не менее, очень много элементов современных функциональных языков можно было бы с большим успехом запихать в низкоуровневые императивные.
А что культура императивная, ну так это очень плохо.
Поскольку, в большинстве ситуаций, не связанных с постоянной работой с низкоуровневым, уже довольно давно, вполне так можно было пользовать функциональщину, но с сишными вставками, для производительности.

[identity profile] freiksenet.livejournal.com 2011-06-24 01:59 pm (UTC)(link)
Ну напрямую и я им не пользуюсь, хотя пишу на Common Lisp %)

[identity profile] metaclass.livejournal.com 2011-06-24 01:59 pm (UTC)(link)
Подтверждаю, стектрейсы в ФП - нечитабельный кромешный ад. Для отладки нужно что-то совсем другое, какой-нибудь анализ потоков данных, что ли.

[identity profile] freiksenet.livejournal.com 2011-06-24 02:05 pm (UTC)(link)
Просто 8 анонимных функций подряд - это плохо. Таки надо выносить в отдельные функции. Тогда и стак трейсы читабельны, и в лиспе по умолчанию инспектор стека на всех уровнях и возможность прыгнуть на любой уровень. В общем миф это.

[identity profile] mudasobwa.livejournal.com 2011-06-24 02:11 pm (UTC)(link)
Ох, как я это люблю. Грамотный программист должен уметь все, да.

Грамотный программист еще должен быть грамотным, тогда уж, и уметь написать слово «исчисление» без пары ошибок.

На самом деле, грамотный программист на КОБОЛе (если не ошибаюсь, самая высокооплачиваемая на сегодняшний день профессия в мире IT), должен понимать совсем иное. А когда придет лямбда и всех порешит — грамотный программист должен будет знать другое.

Вы путаете «интересующегося студента» и «специалиста в узкой области». Если разработчики СУБД начнут тратить время на мю- и пи- мезоны — у нас с вами будут не базы данных, а конструкторы ЛЕГО.

[identity profile] freiksenet.livejournal.com 2011-06-24 02:17 pm (UTC)(link)
Я почти десять лет живу в другой стране, так что я думаю мне простительно делать ошибки в русском языке, особенно в терминах которые я изначально учил на английском ;)

Грамотный кодер на любом языке вполне может знать этот единственный язык. Грамотный программист будет знать и много языков, и математику, и theoretical computer science. Кодер будет всю жизнь писать опердень. Программист будет писать интересные проекты на любимых языках.

[identity profile] mudasobwa.livejournal.com 2011-06-24 02:20 pm (UTC)(link)
Я почти 40 лет живу в родной стране, и считаю, что мне непозволительно делать ошибки в тех трех языках, которым я обучился. Ну да ладно. Каждому — свое.

Зачем знать много языков человеку, которому интересна оптимизация БД? Зачем человек, которому не интересна оптимизация БД — владельцу БД?

[identity profile] mudasobwa.livejournal.com 2011-06-24 02:26 pm (UTC)(link)
Скажите, вы и правда полагаете, что удобство разработчика важнее скорости выполнения?

Или вы просто не понимаете, что означает «узкая специализация»?

[identity profile] gds.livejournal.com 2011-06-24 02:43 pm (UTC)(link)
если уже есть именованные функции, то не всё ли равно, будут ли ещё вдобавок нормальные анонимные функции, в том числе рекурсивные?

[identity profile] mudasobwa.livejournal.com 2011-06-24 02:55 pm (UTC)(link)
Вы на ассемблере программировали когда-нибудь?

[identity profile] metaclass.livejournal.com 2011-06-24 03:39 pm (UTC)(link)
Важнее всего практическое применение, а уж в этом Firebird упрекнуть не в чем :)
А вот после этого важна теоретическая правильность, потому что она позволяет поддерживать софт в живом состоянии и развивать его без особого напряга, особенно софт системного уровня типа СУБД.
Ну и новомодные штучки помогают поддерживать интерес в публике.

[identity profile] gds.livejournal.com 2011-06-24 03:40 pm (UTC)(link)
к сожалению, слишком много и слишком рано. Если намёк на direct vs indirect call -- не думаю, что субедешечька как-либо считает адреса функций; и наоборот, имея структурку, содержащую тело функции, выполнить функцию легче, чем имея имя, которое ещё надо "отрезолвить" в тело.

Так более того, простые анонимные функции фраербёрд умеет! То есть, вся "машинерия", отвечающая за отделение тела от имени, уже готова.

Впрочем, не понимаю, зачем вообще вопрос поднялся -- fixed point combinator нельзя изобразить, вероятно?

[identity profile] theiced.livejournal.com 2011-06-24 06:12 pm (UTC)(link)
даже на си можно лямбды сделать... ну почти ;)

[identity profile] theiced.livejournal.com 2011-06-24 06:14 pm (UTC)(link)
подтверждаю - стэктрейсы в лиспах охуенны.

[identity profile] theiced.livejournal.com 2011-06-24 06:19 pm (UTC)(link)
традиции юникс программирования последних десятков лет - это - внезапно - гну в основном. емаксы там и прочие гайлы.

[identity profile] vp.livejournal.com 2011-06-24 06:46 pm (UTC)(link)
Потому что все хорошо в меру :)

[identity profile] berezovsky.livejournal.com 2011-06-24 08:38 pm (UTC)(link)
пол макккартни

[identity profile] thedeemon.livejournal.com 2011-06-25 07:39 am (UTC)(link)
Давайте напишем на нем БД!

[identity profile] nivanych.livejournal.com 2011-06-25 07:42 am (UTC)(link)
Это будет темой следующего ICFP ;-)

[identity profile] migmit.livejournal.com 2011-06-25 08:01 pm (UTC)(link)
Я по работе пишу на плюсах, но отладкой почти не пользуюсь. Честно. Логи пока выручают практически полностью.

[identity profile] metaclass.livejournal.com 2011-06-25 08:05 pm (UTC)(link)
Я тоже не пользуюсь, хотя иногда быстрее брекпоинт поставить чем лог дописывать и потом его грепать в дебрях где-то.
Стек-трейсы опять же в логах толком не видны.

[identity profile] migmit.livejournal.com 2011-06-25 10:56 pm (UTC)(link)
Я довольно долго писал под приставки, так что уже привык. На приставках а) невозможно собирать всё в дебаг-версии, оно просто не влезет в память, и приходится собирать релиз, снимая оптимизацию с некоторых файлов; б) если пишешь под, например, SPU на PS3, то там вообще с чего бы то ни было снимать оптимизацию – значит нарываться. С логами тоже всё плохо, но это хотя бы можно как-то обходить – писать в переменные, DMA-шить на основной процессор и т.п.

[identity profile] permea-kra.livejournal.com 2011-06-26 08:43 am (UTC)(link)
По-моему, этой проблемы до сих пор не решили,

[identity profile] permea-kra.livejournal.com 2011-06-26 08:44 am (UTC)(link)
Да, от этого лиспового позора сложно отмыться.

Page 2 of 3