metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-03-12 03:24 pm
Entry tags:

Неиспользование статической типизации

Столкнулся с тем, что наиболее внятно задача, которую я решаю, укладывается в Clojure и не укладывается (без частичного выкидывания статической типизации) в скалы-хаскели-C#-F#.
Вернее даже не выкидывание, а просто получается имитация типичного для Clojure типа данных Map[Symbol,Any] и использование его во все поля.

Можно, конечно, было бы убрать вообще всю логику, вплоть до SQL-запросов, из БД и писать запросы для ORM типа slick, но это в данном случае натягивание совы на глобус, более чем бессмысленное, т.к. статически типизированный результат запроса в ORM нужно будет превратить обратно в нихрена не типизированнный датасет типа Seq[Map[Symbol,Any]] и сериализовать его в json для клиента.
Или прикрутить shapeless (https://github.com/milessabin/shapeless) и навернуть extensible records поверх HList на предмет того, чтобы типовыводилка генерила еще и метаданные, но в итоге получится что-то совсем печальное и малопонятное.

[identity profile] metaclass.livejournal.com 2013-03-12 01:10 pm (UTC)(link)
Мне бы хватило, но результат, боюсь, никого не обрадует :)
Цель же не статические типы ради них самих, а упрощение себе жизни.

[identity profile] nivanych.livejournal.com 2013-03-14 06:00 am (UTC)(link)
(Я уже забыл и плохо представляю задачу)
А макросы не подходят? Они очень сложные и в них запросто быстро запутаться?