metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-09-03 09:31 pm
Entry tags:

Привет из 80х годов прошлого века

Вспомнил один срач на тему однопроходных компиляторов, где Steve Yegge критиковал Clojure за то, что в ней объявления видны не во всем модуле, а только ниже объявления. (Ну, за исключением declare которые что-то вроде forward-объявлений).
Сижу приделываю новую фичу к кодогенератору на F# - и таки внезапно оказывается, что это не только в Clojure, но так же и F#, и, что самое печальное, - в долбаном SQL, который я генерирую.
Сижу вот, сортирую объекты из которых генерируется SQL по зависимостям.

А как с этим дела обстоят в Scala?
Я тут подумываю, что надо бы провести сравнение F# и Scala на моих задачах, все равно уже полная работа JVM и жаб, так может, выводилка типов в Scala для меня окажется более приемлемой, чем дикий ад в F# (теперь я понимаю, почему его [livejournal.com profile] thesz критикует). Ну и макросы в скале [livejournal.com profile] xeno_by прикрутил вроде уже.
Хотя единственное, что мне приходит в голову на тему приличного использования макросов - это при их выполнении долбится в БД или модель этой БД и генерировать код.

[identity profile] xeno-by.livejournal.com 2012-09-03 10:12 pm (UTC)(link)
я если честно jrebel не юзал никогда, поэтому не могу ничего сказать. кстати что он делает с уже существующими в памяти объектами измененных классов? (с надеждой) прозрачно подменяет класс на новый?

[identity profile] golikov konstantine (from livejournal.com) 2012-09-03 10:44 pm (UTC)(link)
уже инстанциированные объекты ведут себя как старый класс, новые объекты ведут себя как новый подгруженный класс

[identity profile] anton-arhipov.livejournal.com 2012-09-19 07:48 pm (UTC)(link)
неверно. уже существующие экземпляры получают то же самое поведение, т.е новые методы и константы будут доступны всем.
новые поля в существующих объектах не будут проинизиализированы только, тк jrebel не перезапускает конструктор

[identity profile] golikov konstantine (from livejournal.com) 2012-09-19 09:13 pm (UTC)(link)
спасибо за исправление

хотел спросить когда можно будет перегружать суперклассы, а вы оказывается уже это поправили в новом jrebel'е
прямо вау-вау

[identity profile] anton-arhipov.livejournal.com 2012-09-20 04:56 am (UTC)(link)
супер классы сейчас не перегружаются

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