[14:17:46] <valexey> geniepro: дискорд нинужин жи!
[14:59:13] <valexey> https://forum.oberoncore.ru/viewtopic.php?f=47&t=6234&p=103941#p103941
[14:59:18] <valexey> интриги! скандалы! расследования!
[18:27:36] <vlad2> Ну да, как всегда, оберон быстрее С++ пока кто-нибудь знающий С++ не посмотрит на тесты. Мне даже лень вникать было, но таки нашелся кто-то, кому не лень. Наверное надолго не задержится на форуме :)
[18:29:31] <vlad2> Эта очередная библиотека, конечно, в репертуаре: SYSTEM, спец требования к лэйауту полей записи... самое то для АЭС...
[18:37:51] <valexey> ну нужна же надежность! а строгость синтаксиса оберона гарантирует от порчи памяти!
[18:38:11] <valexey> :-D
[19:24:22] <valexey> хы. моё предсказание сбылось
[19:24:33] <valexey> budden практически изгнан с оберонкора
[19:24:40] <valexey> https://forum.oberoncore.ru/viewtopic.php?f=119&t=6233
[19:24:49] <valexey> https://budden73.livejournal.com/31101.html
[19:29:01] <vlad2> Дык, классика :) Но он там у Зорко вполне нормально пообщался.
[19:34:00] <valexey> оберонщики-экстремисты какие-то
[19:34:03] <valexey> ортодоксы
[19:43:09] <vlad2> info21 получил свою долю удовольствия от прыгания на трупе врага: https://forum.oberoncore.ru/viewtopic.php?p=103949#p103949
[19:43:30] <valexey> как дети малые, ей богу...
[19:59:59] <geniepro> valexey> budden практически изгнан с оберонкора
valexey> https://forum.oberoncore.ru/viewtopic.php?f=119&t=6233
vlad2> info21 получил свою долю удовольствия от прыгания на трупе врага: https://forum.oberoncore.ru/viewtopic.php?p=103949#p103949

ну чо там написано-то хоть? заскриньте сюда, а то недоступно...
[20:00:32] <valexey> "Песню дружбы не задушишь, не убъёшь. Я эвакуировался ещё до того, как мою тему поместили в помойку:

Вот, читайте пост в ЖЖ.

Коротко: Оберон-сообщество страдает комплексом маргинальной технологии. Преодолейте его - и будет вам счастье."
[20:00:35] <valexey> https://budden73.livejournal.com/31101.html
[20:00:40] <geniepro> вапще, будден уже раз уходил из оберкора, но недолго продержался на зоркином полумёртвом сайте -- вернулся обратно в оберкор
[20:01:31] <geniepro> я там наткнулся на ихъ оберкоровском сайте на классный пост ермакова! ваще супер! ща найду если смогу
[20:01:48] <valexey> интересно, товарища, который там батон крошит на методику измерения производительности мегасупералгоритма на ББ, рвущего С++ решение как тузик грелку, тоже расстреляют?
[20:02:42] <geniepro> valexey: это которого? вроде давно уже развенчали тот старый миф с инфошной символической алгеброй на ББКП
[20:02:51] <valexey> "Budden, ваша мыслепродукция не удовлетворяет минимальным критериям интеллектуального качества любого серьёзного профессионального сообщества.

Тот факт, что вы в какой-то конференции что-то решаете, подтверждает мои подозрения об аномальной доле проходящих за экспертов альтернативно-одарённых в сфере IT." (c) info21
[20:03:08] <valexey> geniepro: не! это новяк!
[20:03:22] <valexey> https://forum.oberoncore.ru/viewtopic.php?f=47&t=6234
[20:03:25] <valexey> вот тема
[20:04:59] <geniepro> https://forum.oberoncore.ru/viewtopic.php?f=31&t=6085#p101823
"Есть у нас региональный чатик веб-разработчиков орловских (Ruby, JS и др.)
Послеживаю краем глаза, иногда кое-что рассказываю про Обероны.

Настрой не-холиварный, вообще, я смотрю, поскольку профессия программиста перестала быть модно-звёздной, в последние годы как-то больше пошло просто ремесленнического (в хорошем смысле этого слова) подхода, чем прежней бойни самолюбивых "гениев".

