[03:07:20] <vlad2> Собрал наш мегааппликэйшн студией 2015.
[03:09:05] <vlad2> exe/dll получились _меньше_ на ~20%. Обероншикам на заметку - приложения не всегда растут с новыми версиями.
[04:33:31] <vlad2> Долго смеялся: http://classicprogrammerpaintings.tumblr.com/
[04:35:51] <vlad2> Особенно вот это: “Consultant shows Clojure code sample to VBA team”
[08:31:49] <Kemet> наконец-то
Added NEW with return type. Mainly for the interpreter. But can be useful in A2 Oberon also
Example:
VAR d: Diagnostics.Diagnostics;
BEGIN
d := NEW Diagnostics.StreamDiagnostics(context.out);

[16:08:47] <kemiisto> Ммм...
[16:09:02] <kemiisto> Kemet: это типа конструктор как у всех?
[16:09:43] <kemiisto> ИЧСХ, я сейчас как раз "дискутирую" с prospero78 за конструкторы в Оберонах и не только.
[16:09:53] <kemiisto> Совпадение? Не думаю! :-D
[16:10:04] <kemiisto> Diagnostics.Diagnostics -
[16:10:08] <kemiisto> не уровень же!
[16:25:03] <kemiisto> https://habrahabr.ru/post/281320/
[16:25:06] <kemiisto> ох лол
[16:25:31] <kemiisto> Но и тут go со своей гиперпростотой возможно никогда не будет чем-то захватывающим. В чем challenge (кроме как выучить новый язык за выходные)?
[16:25:35] <kemiisto> :-D
[16:25:46] <kemiisto> Не показывайте это Оберонщикам!
[16:32:55] <Kemet> kemiisto: да, вызов конструктора для Объеекта. Раньше оно было только как в классическом обероне
VAR x : X;
...
NEW(x, 1,2,3)
а теперь возвращает сначение и можно создать сразу наследника, не городя дополнительные переменные. но это таки ломает оберон, да
[16:34:30] <Kemet> причем была еще одна форма x := NEW(X, 1,2,3); теперь x := NEW X(1,2,3)
[16:50:07] <Kemet> kemiisto: но, строго говоря, в Активном Обероне нет конструкторов - есть Инициализаторы. Это терминологическая тонкость
[16:50:37] <kemiisto> понимаю
[16:50:42] <kemiisto> ну уровне языка нет
[16:50:53] <kemiisto> на
[16:58:14] <Kemet> да, созданием в Оберонах занимается рантайм. а инициализация уже за программистом и Активный Оберон предоставляет для этого срелства для обозхначения инициализаторов и компилятор автоматически выбирает инициализатор по сигнатуре (инициализаторов может быть сколтько хочешь)
[17:14:58] <kemiisto> то есть как-то поменять механизм выделяния памяти, не меняя рантайм нельзя?
[17:18:14] <kemiisto> http://forum.oberoncore.ru/viewtopic.php?f=25&t=4362
[17:18:32] <kemiisto> Вот она тема моей мечты! :-D
[17:46:28] <kemiisto> Говоря современным языком, в сорок лет Илья Муромец впервые вышел из зоны комфорта. :-D
[17:46:39] <kemiisto> Вот, кстати, зачем нужен Оберон!
[17:47:07] <kemiisto> Говнокодишь годами на плюсах? Хочешь челенджа? :-D
[17:47:17] <kemiisto> Выйди из зоны комфорта! Освой Оберон!
[17:59:05] <_valexey_> kemiisto: проблема оберона в том, что его не нужно осваивать :-)
[17:59:19] <vlad2> Kemet, конструкторы уже сто лет в ебероне ;) Как и правильный NEW. Ничего не ломается.
[18:00:54] <_valexey_> "Где архитектура, где головоломные паттерны, о которых можно поспорить с коллегами?"
[18:01:01] <_valexey_> Этого как раз в го полно.
[18:01:33] <_valexey_> Чем проще язык, тем больше там паттернов и архитектур головоломных.
[18:01:59] <vlad2> Kemet: https://github.com/vladfolts/oberonjs/wiki/Eberon-operator-NEW
[18:02:00] <_valexey_> То что не получается выразить языком, то приходится делать на уровне соглашений.
[18:07:05] <vlad2> Угу. В js тоже - приватные поля мы будем префиксовать __. Тем не менее потом в коде нет-нет да и идет к ним доступ: "один небольшой хак, чтобы не трогать всю кучу говна". В итоге ты с этим "приватным" полем ничего не можешь сделать без риска сломать что-нибудь в неожиданном месте.
[18:09:14] <vlad2> Соглашения хорошо работают на высоком уровне - для человеческого читателя. Пытаться заткнуть имм низкий уровень - бесполезняк.
[18:18:20] <vlad2> Ужос, демагогию какую устроили с этими конструкторами. Такая простая и понятная вешь...
[18:24:31] <_valexey_> vlad2: в терминологических срачах вообще смысла нет.
[18:24:49] <_valexey_> Один раз договориться что как зовем и все.
[18:25:38] <_valexey_> Хоть печкой конструктор назови, ничего не изменится.
[18:27:18] <_valexey_> Это вырождение.
[18:35:49] <Kemet> vlad2: форма NEW T вместо NEW(value) наружает модель строгой статической типизации
[18:36:09] <Kemet> где-то на эту тему срач был. не обероновский
[18:36:34] <Kemet> ** x := NE(T)
[18:36:41] <Kemet> NEW
[18:37:23] <vlad2> "наружает модель строгой статической типизации" - ты сам понял чего сказал? :)
[18:38:15] <vlad2> Они там сейчас месят конструкторы в том же духе.
[18:38:41] <vlad2> Терминологию изобретают.
[19:22:43] <_valexey_> Всё изобретено в С++ 30 лет назад!!1
[19:25:43] <vlad2> Необероновский срач на тему конструкторов представить сложно. Разве что objective-сищники могут...
[19:26:53] <vlad2> Даже просто сищники такими абстракциями не интересуются.
[19:34:09] <_valexey_> Ой. Не надо про objc...
[19:37:49] <_valexey_> Боль соглашений..
[20:12:54] <_valexey_> Будто на обероне пишешь...
[20:58:31] <Kemet> vlad2: в смысле, не оберонкоровский
[21:00:02] <Kemet> не помню где, то ли в мыллисте, толи на форуме етхз, но где-то в той стороне
[21:05:13] <Kemet> прояви недюжинный интеллект - установи биты в байте, используя Оберон!
[21:21:50] <Kemet> _valexey_: мне кажется, что REPL для АО таки будет - Феликс интересную штуку пилит, аки зверь
[21:22:19] <Kemet> проблема в том, что опять документации не будет
[21:34:42] <_valexey__> Kemet: а оно в открытом репе?
[21:34:53] <Kemet> да
[21:34:59] <_valexey__> это хорошо
[21:35:49] <_valexey__> хм. а как же тезис, что command line устарел давно и оберону не нужен? у оберонщиков с оберонкора бомбанет же :-)
[21:35:57] <Kemet> причем, интепретатор поддерживат Lax режим - не требуется завершать точкой с запятой
[21:36:08] <_valexey__> круто!
[21:36:28] <_valexey__> ну, то есть такой нано-аналог cling получается
[21:36:50] <_valexey__> хм. хотя не, у коровцев не бомбанет - они же давно признали AO ересью :-)
[21:37:01] <Kemet> угу
[21:37:41] <Kemet> "разработчики АО пошли по классическому пути мейнстрима - фичеванию языка"
[21:37:50] <_valexey__> Истинный Оберон для них это, внезапно, Компонентный Паскаль и Оберон-07/15 имени Вирта.
[21:38:17] <_valexey__> Последним, правда, никто не пользуется в чистом виде, поэтому это просто объект поклонения.
[21:39:03] <Kemet> вот интересно, для чего Феликс интерпретатор пилиь - явно не просто от нечего делать
[21:39:50] <_valexey__> Да, любопытно.
[21:40:20] <Kemet> возможно, что с учетом, что можно транслировать кот с АО на С, это опять для Staila
[21:41:22] <Kemet> Ну т.е. написать на Обероне, а потом в Це и пошла пьянка
[21:42:24] <Kemet> а может все таки и чисто для А2, ведь были у них раньше и заказчики
[21:45:02] <_valexey__> радует что хотя бы выкладывают публично наработки
[22:09:07] <Kemet> _valexey__: const uint8_t *bytes_; гарантирует, что в классе значение не будет меняться после инициализации в конструкторе?
[22:10:00] <Kemet> вот этот const
[22:11:10] <_valexey__> нет, не гарантирует
[22:11:13] <_valexey__> я могу это обойти
[22:11:50] <Kemet> f pfxtv jyj njulf
[22:11:59] <Kemet> а зачем оно тогда
[22:12:04] <_valexey__> точнее как, это указатель на константу, но сам указатель не константа
[22:13:12] <_valexey__> поэтому значение поля в классе может меняться сколько угодно раз :-)
[22:14:12] <Kemet> мерзкий синтакс
[22:15:38] <_valexey__> да не, норм. вопрос привычки
[22:15:38] <Kemet> _valexey__: правильно ли я погимаю, что в таком случае нельзя менять содержимое байтовой последовательности?
[22:16:02] <_valexey__> через этот указатель - нельзя, если ничего не кастануть :-)