[00:25:10] <ada_ru> (Максим)  отвечает (Lieutenant_Commander_Data) на <Максим Дай мне админ…>
Готово. Спасибо!
[00:25:21] <ada_ru> (Lieutenant_Commander_Data) <прислал наклейку> 😎
[00:25:55] <ada_ru> (Максим) Может ещё что-то в боте дополнить?
[00:26:45] <ada_ru> (Lieutenant_Commander_Data) в каком боте?
[00:27:15] <ada_ru> (Lieutenant_Commander_Data) можно чтобы бот вновь входящим задавал вопрос. Если нет ответа, через секунд 10, то выкидывать чувака из чата
[00:27:18] <ada_ru> (I_vlxy_I) в цпп конфе бот на каждого вошедшего высылает сообщение с кнопкой (прямо в канал) на которую вошедший должен нажать
[00:27:36] <ada_ru> (I_vlxy_I) если не нажмет через 30 или 60 секунд - вошедший удаляется и банится
[00:27:40] <ada_ru> (I_vlxy_I) со всеми его мессагами
[00:27:42] <ada_ru> (I_vlxy_I) автоматом
[00:29:55] <ada_ru> (I_vlxy_I) при этом сообщение высылается в конфу. видят его все, но реагирует бот только на нажатие конкретного чела
[01:15:31] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <если не нажмет через…>
терминатор что ли?
[01:16:18] <ada_ru> (Eugene) а как там на этом самолёте 41 человек погибли? пожар в салон прошёл, что ли?
[01:18:28] <ada_ru> (Eugene) вроде от дыма задохнулись...
да, эти самолёты капец, конечно. я за всю жизнь лишь 1 раз на самолёте летал, на мелком, человек на 30-40, винтовом каком-то
[01:18:56] <ada_ru> (Eugene) с другой стороны, от автокатастров гибнет на порядки больше людей
[02:07:06] <ada_ru> (I_vlxy_I) даc, до посадки ничего не горело.
[02:07:18] <ada_ru> (I_vlxy_I) <прислал видео>
[05:50:39] <ada_ru> (Юрий) Может спидометр не работал, может там экраны погасли?
Хреново все это.
[06:15:14] <ada_ru> (Юрий) Источники в САБ аэропорта «Шереметьево» подтверждают, что в нарушении всех инструкций, данных кабинным экипажем при аварийной посадке горящего лайнера, множество пассажиров «тормозили эвакуацию, доставая и забирая с собой ручную кладь»
[08:47:44] <ada_ru> (Eugene) пишут, что после удара молнии автоматика перешла на аварийный режим, в котором управление от джойстика становится совсем иным, не знаю насколько иным, может грубее реагировал самолёт, вот и сел слишком быстро.
ну и непонятно, какие приборы работали...
[08:52:08] <ada_ru> (Eugene) вот, кстати, недостаток нижнего расположения двигателей, на тех же русланах, например, крыло выше, и двигатели, соответственно выше, вероятность удара двигателя о землю -- ниже.
с другой стороны, чем ниже двигатели, тем дешевле обслуживание -- не надо лестницу таскать...
сэкономили в одном -- потеряли в другом
[09:12:00] <ada_ru> (Eugene) кстати, возвращаясь к аде.
а есть ли транслятор ады с лицензией BSD или подобной?
[10:33:50] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <вот, кстати, недоста…>
Там баки от удара разрушились до кучи. Этого было достаточно для пожара.
[10:59:55] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <кстати, возвращаясь …>
а зачем тебе?
[11:16:56] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <а зачем тебе?>
Ну, для некоторых отсутствие свободной реализации ады без отчислений и прочих ограничений является стоппером, по их словам...
[11:17:25] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <Ну, для некоторых от…>
gcc
[11:18:30] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <gcc>
Она же не свободная - там gpl лицензия, а не bsd
[11:18:48] <ada_ru> (I_vlxy_I) Там этот компилятор ровно на тех же условиях что и плюсовый или сишный
[11:19:09] <ada_ru> (I_vlxy_I) Назови реальный юзкейс когда gcc тут не достаточно
[11:19:32] <ada_ru> (Eugene) Ну да, там требуется раскрывать исходники, а некоторые этого не хотят делать
[11:20:27] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <Там этот компилятор …>
У fsf gnat, насколько я понял, проблемная лицензия на либы и рантайм
[11:20:37] <ada_ru> (I_vlxy_I) Нет
[11:20:47] <ada_ru> (I_vlxy_I) Там все то же, что и для плюсов
[11:21:24] <ada_ru> (I_vlxy_I) Никаких ограничений нет. Точнее - они те же, что и для c++ у gcc
[11:21:32] <ada_ru> (I_vlxy_I) Или у фортрана
[11:21:41] <ada_ru> (Eugene)  цитирует (prospero78su)
Я бы проголосовал за BSD лицензию на Аду и все библиотеки.
[11:22:00] <ada_ru> (Eugene)  цитирует (prospero78su)
Не устраивает лицензией GNU.
[11:22:14] <ada_ru> (Eugene)  цитирует (prospero78su)
GPL — вирусная лицензия, BSD — нет. К тому же GPL сразу накладывает ограничения на способ распространения программ. Увы.
[11:22:25] <ada_ru> (Eugene)  цитирует (prospero78su)
Если было бы оговрено: GPL не требует распространение исходников, а в случае ещё и Ады — не требуются отчисления или покупка лицензии на коммерческое использование — тогда был бы другой коленкор.
[11:23:19] <ada_ru> (I_vlxy_I) Ты больше его слушай :-)
[11:53:41] <ada_ru> (Sergei)  отвечает (insert_reference_here) на <C++ сложный, потому …>
Как, вообще, оценивают сложность языка? Есть формальный критерий?
[11:54:47] <ada_ru> (I_vlxy_I) Есть попытки найти такой критерий. Эвристики разные
[11:56:32] <ada_ru> (I_vlxy_I) От всевозможных анализов грамматики языка (как тупых (подсчёт числа ключевых слов) так и похитрее вроде подсчета классов нетерминалов) до просто подсчета объема части стандарта отписывающей сам язык.
[11:56:41] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Есть попытки найти т…>
То есть, я могу продолжать утверждать, что "C++ - сложный - это вам кажется. Он просто не прячет сложность, присущую самой задаче".
[11:57:52] <ada_ru> (Sergei) PL/SQL гораздо сложнее, ибо результат, в особенности времени выполнения, гораздо сложнее предсказать
[11:58:06] <ada_ru> (Sergei) C++ предсказуемый
[11:58:12] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <То есть, я могу прод…>
Думаю да. Но тебе тогда придется ввести объективный критерий сложности задачи :-)
[11:58:49] <ada_ru> (Sergei) Ада менее предсказуема в части параллельных вычислений
[11:59:09] <ada_ru> (Sergei) чем более высокоуровневые абстракции, тем сложнее понять
[11:59:28] <ada_ru> (Sergei) вот ассемблер очень прост
[11:59:50] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <C++ предсказуемый>
ПредсказуемЕй, но в нем все равно масса не очевидных нюансов в плане производительности. Хотя тут уже и железо играть начинает современное хитромудрое.
[12:00:20] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <вот ассемблер очень …>
Но и там масса нюансов по производительности :-)
[12:00:52] <ada_ru> (Sergei) простота решения НЕКОТОРЫХ задач на НЕКОТОРЫХ языках даёт иллюзию простоты языка, но язык не может быть проще, чем железо, на котором он выполняется.
[12:02:00] <ada_ru> (Sergei) Думаю, потому Кнут и использовал свой ассемблероподобный язык, расчитанный для очень простого железа для анализа алгоритмов
[12:02:16] <ada_ru> (Sergei) а не эти ваши питоны
[12:03:31] <ada_ru> (Sergei) Другое дело, что в С++ можно породить сложную абстракцию. Но это уже как в поговорке - большому Джипу большая лебёдка. Дело в мощности, а не в сложности
[12:03:40] <ada_ru> (I_vlxy_I) Ну, таки плюсы не позволяют задействовать всё, что умеет процессор, увы.
[12:03:57] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Ну, таки плюсы не по…>
Например, что не позволяют задействовать
[12:04:01] <ada_ru> (I_vlxy_I) Там даже на прерывание не повеситься без нестандартных расширищмов.
[12:04:31] <ada_ru> (Sergei) Ну, встроенный ассемблер я считаю частью С++, он очень хорошо увязан с регистровым оптимизатором
[12:04:58] <ada_ru> (I_vlxy_I) А он в плюсах есть? Вроде он никак не описан в стандарте.
[12:06:33] <ada_ru> (I_vlxy_I) В общем, проблема в том, что не ясно даже как объективно сравнить языки по критерию «простота в изучении». И по «на этом языке программы пишутся быстрее для этого класса задач».
[12:07:31] <ada_ru> (Eugene) учитывая что разные программисты на одном и том же языке решают одни и те же задачи за время, отличающееся на порядок...
[12:13:46] <ada_ru> (I_vlxy_I) Ага. И то, что при программировании используется не только язык и его компилятор.
[12:14:26] <ada_ru> (Sergei) С++ хорош для построения абстракций, которые используют напрямую возможности железа. Вопрос "простота в изучении", "скорость" и т.п. нельзя ставить, сравнивая принципиально другие языки с C++
[12:14:47] <ada_ru> (Sergei) Если нет возможности на них строить абстракции к железу
[12:15:23] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <Ага. И то, что при п…>
Что если отличие не в языках, а в IDE для них?
[12:15:44] <ada_ru> (I_vlxy_I) Это отличие может сильно исказить результаты.
[12:17:40] <ada_ru> (Sergei) Ада - принципиально другой язык, так как в нём заложены "best practices", которые мешают строить какие угодно абстракции
[12:17:58] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Ада - принципиально …>
Например?
[12:18:03] <ada_ru> (Sergei) tasks
[12:18:19] <ada_ru> (I_vlxy_I) Можно не юзать :-)
[12:18:20] <ada_ru> (Sergei) array type
[12:19:01] <ada_ru> (Sergei) ну, можно не юзать это сильный минус. В языке надо юзать как можно больше
[12:20:24] <ada_ru> (Sergei) арифметика указателей, хотя её можно реализовать в Аде, сильно не адская
[12:20:33] <ada_ru> (I_vlxy_I) Эмм... я бы не стал юзать абсолютно всё, что есть в ц++
[12:21:48] <ada_ru> (Sergei) Не юзать tasks в аде, это всё равно, что писать на C++ без templates и virtual funtions одновременно
[12:23:43] <ada_ru> (I_vlxy_I) Ну, если они, например, тормозят и не позволяют решить задачу, то нужно свой велосипед городить в любом случае
[12:24:03] <ada_ru> (Sergei) хотя, тут важный вопрос. Одно дело - язык, другое дело, практика его использования. Я рассматриваю это вместе. Странно писать на Аде и использовать альтернативную многопоточность. Точно так же, как странно не использовать оператор , отличный от ' < < ' для вывода в С++
[12:24:15] <ada_ru> (I_vlxy_I) Аналогично со стандартной либой плюсов / stl
[12:25:14] <ada_ru> (Sergei) Ну, может быть, сейчас в либу уже напихали в том числе решение навязанное для многопоточности.
[12:25:22] <ada_ru> (I_vlxy_I) << кстати, это уже почти устаревшая практика :-)
[12:25:30] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <<< кстати, это уже п…>
????
[12:25:41] <ada_ru> (I_vlxy_I) :-)
[12:26:45] <ada_ru> (I_vlxy_I) Есть большие шансы, что вот это пойдёт в стандарт : https://github.com/fmtlib/fmt
[12:28:47] <ada_ru> (Sergei) Да, вот так вернёшься лет 10 спустя в язык и не узнаешь
[12:32:08] <ada_ru> (I_vlxy_I) на этапе компиляции сейчас уже можно, или почти можно, парсить строковые литералы.
[12:32:30] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <на этапе компиляции …>
Ну, это вроде ещё в 11 году было
[12:32:37] <ada_ru> (Sergei) я это использовал в куче программ
[12:32:51] <ada_ru> (Sergei) финансовые типы etc
[12:32:54] <ada_ru> (I_vlxy_I) ну, если так, то почему бы не сделать типобезопасным printf? 😊
[12:33:52] <ada_ru> (Sergei) дело в архитектуре iostream. Она действительно сложная и если под неё всё заточить уже, так просто не поменяешь
[12:34:52] <ada_ru> (Sergei) там основная фишка перевод эксепшинов в флаги потока, которые можно проверять не сразу
[12:35:30] <ada_ru> (I_vlxy_I) думаю одно с другим будет интегрировано как-то
[12:35:44] <ada_ru> (Sergei) потом, когда начинаешь порождать свои стримбуфферы
[12:35:58] <ada_ru> (Sergei) они же по определённым темплейтам пишутся
[12:36:03] <ada_ru> (Sergei) это всё не так просто переносится
[12:36:36] <ada_ru> (Sergei) все эти указатели дна и верха, логика overflow, underflow
[12:37:03] <ada_ru> (Sergei) определённые правила установки флагов потока ...
[12:37:22] <ada_ru> (Sergei) если всё уже написано под этот стандарт ...
[12:37:36] <ada_ru> (I_vlxy_I) короче, вот тут
[12:37:39] <ada_ru> (I_vlxy_I) https://habr.com/en/company/yandex/blog/438864/
[12:37:48] <ada_ru> (I_vlxy_I) секция про Format (там ссылки есть)
[12:38:22] <ada_ru> (I_vlxy_I) думаю это ортогональные штуки. но в итоге подавляющее большинство больше не будет пользоваться << в повседневной жизни.
[12:38:48] <ada_ru> (I_vlxy_I) "Скажите «до свидания» std::ios, std::locale и прочим ужасам 90-х! "
[12:38:58] <ada_ru> (Sergei) А что там по поводу реаллокации памяти? В C++ стандартная либа не может делать realloc, уже пофиксили?
[12:39:12] <ada_ru> (I_vlxy_I) не помню.
[12:39:18] <ada_ru> (I_vlxy_I) я знаю не только лишь всё 😊
[12:39:20] <ada_ru> (Sergei) "Скажите «до свидания» std::ios, std::locale и прочим ужасам 90-х! " - ага, щас
[12:39:43] <ada_ru> (I_vlxy_I) 😊
[12:41:11] <ada_ru> (Sergei) locale, конечно, та ещё pine , но ведь зачем-то её придумали
[12:46:09] <ada_ru> (Sergei) Проще, конечно, было бы договориться, какой разделитель - '.' или ',' использовать для десятичной части, но ведь не договорились
[12:46:30] <ada_ru> (Sergei) а у индусов там вообще мрак с числами
[12:47:20] <ada_ru> (Sergei) Про американские даты вообще молчу
[13:15:18] <ada_ru> (I_vlxy_I) короче, единственный критерий который можно более-менее объективно сравнивать у языков - это производительность кода. плюс, быть может, можно как-то качественно оценить насколько производительный код будет не похож на идеоматичный и сколько велосипедов придется изобрести (например вместо использования стандартной либы и вместо использования вшитых в язык фич).
[13:20:10] <ada_ru> (I_vlxy_I) что-то вроде такого: https://habr.com/en/post/450512/
[13:21:17] <ada_ru> (Sergei) единственный критерий - это любовь программистов
[13:22:05] <ada_ru> (I_vlxy_I) ну, один из наиболее желанных ЯП прямо сейчас - это Rust.
[13:22:31] <ada_ru> (I_vlxy_I) но любовь любовью, а брак и последующая совместная жизнь она всё же отличается от конфетно-букетного периода 😊
[13:26:18] <ada_ru> (I_vlxy_I) А вот про менеджмент памяти на базе подсчета ссылок:

