metaclass: (дзедline)
[personal profile] metaclass
В целях недопущения упрощения жизни, а так же чтобы псить, при необходимости, со знанием дела, осиливаю скалу.
Причем начал практически с конца - клепаю RESTful сервис на основе spray с всякими json-маршалингами внутри через имплициты и прочую адову содомию.
При достаточном количестве type-level магии оно выглядит, конечно, так же просто, как какое-нибудь руби, или как лиспы без скобок и с инфиксной записью, но внутренняя сложность, по-моему, зашкаливает. "Импортируй себе немножечко имплиситов и получи на халяву сериализаторы в json для всего", "Оберни маршруты в директивы логгера" и прочее такое.

Сборку завел, сначала через sbt (простой способ), потом импортировал в IDEA (условно простой) и потом стырил у [livejournal.com profile] jdevelop конфигурацию для мавена (нормальный способ). Воедино надо это как-то свести, чтобы не редактировать при добавлении новых зависимостей все вручную. Плюс еще импорт sbt в IDEA выглядит как ад и смерть.

Завести то я это чюдо заведу, но вот что с ним дальше делать, не совсем понятно. На данный момент картина выглядит так: Clojure проще, но скобки и стектрейсы компилятора отпугнут новых пользователей, Scala дико сложнее, но поначалу она выглядит как "почти жаба", обработка ошибок более читабельна и есть шансы, что в эту западню попадутся и желающие новеньких языков и любители сойти с ума на почве вычислений на типах.

Date: 2013-03-10 08:42 am (UTC)
From: [identity profile] xeno-by.livejournal.com
Блин насчет джейсона быстрее бы народ сообразил про имплисит макросы для этого дела, как сделали в плее. Натурально, один макрос и не надо больше никакой магии, даже импортов никаких не надо, даже явно писать ничего не надо - просто все начнет автоматически работать.

Впрочем, в 2.10.0 полной красоты не получится - для каждого класса надо все еще писать руками вызов генерирующего макроса (например, val fooSerializer = genSerializer[Foo]). Я сам дурак конечно, что оставил SI-5923 в 2.10.0, но я ж тогда ничего не понимал в тайпчекере. О, а ведь этот фикс можно легко бэкпортить из 2.11.0-SNAPSHOT в 2.10.2! Следите за новостями.

Date: 2013-03-10 10:15 am (UTC)
From: [identity profile] metaclass.livejournal.com
В jerkson 2.8 или 2.9 скала в требованиях :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 14th, 2025 02:01 pm
Powered by Dreamwidth Studios