Но я, собственно, вот о чём. Один из участников чата сказал следующую фразу:

Цитата: "Разработчики на Go мне яро напоминают воинствующих мусульман в мире IT. Аллах сказал им писать на Go, и дальше они под это будут агрессивно проталкивать любую ложь и переворачивать любую истину. За всё время не встречал более упоротых поклонников технологии, чем эти ребята. Подозреваю, там где-то есть зомбирующие коды и мануалы. (c)"

Т.е. даже на "пригашенный" (и несколько "пригаженный") относительно Оберона Go есть привычная нам реакция.
Видимо, раздражителем является сочетание "минималистичный - строго типизированный - императивный - повседневно-промышшленный-универсальный".

В случае с Оберонами же добавляется ещё "осмеливающийся переть вообще против рынка" (т.е. претендовать не на экспериментальный и/или маргинальный, а максимально широкий статус, не будучи поддержан корпоративным гигантом типа Google).
А, да, ещё добавляется паскалевский синтаксис (несмотря на то, что холивары отошли немного в прошлое, поколения подсменились, но есть мем "Паскаль ушёл со сцены, Си победил" - а тут вдруг прут против мема)."
[20:07:09] <valexey> Ыыыы
[20:08:51] <geniepro> > Цитата: "Разработчики на Go мне яро напоминают воинствующих мусульман в мире IT. Аллах сказал им писать на Go, и дальше они под это будут агрессивно проталкивать любую ложь и переворачивать любую истину. За всё время не встречал более упоротых поклонников технологии, чем эти ребята. Подозреваю, там где-то есть зомбирующие коды и мануалы. (c)"

Был бы я в том чатике -- поправил бы Go на Oberon
[20:29:19] <valexey> ну, по кр. мере русскоязычные гошники довольно странные люди
[20:29:36] <valexey> там львиная доля пришла вообще с js
[20:30:24] <geniepro> valexey: о, а ты же вроде тоже гошник?
[20:30:41] <valexey> в каком то смысле, да.
[20:30:59] <valexey> застарелый и завязавший на нем кодить в промышленных масштабах.
[20:31:03] <geniepro> ты там эта, поаккуратнее, а то до гомосятника скатишься )))
[20:31:26] <valexey> короче, я нетрадиционно ориентированный гошник :-)
[20:31:51] <geniepro> а чо, го реально типа мейнстрим что ли? вот я чота не верю...
[20:32:12] <geniepro> мейнтсрим -- это си-с++, сишарп да ява
[20:32:17] <valexey> в свое время я на Го переписал наш сервис жабный, ну и Го у меня локально убил D. Вначале то я думал в сторону D
[20:32:35] <geniepro> го удобнее чем ди или быстрее?
[20:32:37] <valexey> Go вполне себе мейнстрим. молодой, но мейнстрим
[20:32:54] <valexey> Го стабильней, проще, либы богаче. поддержка и доки лучше.
[20:33:23] <valexey> с D, помнится, замучался баги выгребать.
[20:33:28] <valexey> то был 2011 год
[20:33:29] <geniepro> но блин этот ди раз в 10 страше этого го, и автор у него не кто-то там, а сам александреску! как ди может быть хуже, чем го????
[20:33:45] <geniepro> старше*
[20:34:00] <valexey> автор у него не александреска как раз
[20:34:20] <valexey> александреска там потом примазался и давая стандартную либу наяривать
[20:34:33] <geniepro> D (Ди) — мультипарадигмальный компилируемый язык программирования, созданный Уолтером Брайтом из компании Digital Mars. Начиная с 2006 г. соавтором также является Андрей Александреску.
[20:34:40] <geniepro> ну тогда неудивительно )))
[20:35:05] <valexey> Ди слишком большой и сложный, чтобы малыми силами его было можно просто допишлить до реально стабильногно состояния (когда следующий релиз не ломает совместимость)
[20:35:30] <valexey> а го - мелкий, сил у гугла побольше, есть конкретный внутренний заказ - они же на нем сервисы с питона переписывают
[20:35:52] <valexey> ну и учти, что Го - это примерно третья итерация или четвертая даже, итерация языка.
[20:36:23] <valexey> продукт более чем с 30ти летней историей
[20:36:49] <valexey> ну и Го целился изначально в довольно узкую нишу. и там преуспел
[20:36:49] <geniepro> да гуглу столько лет нету же!
[20:37:13] <geniepro> Первоначальная разработка Go началась в сентябре 2007 года
[20:37:17] <geniepro> 10 лет ему всего
[20:37:43] <geniepro> или под первыми двумя итерациями ты имеешь в виду оберон и оберон-2? )))
[20:38:16] <valexey> https://en.wikipedia.org/wiki/Limbo_(programming_language)
[20:38:16] <geniepro> а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон
[20:38:23] <valexey> Вот его предтеча
[20:38:30] <geniepro> хм, ну если томпсон и пайк -- то тогда другое дело )))
[20:38:49] <valexey> 1995 год
[20:39:08] <valexey> А вот до того: https://en.wikipedia.org/wiki/Newsqueak
[20:39:39] <valexey> А еще был Си, как ты понимаешь.
[20:40:00] <valexey> Go вырос не на пустом месте. Сильно не на пустом. И под вполне конкретные нужды делался и делается.
[20:40:22] <valexey> А D вырос из желания более совершенного и простого в компиляции С++. Это фигня, а не база.
[20:41:11] <geniepro> Squeak: a Language for Communicating with Mice
Luca CardeUi
Rob Pike

