metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-20 08:09 am
Entry tags:

Внимание, системы типов и базы данных - срач

Спор про F# (там рекаптча если шо)

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

Т.е. вообще-то ее написать можно, через Reflection, но 1) это все только благодаря дотнету, но никак не системе типов; 2) это противоречит духу статической типизации и является способом стрелять себе в ногу.

Никак не могу человеку объяснить разницу между статической типизацией и натягиванием совы на глобус реализацией динамической типизации поверх языка со статической, чем занимаются 90% либ доступа к БД (все эти ADO.NET, ODBC, JDBC, BDE и прочая).

[identity profile] plumqqz.livejournal.com 2010-08-20 10:21 am (UTC)(link)
"-- Ты что же это, с ума сошел? -- кротко спросил Ипполит Матвеевич и двинулся к выходу.-- Обалдеешь ты среди гробов."

[identity profile] metaclass.livejournal.com 2010-08-20 10:41 am (UTC)(link)
Да вот, блин - каждое утро открываешь ЖЖ, а там - то у народа функции с переменным числом параметров со статической типизацией не получаются, то вот кортеж в БД и кортеж в статической системе типов F# друг с другом не хотят спариваться без гамака и скафандра :)

[identity profile] plumqqz.livejournal.com 2010-08-20 10:47 am (UTC)(link)
Так они и не спарятся. "В следующий запойный период Полесов изготовил стационарный двигатель, который был очень похож на настоящий, но не работал".

[identity profile] metaclass.livejournal.com 2010-08-20 10:57 am (UTC)(link)
Не, теоретически спарить можно, я как раз сейчас чем-то подобным занимаюсь.
Но без метапрограммирования в любой его форме не спарятся никак.

[identity profile] plumqqz.livejournal.com 2010-08-20 10:58 am (UTC)(link)
Вот и не лень же вам, а?

[identity profile] metaclass.livejournal.com 2010-08-20 11:16 am (UTC)(link)
Вот что мне точно лень - так это писать FieldByName и ParamByName вручную, тем более что оно теоретически алгоритмизируется.

[identity profile] plumqqz.livejournal.com 2010-08-20 11:18 am (UTC)(link)
Вот в данном случае вместо написания вручную требуется написание вножную лыжами стоя на голове в гамаке. В качестве циркового номера это, без сомнения, много зрелищней.

[identity profile] metaclass.livejournal.com 2010-08-20 11:50 am (UTC)(link)
Вообще причина в следующем: если писать "как обычно" - это очень быстро надоедает, устаешь и начинаешь делать ошибки. Ну и вообще занятие тупой повторяющейся работой ломает мозг.

Использовать кодогенерацию сложнее, но результат гарантированно содержит меньше ошибок и более полезен для ума :)

[identity profile] plumqqz.livejournal.com 2010-08-20 11:51 am (UTC)(link)
Все не нагенерируешь, увы.

[identity profile] metaclass.livejournal.com 2010-08-20 11:58 am (UTC)(link)
Так все и не надо - только то, что поддается генерации без извращений.

[identity profile] plumqqz.livejournal.com 2010-08-20 12:02 pm (UTC)(link)
И вообще лучше быть богатым и здоровым, чем бедным и больным :-)