В первую очередь тут не так допущение, что в свифте нет сборщика мусора. Он есть и зовётся автоматическим подсчётом ссылок или ARC. Как показывает теория и практика это один из самых медленных видов сборки мусора.
[13:27:06] <ada_ru> (Sergei) всегда считалось, что для циклических структур это не работает, а потому не работает вообще
[13:27:32] <ada_ru> (I_vlxy_I) не работает. чтобы работало - есть слабые ссылки.
[13:28:03] <ada_ru> (I_vlxy_I) в общем, львиная доля объектов в современных плюсах ведь тоже через подсчет ссылок менеджатся. Скорость работы такого решения - спорная штука.
[13:31:28] <ada_ru> (I_vlxy_I) Не так давно была любопытная работа о реализации юзерлевел драйвера сетевой карты. Свифт проиграл всем — си, расту, сишарпу, гоу. Чрезвычайно сильно проиграл. Как раз из-за подсчёта ссылок. Последние два при этом были недалеко от раста что по скорости, что по латентности. Сишарп только посильнее проигрывал
[14:12:22] <ada_ru> (Eugene) ну вот, довели адского товарища болтовнёй о плюсах сиплюсплюса (((
[14:18:37] <ada_ru> (I_vlxy_I) там и про Аду было, так то.
[14:36:41] <ada_ru> (Максим) https://twitter.com/MayaPosch/status/1123483921797275648?s=09
[14:36:58] <ada_ru> (Максим) на тему о хорошести С++
[14:42:11] <ada_ru> (Максим)  отвечает (I_vlxy_I) на <там и про Аду было, …>
Да, что Ада плоха, потому, что в ней есть массивы. Давайте ещё больше ереси,
[14:47:00] <ada_ru> (Sergei) Все рефлексии на тему того, что кто-то отписался от группы неверны в своей основе, потому, что отписывание нельзя рассматривать как возражение. Соответственно, сентенция про массивы безосновательно.
[14:47:21] <ada_ru> (Sergei) ересеборцы
[14:47:56] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Да, что Ада плоха, п…>
да, я этот пассаж тоже не понял
[14:48:38] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <да, я этот пассаж то…>
С++ рассматривает железо как оно есть, Ада вводит абстракции поверх железа
[14:48:52] <ada_ru> (Sergei) не сказал, что это хорошо или плохо
[14:49:14] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Все рефлексии на тем…>
рефлексия создателя конфы на тему того, что уходят участники имеющие и знающие что сказать по теме конфы думаю понятна. Уход такого человека - всегда потеря. Вне зависимости от причин.
[14:49:55] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <рефлексия создателя …>
Причины могут быть какие угодно. Были-ли какие-то высказывания от участника на эту тему до его ухода?
[14:50:28] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <С++ рассматривает же…>
с++ поверх железа строит свою модель железа и уже поверх этого работает. Плюсы да, стараются учитывать особенности реальных железяк и не сильно мешать оптимизировать под это железо, но конечно же полной прозрачности там и близко нет.
[14:50:43] <ada_ru> (I_vlxy_I) Ада, по моим ощущениям, где-то толще, а где-то тоньше плюсов в этом плане.
[14:51:55] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <с++ поверх железа ст…>
Это ясно. Мы уже проговорили на эту тему. Если теперь вопрос о причинах отписывания, давайте об этом.
[14:52:08] <ada_ru> (I_vlxy_I) но я не настолько знаю Аду. Пока у меня ощущения лишь такие, что реализация стандартной либы далека от идеала по производительности.
[14:52:56] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <https://twitter.com/…>
круто! надо будет посмотреть.
[14:54:26] <ada_ru> (Oleg) Железо как оно есть - это можо и на аде и на C
[14:54:30] <ada_ru> (I_vlxy_I) вот что-то такое я и хотел бы локально замутить. то есть на плюсовые митапы приводить кого-то кто знает про Аду и может рассказать. Адекватно.

Ну или сам поглубже погружусь и если найду нечто практически применимое, может расскажу.
[14:54:36] <ada_ru> (Oleg) Вот я сейчас делаю
[14:55:02] <ada_ru> (Oleg) void endis_current_mirror(bool enable)
{
 //set port to output
 PORTD &= ~(1 << PIND3);
 DDRD |= (1 << PIND3);
 
 //if enable flag is true
 if(enable){
     PORTD |= (1 << PIND3);
 }
 else
 {
   PORTD &= ~(1 << PIND3);
 }
 
}
[14:55:08] <ada_ru> (Oleg) Хоть на чем делай
[14:55:59] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Хоть на чем делай>
Ну, тут такое.. Можно на грабли наступить. И народ регулярно наступает. То какой-нибудь while(1){} напишет, то еще что.
[14:56:19] <ada_ru> (I_vlxy_I) А потом компилятор немного пооптимизирует и прога работает совсем не так как ожидалось.
[14:56:50] <ada_ru> (Sergei)  отвечает (Oleg) на <Вот я сейчас делаю>
Лучше попытаться реализовать это на бинарной логики, без if
[14:56:58] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <https://twitter.com/…>
А может это закинуть в англоязычную группу и в канал дайджеста?
[14:57:00] <ada_ru> (Sergei) Это стандартная рекомендация по оптимизации
[14:57:44] <ada_ru> (Sergei) Потому как if плохо для конвейера, а логические операции - хорошо
[14:58:11] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Потому как if плохо …>
это при условии, что конвеер и спекулятивное исполнение вообще есть на целевой железяке 😊
[14:58:21] <ada_ru> (Oleg) У меня AVR и компилятор IAR
[14:58:25] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <это при условии, что…>
а, ну да
[14:58:42] <ada_ru> (Sergei)  отвечает (Oleg) на <У меня AVR и компиля…>
Круто
[14:58:47] <ada_ru> (Oleg) Ж-)
[14:58:57] <ada_ru> (Oleg) Хотел RL78 но не успел
[14:59:00] <ada_ru> (Sergei) А у меня уже привычка минимум if лепить везде
[14:59:23] <ada_ru> (Oleg) Да я тоже стараюсь - но тут не надо скорости
[14:59:25] <ada_ru> (I_vlxy_I) Между тем, голосование продолжается: https://www.strawpoll.me/17932792/r
[14:59:37] <ada_ru> (Oleg) Я там ответил 😊
[14:59:41] <ada_ru> (Oleg) Про AVR
[15:00:23] <ada_ru> (Sergei) А я бы хотел воочию увидеть, как proof-ы работают в SPARK. Но я не знаю, буду ли я эту конкретную конференцию смотреть
[15:00:40] <ada_ru> (Максим)  отвечает (Sergei) на <Причины могут быть к…>
Конечно были. Как и от бругих участников: Слишком много гомна про Аду, слишком много пиара С++, слишком много оффтопа вобщем и оффтопа о других языках в часности
[15:00:43] <ada_ru> (Sergei) Хочу видеть, как полностью доказывается программа на правильность
[15:01:05] <ada_ru> (Максим) Какнал называется про Аду, а пишут внем не про Аду. Нет смысла сидеть в таком канале
[15:01:10] <ada_ru> (Sergei)  отвечает (Максим) на <Конечно были. Как и …>
Не правда. Последние высказывания от longboi были на тему C++
[15:06:32] <ada_ru> (Sergei) "а пишут внем не про Аду" - это упрёк тем, кто пишет "не про аду" или тем, кто "не пишет про Аду", или и тем и другим
[15:08:31] <ada_ru> (Eugene) да может он просто занят чем-то и не до чата, а нотификации не по теме отвлекают...
так многие делают -- подписался-отписался-подписался-отписался...
[15:08:59] <ada_ru> (Sergei)  отвечает (Eugene) на <да может он просто з…>
Да вот и я об этом. Не стоит реагировать на отписывание и домысливать её причины.
[15:09:57] <ada_ru> (Sergei) Если бы он считал нужным, сообщил бы
[15:10:07] <ada_ru> (Максим) это не домыслы а реальные отзывы реальных людей
[15:10:32] <ada_ru> (Sergei) может быть, но не конкретно longboi
[15:10:56] <ada_ru> (I_vlxy_I) А вот ещё раз, поясните за строки: если я строку передаю в процедуру через in или in out — она будет копироваться? Допустим строка длинною 2 гигабайта.
[15:11:17] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <может быть, но не ко…>
Ну, он про это упоминал
[15:13:54] <ada_ru> (Максим) кроме федора здесь были когда-то было много адистов - дима анисимков, сергей рыбин, вася фофанов, андрей огородник
[15:14:00] <ada_ru> (Максим) никто не выдержал
[15:14:15] <ada_ru> (Sergei) Ну, смотри. Вот запостит кто-то очередную бородатую историю про переполнение буфера в С++ и я, допустим, демонстративно отпишусь. Ну что тогда. Тогда ещё меньше будет.
[15:14:52] <ada_ru> (Максим) чат в такой форме не интересен адистам
[15:15:42] <ada_ru> (Sergei) Но другого чата у адистов нет. А виноваты мы, которые раз в 2 месяца появляемся с очередным упоминанием С++
[15:15:58] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <чат в такой форме не…>
А в какой форме он был бы интересен?
[15:17:00] <ada_ru> (I_vlxy_I) но любой чятик имеет проблему - если он активный, то там слишком дофига сообщений и люди просто не успевают читать. даже если всё по теме.
[15:17:08] <ada_ru> (I_vlxy_I) я напрнимер не успеваю иногда читать чатик по с++.
[15:17:29] <ada_ru> (I_vlxy_I) а коль прилетают нотификации, а читать всё равно не собираешься сейчас, просто отписываешься от такого чата.
[15:18:54] <ada_ru> (I_vlxy_I) можно естественно сделать отдельно болтанку и отдельно строго модерируемый Адский чат, где только вопросы-ответы-статьи по языку и либам.
[15:20:50] <ada_ru> (Sergei) Опыт brexit показывает, что иногда не стоит проводить референдумы. Но если будет референдум, какой чат иметь, я скорее всего отпишусь, потому, что Адский чат, даже такой, какой есть, мне мешает (отвлекает), какие бы вопросы там не поднимались и любое его изменение будет для меня извинительно.
[15:21:20] <ada_ru> (Sergei) Просто терплю по вредной привычке
[15:22:16] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Опыт brexit показыва…>
Я не понял. Как тебе было бы лучше?
[15:23:32] <ada_ru> (dimakraken)  отвечает (I_vlxy_I) на <но любой чятик имеет…>
Любой — смелое заявление. Я спокойно успеваю облагородить образ мышления в чате Архитектуры ИТ решений, т.к. к-во сообщений там всегда вменяемое. И .. что интересно, там говорят и деляться  именно по теме Архитектуры ИТ решений.
[15:23:34] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Я не понял. Как тебе…>
Мне было бы лучше сюда не заглядывать, я бы больше делал по работе
[15:24:11] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <можно естественно сд…>
https://web.telegram.org/#/im?p=g374049182
[15:25:00] <ada_ru> (Eugene) давно уже готова болталка
[15:25:26] <ada_ru> (I_vlxy_I)  отвечает (dimakraken) на <Любой — смелое заявл…>
От степени активности зависит. Если там под 4к участников и идет активное общение по теме (одновременно по 2-4 темам), то за час там может быть и 1000 сообщений.
[15:26:11] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <давно уже готова бол…>
Я бы скорее трансформировал в болтанку этот чат, а узкоспециализированный жёстко модерируемый пусть лучше сделает Максим
[15:27:12] <ada_ru> (I_vlxy_I) там, вероятно, будет сильно меньше сообщений.
[15:27:23] <ada_ru> (Sergei) Ну да, тем более, что от этого уже все пуристы отписаны
[15:27:24] <ada_ru> (I_vlxy_I) ну, или все в англоязычный чат 😊
[15:27:44] <ada_ru> (Sergei) предположительно
[15:28:02] <ada_ru> (Sergei) хотя просто болтанка тоже не интересно
[15:28:17] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <хотя просто болтанка…>
болтанка с Адской тематикой 😊
[15:28:19] <ada_ru> (Sergei) я извиняю себя, если нахожу время для Ады, просто поболтать не найду
[15:28:50] <ada_ru> (I_vlxy_I) мне интересно ковырять этот язык и искать его области применимости вне его ниши.
[15:29:02] <ada_ru> (Sergei) просто это продолжение традиции АдаРу, встречь и обсуждения околоадских проблем
[15:29:07] <ada_ru> (Sergei) для меня
[15:29:18] <ada_ru> (Sergei) если это не АдаРу, то я найду чем заняться ещё
[15:31:11] <ada_ru> (Sergei) В традициях Ады-Ру всегда была широкая тематика
[15:32:20] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <А вот ещё раз, поясн…>
на годболте генерируется сильно разный код, если у параметра типа String модификатор in или in out, а вот между вариантом с in и вариантом без модификаторов разницы нет
[15:32:22] <ada_ru> (Sergei) Господа Рыбин, Фованов , кстати, в АдаРу не участвовали даже тогда, когда тематика (в начале) была 100% адская
[15:32:39] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <на годболте генериру…>
in он по умолчанию потому что.
[15:34:29] <ada_ru> (Eugene) между in out и просто out тоже нет разницы
[15:34:55] <ada_ru> (Eugene) то есть фактически имеет смысл только вариант out и вариант без модификатора, что ли?
[15:35:08] <ada_ru> (Sergei)  отвечает (Eugene) на <между in out и прост…>
почему нет
[15:35:18] <ada_ru> (Eugene) ну машкод одинаковый
[15:36:11] <ada_ru> (Sergei) вопрос был про in и без in? Это одно и то же
[15:36:19] <ada_ru> (Sergei) но in для разных типов разный
[15:36:35] <ada_ru> (Sergei) разница in, in out и out зависит от типа
[15:36:49] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <то есть фактически и…>
компилятор по рукам даст при чтении без записи в out параметр.
[15:36:50] <ada_ru> (Eugene) изначально вопрос был как передаются строки с параметрами in и in out
[15:37:06] <ada_ru> (I_vlxy_I) есть таки отличие у in out и out на уровне семантики языка, а не на уровне машкода.
[15:37:35] <ada_ru> (I_vlxy_I) а уж что там с машкодом - дело компилятора, так то.
[15:37:43] <ada_ru> (I_vlxy_I) меня же интересует in VS in out.
[15:37:53] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <компилятор по рукам …>
чота не даёт по рукам: https://godbolt.org/z/CkjbVG
[15:37:56] <ada_ru> (I_vlxy_I) в плане производительности. для строк. разных строк.
[15:38:02] <ada_ru> (Sergei) отличия основные, когда in, out во входе таски
[15:38:14] <ada_ru> (Sergei) это всё придумано для параллельных структур
[15:38:21] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <чота не даёт по рука…>
example.adb:4:16: warning: formal parameter "str" is read but never assigned
[15:38:45] <ada_ru> (Sergei) в c++ аналогов in, out нет
[15:38:54] <ada_ru> (Sergei) это не ссылка и не указатель
[15:39:02] <ada_ru> (Sergei) это копия объекта в потоке таски
[15:39:24] <ada_ru> (I_vlxy_I) а если мы без многопоточности пока что? давай пока про однопоточную синхронную прогу.
[15:39:51] <ada_ru> (Sergei) in, out в Аде придуманы для тасок и генерализированы для всего остального
[15:40:21] <ada_ru> (Eugene)  отвечает (I_vlxy_I) на <example.adb:4:16: wa…>
ну, ворнинг -- это не по рукам же...
[15:42:55] <ada_ru> (Sergei) in - лучше всего думать как о копии объекта. in out - расшаренный доступ, out - доступ с перетиранием, если кто-то делает параллельный out
[15:43:15] <ada_ru> (I_vlxy_I)  отвечает (Eugene) на <ну, ворнинг -- это н…>
https://godbolt.org/z/OR9jmF 😊
[15:43:46] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <in - лучше всего дум…>
у меня строка размером в пару-тройку гиг. Как мне её передавать в функцию/процедуру?
[15:44:07] <ada_ru> (Sergei) in
[15:44:18] <ada_ru> (Sergei) будет передаваться указатель
[15:44:25] <ada_ru> (Sergei) для массива
[15:44:26] <ada_ru> (I_vlxy_I) а если мне её надо там модифицировать?
[15:44:46] <ada_ru> (Sergei) копию или оригинал?
[15:45:00] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <копию или оригинал?>
оригинал. на копию нет памяти.
[15:45:04] <ada_ru> (Sergei) in out
[15:45:18] <ada_ru> (I_vlxy_I) то есть в этом случае копия всё же не будет создаваться?
[15:45:20] <ada_ru> (Sergei) но тогда параллельный доступ на твоей совести
[15:45:41] <ada_ru> (Sergei) нет, насколько я знаю
[15:46:43] <ada_ru> (Sergei) всё должно быть написано в RM
[15:47:22] <ada_ru> (Sergei) если там это не написано, то тогда GNAT RM - детали реализации
[15:47:44] <ada_ru> (I_vlxy_I) Ага. Спасибо.
[15:50:07] <ada_ru> (Sergei) Фокус в том, что параллельный доступ, обычно, всегда через рандеву, потому твоя строка никогда не будет висеть сразу на двух out-ах.
[15:50:49] <ada_ru> (Sergei) то есть, не на твоей совести всё-таки
[15:50:55] <ada_ru> (I_vlxy_I) до Адской многопоточки я не дорос ещё.
[15:51:20] <ada_ru> (Sergei) ну вот, начал доростать значит
[15:54:06] <ada_ru> (I_vlxy_I) ну, в плане Ады я пока на том этапе, когда хочется быстрой однопоточной программы 😊
[15:56:02] <ada_ru> (Sergei) Ага, понял твой этап. Значит самое важное, перестать использовать указатели в параметрах процедур
[15:56:08] <ada_ru> (Sergei) По привычке
[15:56:54] <ada_ru> (Sergei) потому как надёжность Ады зиждется на доказательствах того, что через in/out ничего не поломается
[15:57:23] <ada_ru> (Sergei) делать копию или передавать указатель компилятор выбирает сам
[15:58:18] <ada_ru> (I_vlxy_I) ага. передавать по указателю (явным образом) это ещё и медленно, скорее всего. Потому как нет гарантии отсутствия алиасинга.
[15:59:24] <ada_ru> (Sergei) Когда пишешь на Аде надо забыть на время о стоимости вызова процедуры. Она, в любом случае, больше чем в С++ из-за динамических структур на стеке
[15:59:28] <ada_ru> (Sergei) и проверок
[15:59:46] <ada_ru> (Sergei) надо сосредоточится на логической корректности
[15:59:56] <ada_ru> (Sergei) in/in out или out
[16:00:01] <ada_ru> (I_vlxy_I) ну, для проверок есть -gnatp а динамическими структурами можно и не пользоваться (то есть тем, размер чего не известен на этапе компиляции)
[16:00:23] <ada_ru> (Sergei) думаю стек всегда выделяется по одному принципу, есть там структуры или нет
[16:00:35] <ada_ru> (I_vlxy_I) да, и вроде в gnat можно отрубить второй стек. тогда будут ошибки компиляции в тех местах, где он необходим.
[16:01:03] <ada_ru> (Sergei) в общем, пока думаешь о стоимости вызова, ты ещё не пишешь на Аде
[16:01:22] <ada_ru> (I_vlxy_I) "3.2.3. Disabling the Secondary Stack

The secondary stack can be disabled by using pragma Restrictions (No_Secondary_Stack); This will cause an error to be raised at compile time for each call to a function that returns an object of unconstrained type. When this restriction is in effect, Ada tasks (excluding the environment task) will not have their secondary stacks allocated."
[16:01:27] <ada_ru> (I_vlxy_I) https://docs.adacore.com/gnat_ugx-docs/html/gnat_ugx/gnat_ugx/the_stacks.html
[16:01:44] <ada_ru> (Sergei) ага, интересно
[16:01:59] <ada_ru> (Sergei) давно не брал я в руки шашек значит
[16:02:04] <ada_ru> (I_vlxy_I) ну и если на godbolt глянуть, видно, что второй стек далеко не всегда юзается
[16:02:07] <ada_ru> (I_vlxy_I) только там, где это нужно
[16:02:31] <ada_ru> (I_vlxy_I) ну и не могу я не думать про стоимость вызовов - мне надо скорость не хуже плюсовой 😊
[16:03:22] <ada_ru> (Sergei) "ну и не могу я не думать про стоимость вызовов - мне надо скорость не хуже плюсовой" - полезно знать в самом начале о том, что твоя задача поставлена неверна
[16:03:57] <ada_ru> (Sergei) так ты ничего на Аде не напрограммируешь
[16:04:30] <ada_ru> (Sergei) Довольствуйся тем, что скорость быстрее Java и Python
[16:05:02] <ada_ru> (I_vlxy_I) ну, как бы тоесть, программа писанная на Аде работающая в 10-50 раз медленней аналога на плюсах - это провал. То есть, это означает, что задача не решена. Программа не работает как надо.
[16:06:09] <ada_ru> (Sergei) Для Ада-сообщества любая написанная на Аде программа - это не провал, а достижение. У такой программы есть преимущества перед С++
[16:06:21] <ada_ru> (Sergei) даже если она в 10 раз медленнее
[16:07:02] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <даже если она в 10 р…>
просто потому, что это на Аде написано?
[16:07:32] <ada_ru> (Sergei) Ну, у неё есть почти математическая строгость, с ней можно работать
[16:07:58] <ada_ru> (Sergei) Но реально будет медленнее макс 2-3 раза
[16:08:01] <ada_ru> (I_vlxy_I) ага. только пользователь с ней работать не сможет. ибо 60 fps VS 6 fps для видео это существенно.
[16:08:17] <ada_ru> (Sergei) хорошо, но тогда чем плох C++
[16:08:56] <ada_ru> (I_vlxy_I) чем плох и хорош ц++ я знаю, мне интересно посмотреть на его альтернативы. Ада - один из кандидатов.
[16:09:39] <ada_ru> (I_vlxy_I) Один из, наверное, двух.
[16:10:17] <ada_ru> (Sergei) Да, но это не такая же быстрая альтернатива . Это альтернатива языкам типа Delphi, Pascal
[16:10:37] <ada_ru> (Sergei) Python
[16:10:39] <ada_ru> (Sergei) Java
[16:11:16] <ada_ru> (Sergei) Можно заставить работать адский код почти так же быстро, полностью похерив адский стиль программирования
[16:12:35] <ada_ru> (Sergei) Адские программы живут долго. Можно скомпилировать прогу из 85 года и она будет работать быстро
[16:12:45] <ada_ru> (I_vlxy_I) я вообще не представляю в каком месте java и Ада могут быть конкурентами. Они вообще из разных областей.
[16:13:17] <ada_ru> (Sergei) я так не считаю. В Аду добавили а-ля java interfaces, чтобы вывести в одну нишу
[16:13:21] <ada_ru> (Sergei) переносимость
[16:13:31] <ada_ru> (I_vlxy_I) с точки зрения жабы - ада очень не безопасный язык, думаю с точки зрения Ады жаба тоже не безопасный.
[16:13:51] <ada_ru> (I_vlxy_I) Ну и ниши у них вообще разные. программирование на жабе сейчас это программирование на xml и аннотациях.
[16:13:58] <ada_ru> (I_vlxy_I) всякие спринги и прочая ересь.
[16:14:18] <ada_ru> (I_vlxy_I) динамическая загрузка/выгрузка всего подряд, докомпиляция в процессе.
[16:15:05] <ada_ru> (Sergei) ну, по стилям и методам программирования - разные, по нишам - могут использоваться для одних и тех же программ
[16:15:12] <ada_ru> (Sergei) те же финансы
[16:15:17] <ada_ru> (Sergei) или роботы
[16:15:33] <ada_ru> (Sergei) но не видеопроцессинг
[16:16:10] <ada_ru> (I_vlxy_I) кстати, видеопроцессинг на жабе я таки видел 😊
[16:16:56] <ada_ru> (I_vlxy_I) ну и IDE у жабы вообще космически и по сравнению с плюсовыми и по сравнению с адскими.
[16:18:55] <ada_ru> (Sergei) Сейчас уже сложно провести такую чёткую грань. Когда я делал свои первые проекты на Аде была очевидная разница подходов. Если в C++, например, задача декомпозировалась путём построения диаграммы классов, то в Аде - путём декомпозиции на взаимодействующие таски
[16:19:06] <ada_ru> (Sergei) вот это главное отличие проектирования программ на Аде и не на Аде
[16:19:31] <ada_ru> (Oleg) Так друзья
[16:19:35] <ada_ru> (Oleg) Есть идея
[16:19:37] <ada_ru> (Sergei) За счёт этого многопоточные программы на Аде работали быстрее, чем однопоточные на С++
[16:21:07] <ada_ru> (Oleg) Есть у меня OrCAD - хочу сделать генерацию портов и пинов микроконтроллера в типа чтото #define MOTOR1PIN PINA3 но для Ады?
[16:21:24] <ada_ru> (Oleg) Что то забыл
[16:21:38] <ada_ru> (Oleg) в Аде есть чтото типа тикого ?
[16:22:03] <ada_ru> (I_vlxy_I) эмм.. это просто константы?
[16:22:15] <ada_ru> (I_vlxy_I) тебе нужно забиндить переменные к конкретным адресам?
[16:22:57] <ada_ru> (Oleg) Ну чтото типа #define A1 1
[16:23:07] <ada_ru> (Oleg) Просто константа наверное
[16:23:32] <ada_ru> (Oleg) Но чтоб подключить потом файл и готово
[16:23:44] <ada_ru> (I_vlxy_I) перечислительный тип?
[16:24:00] <ada_ru> (Sergei) enumeration
[16:24:03] <ada_ru> (Sergei) он самый
[16:24:20] <ada_ru> (Oleg) Эх пойду ка я за русской клавиатурой схожу
[16:24:26] <ada_ru> (Sergei) https://www.adaic.org/resources/add_content/docs/95style/html/sec_3/3-4-2.html
[16:24:53] <ada_ru> (Sergei) "Enumerations are more robust than numeric codes; they leave less potential for errors resulting from incorrect interpretation and from additions to and deletions from the set of values during maintenance. Numeric codes are holdovers from languages that have no user-defined types."
[16:25:30] <ada_ru> (Sergei) последнее предложение заслуживает внимания
[16:29:23] <ada_ru> (I_vlxy_I) Да. Дефайнами даже в плюсах уже не пользуются для такого.
[16:29:36] <ada_ru> (I_vlxy_I) enum class ведь есть
[16:30:31] <ada_ru> (Sergei) и самое-самое главное - для enumeration есть атрибут приведения к строке
[16:30:45] <ada_ru> (Sergei) чего, к слову, нету в С++
[16:31:48] <ada_ru> (Sergei) И даже, наоборот

https://en.wikibooks.org/wiki/Ada_Programming/Attributes/%27Value
[16:37:46] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <чего, к слову, нету …>
https://github.com/Neargye/magic_enum
[16:37:59] <ada_ru> (I_vlxy_I) как обычно, можно сделать либой 😊
[16:40:35] <ada_ru> (I_vlxy_I) но оно конечно компиляторозависимо.
[16:40:50] <ada_ru> (I_vlxy_I) работает только с clang, gcc и msvc
[16:41:32] <ada_ru> (Sergei) Я себе давно написал свой тип и забыл об этой проблеме - https://github.com/lodyagin/types/blob/master/enum.h
[16:42:20] <ada_ru> (Sergei) см. здесь пример использования - https://github.com/lodyagin/types/blob/master/tests/EnumTest.cpp
[16:43:50] <ada_ru> (I_vlxy_I) многословненько. так то.
[16:44:07] <ada_ru> (Sergei) Что многословненько . struct?
[16:44:46] <ada_ru> (Sergei) а вот это как тебе: https://github.com/lodyagin/types/blob/master/enum_union.h

?
[16:46:47] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Что многословненько …>
ага. со строки 95 по 106
[16:48:09] <ada_ru> (Sergei) базовый пример с 7 по 20
[16:48:29] <ada_ru> (Sergei) enumerate может быть любым классом, так то
[16:48:59] <ada_ru> (Sergei) то есть любые классы можно засунуть как члены enumerate.
[16:50:03] <ada_ru> (I_vlxy_I) ага. ну, так то норм.
[16:50:29] <ada_ru> (Sergei) и да, конверсия в строки и из строки - constexpr
[16:50:53] <ada_ru> (Sergei) кто-то скажет С++, но идея же из Ады!
[16:53:21] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <кто-то скажет С++, н…>
идея рефлексии небось еще и до Ады была. Но так то да - это точно не плюсовая хрень 😊
[16:56:20] <ada_ru> (Sergei) Да, в аде рефлексия очень важная часть. Ещё и сериализация же есть
[16:57:09] <ada_ru> (Sergei) Можно загрузить объекты из файла стандартной процедурой
[16:57:39] <ada_ru> (I_vlxy_I) а оно портабельно?
[16:57:53] <ada_ru> (Sergei) я не портировал, но использовал
[16:57:55] <ada_ru> (I_vlxy_I) то есть сериализованное на другом компиляторе и архитектуре я смогу десериализовать?
[16:58:13] <ada_ru> (Sergei) это вопрос к знатокам
[16:59:55] <ada_ru> (Sergei) Меня в Аде больше напрягает отсутсвтвие хорошей реализации Annex E, чем всё остальное
[17:00:28] <ada_ru> (I_vlxy_I) думаю сериализация именно для него и задумывалась.
[17:01:46] <ada_ru> (Sergei) и вот тут Java имела все шансы обойти, потому как, если в Аде можно послать только данные, то в Java и код методов вместе с данными. Но как-то не взлетело почему-то на Java это
[17:02:18] <ada_ru> (Sergei) Скотилось до банковского совта исключительно
[17:02:43] <ada_ru> (Sergei) или скатилось, тут уж не знаю
[17:03:48] <ada_ru> (Sergei) это как с космосом. Уже на Луну вышли и на марс нацелились, а потом на десятилетя забыли вообще.
[17:03:49] <ada_ru> (I_vlxy_I) жаба это ж не только банковский софт, но и половина интернетов.
[17:04:35] <ada_ru> (Sergei) концепция "послать активный объект" упростилась до flash анимации
[17:05:41] <ada_ru> (Sergei) где мечта OMG продавать объекты, чтобы пользователи компоновали из них системы себе?
[17:06:44] <ada_ru> (Sergei) теперь ты ввёл хороший термин - "пережитки 90-х"
[17:07:58] <ada_ru> (Sergei) OMG = Object Management Group, если кто не помнит
[17:08:18] <ada_ru> (I_vlxy_I) послать исполняемый код - это потенциальная дырень в безопасности
[17:08:35] <ada_ru> (I_vlxy_I) хотя, мы и так постоянно посылаем исполняемый код - js в браузере
[17:08:40] <ada_ru> (I_vlxy_I) а теперь еще и webasm
[17:08:59] <ada_ru> (Sergei) для этого же и придумали Java VM, и jail всякие и прочую хрень
[17:09:09] <ada_ru> (Sergei) а скотились до JS
[17:09:13] <ada_ru> (Sergei) в браузере
[17:10:11] <ada_ru> (I_vlxy_I) jvm в браузере, по тем временам, была дико тяжёлой по памяти. я отлично помню что происходило с компом когда на странице встречался апплет и начинала грузиться jvm.
[17:10:20] <ada_ru> (Sergei) и, заметь, на безопасность ничего из этого положительно не повлияло
[17:10:57] <ada_ru> (I_vlxy_I) а js появился легким и удовлетворяющим минимально тому, что требовалось чаще всего. а потом потихоньку рос рос, с мощностями и объемами ОЗУ, он был сразу в браузере. и потому органично вырос
[17:11:13] <ada_ru> (I_vlxy_I) теперь там и jit компиляция и отставание по скорости на Си, на некоторых тестах, примерно в 2 раза всего.
[17:11:53] <ada_ru> (I_vlxy_I) да, jvm с её апплетами это такая огромная дырень, что jvm теперь запрещена по умолчанию.
[17:11:59] <ada_ru> (I_vlxy_I) activeX - ещё бОльшая дырень.
[17:12:07] <ada_ru> (I_vlxy_I) js - безопасней.
[17:12:26] <ada_ru> (I_vlxy_I) а уж какой дырой был флеш...
[17:15:51] <ada_ru> (Sergei) дело не в безопасности, а в непопулярности кооперативных энвайронментов где либо вне культовой среды Unix untils
[17:16:32] <ada_ru> (Sergei) ps |grep -v grep |wc -l
принцип можно было бы использовать со всем совтом
[17:17:08] <ada_ru> (Sergei) дык нет, каждый хочет полностью занять весь экран и перехватить клаву
[17:17:16] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <ps |grep -v grep |wc…>
нет настолько квалифицированных пользователей за пределами множества пользователей Unix utils
[17:18:13] <ada_ru> (Sergei) кооперативное мышление не развито достаточно сильно в человеческих индивидуумах, тем более, в среде компаниях-гигантах
[17:18:45] <ada_ru> (Sergei) каждый программер пишет свой велосипед
[17:19:23] <ada_ru> (Sergei) вот потому все эти методики не востребованы
[17:19:52] <ada_ru> (I_vlxy_I) Да ладно. Пакетные манагеры более чем популярны. Они широко используются у почти всех ЯП
[17:20:53] <ada_ru> (I_vlxy_I) только у Си и С++ они до сих пор не особо распространены.
[17:21:02] <ada_ru> (I_vlxy_I) но conan потихоньку своё дело делает.
[17:21:28] <ada_ru> (I_vlxy_I) у остальных же ЯП пакетный манагер просто искаропки идёт. И никто свой велосипед не пишет уже обычно.
[17:45:19] <ada_ru> (Юрий) Братцы, вот объясните мне как правильно переводится statement, в переводе это слово всегда называют оператор, но ведь это не так. Так как правильно?
[17:46:13] <ada_ru> (I_vlxy_I) вроде так и не устоялась тут единая терминология русскоязычная.
[17:49:53] <ada_ru> (I_vlxy_I) хм. Annex E это же https://en.wikipedia.org/wiki/PolyORB ?
[17:50:40] <ada_ru> (Sergei) По-мойму, PolyORB - это CORBA
[17:51:04] <ada_ru> (I_vlxy_I) "PolyORB provides a uniform solution to build distributed applications relying either on middleware standards such as CORBA, the Ada 95 Distributed System Annex"
[17:54:27] <ada_ru> (Sergei) Ничего не могу сказать. Знаю, что тут есть те, кто может просветить. Я же на бочку могу положить только вот эту любопытную статейку - https://queue.acm.org/detail.cfm?id=1142044
[18:08:24] <ada_ru> (Sergei) Я слышал, что Ада Кора придумала PolyORB, потому что с Annex E концептуальные сложности на уровне стандарта
[18:09:48] <ada_ru> (Sergei) Но это как раз произошло на спаде популярности корбы. Какую альтернативу сейчас ей можно найти - я не знаю.
[18:09:54] <ada_ru> (Sergei) корбе
[18:10:10] <ada_ru> (Sergei) мир отошёл от проблемы как таковой
[18:10:14] <ada_ru> (I_vlxy_I) угу
[18:10:25] <ada_ru> (I_vlxy_I) если нужно rpc, то юзают что-то попроще
[18:10:37] <ada_ru> (I_vlxy_I) типа того же gRPC например
[18:11:21] <ada_ru> (Sergei) пересмотреть Annex E никто не решился, как я понял
[18:11:34] <ada_ru> (Sergei) то есть есть полностью нереализуемая часть в стандарте
[18:11:49] <ada_ru> (Sergei) даже если реализуемая - неюзабельно реализуемая
[18:11:54] <ada_ru> (I_vlxy_I) это нормально. это и в плюсах так бывает.
[18:14:14] <ada_ru> (Sergei) В своё время CORBA подавалась как открытая альтернатива DCOM
[18:14:23] <ada_ru> (Sergei) Потому интересен вопрос - а что с DCOM?
[18:14:43] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Потому интересен воп…>
как-то живёт, но с него тот же OPC ушёл
[18:16:35] <ada_ru> (Sergei) неосилили
[18:16:54] <ada_ru> (I_vlxy_I) ну, кому нужен OPC который гвоздями прибит к виндам?
[18:36:44] <ada_ru> (Sergei) Ну вот тогда вопрос. К знатокам. Допустим, я хочу переписать свою старую игрушку, многопользовательскую, с мерзкого C/Motif/X-Window на сладкую Аду. Как, на основе какой библиотеки/технологии построить сетевую коммуникацию и что взять для user interface (2d graphics).
[18:37:35] <ada_ru> (I_vlxy_I) UI: через SDL, если там именно игровая графика, а не офисная (кнопоко-текстоввоодащая).
[18:38:00] <ada_ru> (Sergei) там стандартный motif интерфейс плюс обычный canvas
[18:38:13] <ada_ru> (Sergei) рисую ручками - линии, заливки
[18:38:35] <ada_ru> (I_vlxy_I) ну, значит SDL + что-то для рисования примитивов (для SDL есть причмочки)
[18:38:59] <ada_ru> (Sergei) ну а для сетки
[18:39:03] <ada_ru> (I_vlxy_I) для сети я бы взял: для сериализации/десериализации google protobuf. Для Ады недавно появилась реализация: https://github.com/persan/protobuf-ada
[18:39:16] <ada_ru> (I_vlxy_I) то есть это для описания сообщений
[18:39:26] <ada_ru> (Sergei) ага.
[18:40:00] <ada_ru> (I_vlxy_I) для самой сети - я хз. надо смотреть подробней что за игра. может там вообще по http можно гнать.
[18:40:28] <ada_ru> (Sergei) Не, я хочу peer-to-peer коммуникацию, не хочу держать сервер - да и не современно это
[18:40:45] <ada_ru> (I_vlxy_I) а может и вебсокетов хватит. а может там реалтайм-реалтайм и нужно быстро пакетики гонять, тогда я бы посоветовал посмотреть на enet и, возможно, сделать биндинг к enet, или реализовать что по мотивам поверх udp
[18:40:57] <ada_ru> (Eugene) если игра типа мира варкрафта, то там по UDP надо посылат пакеты, иначе пинги и лаги жуткие будут
[18:41:13] <ada_ru> (I_vlxy_I) http://enet.bespin.org/
[18:41:43] <ada_ru> (I_vlxy_I) https://github.com/lsalzman/enet
[18:41:45] <ada_ru> (Sergei) вот с портами как быть - какой-то стандартный платформо-независимый интерфейс к файерволу?
[18:42:02] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <вот с портами как бы…>
как ломиться сквозь
[18:42:07] <ada_ru> (Sergei) типа как в bitcoin
[18:42:19] <ada_ru> (Sergei) ну да, там же есть какая-то либа
[18:42:22] <ada_ru> (Sergei) от M$
[18:42:41] <ada_ru> (I_vlxy_I) https://en.wikipedia.org/wiki/STUN
[18:42:44] <ada_ru> (I_vlxy_I) Ы?
[18:43:00] <ada_ru> (Sergei) не, стан я знаю, но это оверкилл
[18:43:05] <ada_ru> (Sergei) щас
[18:43:41] <ada_ru> (I_vlxy_I) я не верю в решения тут которые бы прошибали со 100 процентной вероятностью любые конфигурации NAT'ов
[18:44:05] <ada_ru> (Sergei) UPNP
[18:44:06] <ada_ru> (I_vlxy_I) в частности и поэтому от p2p в skype и отказались.
[18:44:24] <ada_ru> (Sergei) UPNP вроде 90% роутеров супортят
[18:44:35] <ada_ru> (I_vlxy_I) https://en.wikipedia.org/wiki/Universal_Plug_and_Play ,
[18:44:40] <ada_ru> (I_vlxy_I) оно?
[18:44:44] <ada_ru> (I_vlxy_I) оно ж в локалке, не?
[18:45:21] <ada_ru> (Sergei) не. Это такой протокол, прога может сама порты себе в роутере открывть. Ты не знал? bitcoin так работет
[18:45:27] <ada_ru> (I_vlxy_I) https://en.wikipedia.org/wiki/Universal_Plug_and_Play#NAT_traversal
[18:45:42] <ada_ru> (Sergei) кто не поддерживает - в бан
[18:45:44] <ada_ru> (I_vlxy_I) то есть оно работает через https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol
[18:45:46] <ada_ru> (Sergei) игру не давать
[18:45:58] <ada_ru> (I_vlxy_I) сам по себе upnp тебе небось и не нужен
[18:46:01] <ada_ru> (I_vlxy_I) а нужно вот это
[18:46:37] <ada_ru> (Sergei) ну или так, спасибо. Вот это уже будет современно
[18:46:47] <ada_ru> (Sergei) можно и чатик на аде написать
[18:47:03] <ada_ru> (I_vlxy_I) и плагин в GNAT GPS встроить для него 😊
[18:47:22] <ada_ru> (Sergei) это ты о питоне сейчас?
[18:47:38] <ada_ru> (I_vlxy_I) а я хз как плагины к gps пишутся. может там и на Аде можно?
[18:47:54] <ada_ru> (Lieutenant_Commander_Data) уу, тут страсти кипят
[18:48:40] <ada_ru> (Lieutenant_Commander_Data) надо просто сделать отдельный чатик, где говорить только про аду.
[18:48:45] <ada_ru> (Lieutenant_Commander_Data) oh, wait..
[18:49:02] <ada_ru> (I_vlxy_I) sdl: https://github.com/Lucretia/sdlada
[18:49:18] <ada_ru> (I_vlxy_I)  отвечает (Lieutenant_Commander_Data) на <надо просто сделать …>
дык. было предложение да.
[18:49:32] <ada_ru> (I_vlxy_I) чисто вопрос-ответ-анонс.
[18:51:55] <ada_ru> (I_vlxy_I) облин! sdl как-то теперь сам рисовать линии умеет!
[18:51:59] <ada_ru> (I_vlxy_I) SDL_RenderDrawLine и всякое такое
[18:52:40] <ada_ru> (Sergei) круто.

Интересно, как выглядел чат разработчиков Unix. Там модерировали?
[18:53:15] <ada_ru> (I_vlxy_I) думаю изначально у них чат в пабе был 😊
[18:53:49] <ada_ru> (I_vlxy_I) функции 2d рисования: https://wiki.libsdl.org/CategoryRender
[18:55:15] <ada_ru> (I_vlxy_I) всё. я хочу рисовать 😊 наверно на выходных буду всякой фигнёй страдать с sdl2 и рисованием. возможно рисованием карт.
[18:58:27] <ada_ru> (Sergei) хорошо тебе
[18:59:01] <ada_ru> (I_vlxy_I) м?
[19:00:42] <ada_ru> (Sergei) ну, всё, что ты, и я описал - IGDP (UPNP), SDL2 и проч. не очень подъёмное. Это не взять Motif и написать за 3 часа игрушку на С. Современные крэзи технологии делают любую задачу неподъёмной, по крайней мере мне жалко время тратить
[19:01:27] <ada_ru> (I_vlxy_I) sdl2 очень легкое и подъемное. c какой стороны IGDP подойти - я не знаю.
[19:02:18] <ada_ru> (I_vlxy_I) поэтому я бы вначале пототип нафигачил бы либо с сервером, либо чисто для локалочки на голом udp.
[19:02:43] <ada_ru> (Sergei) парадокс. С одной стороны Ada заточена на мультитаскинг. С другой - Ада кончается, когда появляется второй клястер. Так, вроде, называется исполнительный модуль
[19:03:02] <ada_ru> (Sergei) то есть в пределах одного компьютера только легко работает
[19:03:05] <ada_ru> (Sergei) это fail
[19:03:48] <ada_ru> (I_vlxy_I) а вот то, что protobuf для Ады чел допилил это очень круто - значит Ада теперь сможет адекватно зачитывать osm карты которые в pbf формате. А биндинг к SDL2 и наличие там быстрого рисование, дает возможность зачитанную карту отрендерить силами Ады.
[19:04:03] <ada_ru> (I_vlxy_I) можно делать всякое в итоге.
[19:04:22] <ada_ru> (Sergei) Спецификация говорит - прагма , и таска работает на другой машине. Почему не сделано.
[19:05:31] <ada_ru> (Sergei) не, у меня конкретно вот это было и остаётся. Ада недоделана
[19:05:33] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Спецификация говорит…>
видимо не нужно. число использований Ады уменьшилось, Ада схлопнулась в узкую нишу.
[19:06:00] <ada_ru> (I_vlxy_I) А этот Annex - артефакт древности.
[19:06:40] <ada_ru> (Sergei) если бы это работало, аду бы брали для реализации того же peer to peer
[19:06:48] <ada_ru> (Sergei) а ты говоришь артефакт
[19:07:25] <ada_ru> (I_vlxy_I) неа. оно бы не пролезло через современный интернет. плюс не факт что кластера там по аннексу этому могут работать на архитектурно разном железе.
[19:07:50] <ada_ru> (I_vlxy_I) я с подобным артефактом в erlang'e уже встречался. оно не для чатиков сделано.
[19:08:21] <ada_ru> (I_vlxy_I) плюс в пользовательском p2p рано или поздно потребовалось бы уметь общаться еще и с приложением писанном на другом ЯП.
[19:10:28] <ada_ru> (Sergei) Кстати, в chapel это сделано
[19:10:50] <ada_ru> (Sergei) он использует какую-то стороннюю прокладку, которая знает, как работать с разными сетками
[19:11:28] <ada_ru> (I_vlxy_I) ну и там нет вообще ничего про безопасность и шифрование.
[19:11:59] <ada_ru> (I_vlxy_I) короче, эта штука узкоспециализированная и могла бы на каких-нибудь вычислительных серварах в единой сети работать. но оно не для p2p пользовательского точно.
[19:17:38] <ada_ru> (Sergei) https://gasnet.lbl.gov/
[19:18:36] <ada_ru> (Sergei) Вот это тема
[19:23:40] <ada_ru> (I_vlxy_I) что-то очень крутое, судя по всему 😊
[19:24:41] <ada_ru> (Sergei) я это щупал. Работает как пестня. Компилишь прогу и запускаешь на двух компах. Трлько одна опция при запуске. Все пакеты GasNET есть в стандартном Linux Debian. Фсё.
[19:25:31] <ada_ru> (Sergei) работает как одна программа
[19:26:10] <ada_ru> (Sergei) Хочу такое в Аде
[19:27:22] <ada_ru> (I_vlxy_I) написано, что это языконезависимая штука. значит и для Ады можно!
[19:30:05] <ada_ru> (Sergei) интересно, под это можно где-то грант получить? ну, денег, чтобы сделать
[19:30:17] <ada_ru> (Sergei) вроде актуальная тема ...
[19:31:31] <ada_ru> (I_vlxy_I) может к адакоре постучаться?
[19:31:42] <ada_ru> (I_vlxy_I) короче. надо найти того, кому это надо.
[19:32:56] <ada_ru> (Sergei) Не, я не знаю, как стучаться к адакоре. Вроде она везде в лице своих работников и нигде в лице своих официальных спикеров.
[19:33:09] <ada_ru> (Sergei) Ну, бывают просто исследовательские гранты
[19:34:09] <ada_ru> (Sergei) Ладно, надо познакомиться с этой системой. Exoscale сейчас очень кричащая тема.
[20:24:11] <ada_ru> (Максим)  отвечает (Oleg) на <void endis_current_m…>
Хотелось бы тебя удивить, в Аде это делается одной строкой: DDRD.PIN3 := enabled;
[20:24:28] <ada_ru> (Максим) просто надо объявить DDRD красиво
[20:25:25] <ada_ru> (Oleg) Да я в Си тоже делал красиво . В Аде надо попробовать все таки мигрировать проект
[20:28:09] <ada_ru> (I_vlxy_I) sdl2: рисуем 20 тысяч линий в окне — полёт нормальный.
[20:28:25] <ada_ru> (I_vlxy_I) то есть, кажется, оно рисует действительно довольно быстро.
[20:33:28] <ada_ru> (Максим)  отвечает (Юрий) на <Братцы, вот объяснит…>
На эту тему было много разговоров в начале создания ada_ru рассылки. Александр Гавва вообще отказался от слова "оператор" в своей книжке "Адское программирование". Можно попробовать поискать в рассылке или на форуме: http://www.ada-ru.org/forum/p975025267_1.html
[20:36:08] <ada_ru> (Максим)  отвечает (Oleg) на <Да я в Си тоже делал…>
Посмотри, как сделано в ARM рантайм библиотеке, например
[20:37:42] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <то есть, кажется, он…>
~300..400 fps выходит.
[20:39:03] <ada_ru> (I_vlxy_I)  отвечает (I_vlxy_I) на <~300..400 fps выходи…>
но это на рабочей машине. надо будет попробовать на домашнем калькуляторе.
[20:40:44] <ada_ru> (Максим)  отвечает (Максим) на <Посмотри, как сделан…>
https://github.com/AdaCore/bb-runtimes/blob/community-2018/arm/stm32/s-stm32.ads
[20:41:53] <ada_ru> (Максим) и код установки частот и пр. рядом setup_pll.adb
[21:15:47] <ada_ru> (Oleg) Спасибо посмотрю