О-о и Лука Кардели такой ерундой занимался? )))
[20:44:09] <geniepro> https://www.youtube.com/watch?v=LSbcc8SiUf8
[21:12:12] <valexey> https://habrahabr.ru/post/350912/
[21:12:15] <valexey> НИНУЖИН!
[21:26:10] <geniepro> эти опенсорсные проекты в рабочее время были актуальны когда-то в гугле, но вроде гугл отказался от такой практики? почему бы?
[21:33:28] <valexey> не опенсорсные
[21:33:40] <valexey> они выделяли 20 процентов времени на любой твой ВНУТРЕННИЙ гугловый проект
[21:33:48] <valexey> т.е. 20 процентов времени ты мог проявлять инициативу
[21:34:28] <geniepro> то есть тоже гугловый? о_О
[21:43:01] <vlad2> Кстаит, а что с гугловым Дартом стало? Не взлетел?
[22:22:02] <geniepro> vlad2: ну вроде стандарт на него таки сделали: http://www.ecma-international.org/publications/standards/Ecma-408.htm
[22:23:59] <geniepro> Dart is a descendant of the ALGOL language family,[34] alongside C, Java, C#, JavaScript, and others.

паскаль? не, нислышал!
[22:30:09] <_valexey_> geniepro: да, тоже гугловый
[22:30:50] <_valexey_> Просто 20 процентов времени (четверг) ты мог делать не те тикеты которые на тебя манагеры повесили
[22:31:37] <_valexey_> Результаты этих 20 процентов полностью принадлежат гуглу
[22:31:55] <_valexey_> И должны были быть полезны гуглу
[22:32:28] <_valexey_> Ну, например ты мог попробовать переписать какой-нибудь сервис на своем любимом обероне :-)
[22:33:17] <geniepro> _valexey_: а нафига это надо? )))
[22:33:19] <_valexey_> Но рассказать об этом (без консультаций и одобрения начальства м юр. отдела) ты никому не мог :-)
[22:33:49] <geniepro> короче ещё один миф разрушен )))
[22:33:52] <_valexey_> geniepro: дык чтобы народ имел возможность инициативу проявлять
[22:34:34] <geniepro> а почему отказались от такой практики?
[22:34:36] <_valexey_> Очень тухло делать по 9-12 часов в день только то, что манагер скажет и только так, как тут сложилось
[22:35:55] <_valexey_> Захочешь скажем исключения заюзать - ревью код не пройдет, таску на этой неделе не закроешь, потом на ежегодном/полугодовом ревью к тебе будут вопросы на тему низкой производительности труда.
[22:36:33] <_valexey_> geniepro: дык 20 процентов времени впустую! Оптимизация!
[22:36:59] <_valexey_> Гугл уже давно не та веселая инноваторская контора, что была прежде.
[22:37:37] <_valexey_> Гугл сейчас ближе к ораклу или ibm нежели к гуглу.
[23:21:38] <valexey_> /me сделал подсветку синтаксиса для google flatbuffers в qt creator'e.
[23:21:41] <valexey_> Хоррошо!
[23:22:13] <valexey_> А то никто не озаботился сделать. Только в atom'e да в vscode поддержка подсветки flatbuffers была
[23:25:07] <geniepro> так значит и нинужно никому!
[23:29:29] <valexey_> нужно! просто плоскобуфера они же относительно новые
[23:29:37] <valexey_> протобуфера старше и распространенней
[23:29:46] <valexey_> плоскобуфера юзаются там, где важна скорость
[23:29:53] <valexey_> в играх например. в играх под дендроид
[23:37:20] <geniepro> func f(i      // !
    , k int  // !
    , s      // !
    , t string) string { // НЕВЕРНО
}

func f(i,      
      k int,
      s,
      t string) string { // ВЕРНО
}

ФУУУУУУУ!!!! ГООООВНОООО!!!!!
[23:38:09] <valexey_> это ты решил немного Go обмазаться?
[23:38:16] <geniepro> хотя можно делать и так:

type Person struct { // Тип-структура
 name string        // поле стандартного типа string
 post PostString    // поле ранее объявленного пользовательского строкового типа
 bdate time.Time    // поле типа Time, импортированного из пакета time
 edate time.Time
 chief *Person      // поле-указатель
 infer [](*Person)  // поле-массив
}
[23:38:25] <geniepro> да просто читаю педивикию
[23:40:04] <geniepro> ну вот это норм тема:

Результаты функций также могут быть именованы:
func incTwo(a, b int) (c, d int) {
c = a+1
d = b+1
return
}

буберон уже сосёт тут
[23:40:06] <valexey_> на самом деле, это вначале бесит, а потом норм
[23:40:31] <valexey_> более единообразные и обезличенные исходники выходят
[23:40:56] <geniepro> как на аде? )))
[23:41:00] <valexey_> да, возврат нескольких значений, причем именованных - рулит
[23:41:32] <geniepro> но вот я не пойму:

first, second := incTwo(1, 2) // first = 2, second = 3
first := incTwo(1, 2) // НЕВЕРНО - нет переменной, которой присваивается второй результат

значит, в го нет кортежей что ли????
[23:41:43] <valexey_> нету
[23:41:52] <valexey_> Go довольно деревянненький
[23:41:53] <geniepro> с кортежами и не надо возвращать несколько значений -- тупо возвращаешь кортёж и всё
[23:42:24] <valexey_> деревянный, но жить можно. для некоторых применений - даже очень неплохо можно жить
[23:42:45] <geniepro> ну, с другой стороны, может и правы будут буберонщики, заявив -- опиши тип запись с несколькими полями и верни их!!!
[23:42:51] <valexey_> а вот оберон.. единственное где нормально было жить, где он прям реально зашел - это в Astrobe.
[23:43:11] <geniepro> астроб -- это арм контроллеры что ли?
[23:43:16] <valexey_> изврат нескольких значений в Гоу для обработки ашипок
[23:43:41] <valexey_> стандартная идиома: res, err := Func();
[23:43:56] <valexey_> if (err != nil) {blablab;}
[23:44:25] <geniepro> это неправильная идиома!!! правильно возвращать Maybe! )))
[23:44:43] <valexey_> угу. но Можетбыть не завезли в Гоу
[23:44:56] <valexey_> причем, заметь, := это не присваивание
[23:44:58] <geniepro> да я смотрю там мало что завезено ))
[23:45:06] <valexey_> это оператор объявление и инициализации переменной
[23:45:11] <valexey_> оператор присваивания это таки =
[23:45:25] <geniepro> Внутри функции короткий синтаксис присваивания переменным значения с автоматическим выводом типов напоминает обычное присваивание в Паскале:
v1 := v2 // аналог var v1 = v2
[23:45:56] <valexey_> ну врут же. это объявление а не присваивание.
[23:46:11] <valexey_> попробуй аналог res, err := Func(); на обероне написать :-) почувствует разницу
[23:46:25] <valexey_> (с учетом того, что error возвращает там КАЖДАЯ функция)
[23:46:59] <geniepro> ну там же написано -- объявление новой переменной с автовыводом типа и присваиванием!
[23:47:44] <valexey_> угу. в паскале аналогов нет!
[23:47:48] <valexey_> в том числе и в обероне
[23:48:29] <geniepro> > попробуй аналог res, err := Func(); на обероне написать :-) почувствует разницу
ну в обероне для этого объявят запись, в которой будет поле кода ошибки, от неё будут наследовать разные типы -- ну и примерно что-то типа этого выйдет
[23:49:48] <geniepro> я уже забыл раст, но там вроде тоже можно было как в го несколько значений возвращать
[23:52:07] <valexey_> ненене. ты попробуй. аналог будет такой:
PROCEDURE Test;
VAR:
  resErr : TypeAndError0;
  resErr1 : TypeAndError1;
BEGIN
  resErr := Func();
  IF resErr.err = NIL THEN
     resErr1 := Func1();
     IF resErr1.err = NIL THEN чотаделаем END;
  END;
END;
[23:52:52] <geniepro> ну да, типа того! круто же ))))
[23:53:23] <valexey_> вместо:
func test() {
  res, err := Func();
  if (err != nil) {return;}
  res1, err := Func1();
  if (err != nil) {return;}
  чотаделаем
}
[23:53:26] <geniepro> вот тут нужна монада maybe )))
[23:53:58] <valexey_> в обероне нужно будет определить ErrorType + по одному еще типу записи для КАЖДОЙ функции
[23:54:01] <valexey_> это ж капец
[23:54:02] <geniepro> правда, если нужен код ошибки, или там строка сообщения об ошибке, то maybe уже не катит
[23:54:12] <geniepro> нужен тип Either
[23:54:21] <valexey_> а потом вот так вот уходить ёлочкой из ифов за правый экран (выхода то из середины функции нету)
[23:54:24] <geniepro> а есть ли монада Either я хз
[23:55:16] <valexey_> есть пропосол для плюсов на тему монад o_O как раз для обработки ошибок без исключений предлагают юзать
[23:55:24] <geniepro> https://eax.me/monads/
Монада Either
В модуле Control.Monad.Error объявлен экземпляр класса Monad для типа Either:
!!! всё пучком!!!
[23:55:28] <valexey_> но есть нюанс - монадного синтаксиса там не завезли :-)
[23:56:00] <geniepro> короче фуфло этот твой го )))
[23:56:07] <valexey_> поэтому как обычно - сунул лямбда лямбду в лямбду...
[23:56:07] <geniepro> хаскель рулит!
[23:56:16] <valexey_> Кстати, в Гоу есть исключения! Можно юзать их :-)
[23:56:56] <valexey_> правда широко их юзать не принято
[23:57:04] <geniepro> ну это тогда точно не буберон, раз исключения есть как в каких-то монстрах типа ады, с++, жавы, окамля...
[23:57:08] <valexey_> поэтому с ретурн котами придется как-то извращаццо
[23:57:29] <valexey_> ну, в Гоу исключения стыдливо называют паниками, и говорят что исключений нет :-)
[23:57:50] <geniepro> так это типа Halt оберона что ли? ))
[23:58:33] <valexey_> но паника она:
1) раскручивает стек
2) по мере раскрутки стека могут вызываться спец. секции (ака defer), которые могут освободить например ресурсы
3) панику можно перехватить, обработать и продолжить работу :-)
[23:58:42] <valexey_> ну и конечно панику можно кинуть
[23:58:50] <valexey_> теперь вопрос - чем оно от исключений отличается?
[23:59:27] <valexey_> В расте, кстати, аналогично. Типа исключений нет, но они есть.
[23:59:43] <geniepro> в окамле исключения легковесные, их можно кидать направо и налево, а твои паники угробят всю производительность!!!