[00:21:47] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <А почему старт go пр…>
хм. первый запуск, или любой?
[00:22:14] <ada_ru> (I_vlxy_I) не помню такой особенности у гошных прог. вроде все было мгновенно всегда.
[00:22:44] <ada_ru> (I_vlxy_I) возможно у тебя какой-нибудь протектер или антивир сканит exe'шник, а он довольно крупный моежет быть, ибо статическая линкоффка.
[00:56:07] <ada_ru> (Oleg) Да первый запуск
[00:56:11] <ada_ru> (Oleg) Возможно
[00:57:02] <ada_ru> (Oleg) А можно же отключить статическую линковку?
[00:57:29] <ada_ru> (Oleg) А то 4 мб на 3 строчки кода, это перебор
[00:57:55] <ada_ru> (I_vlxy_I) вроде можно стало начиная с какой-то версии. но не нужно. 😊 ибо киллерфича же!
[00:58:20] <ada_ru> (Oleg) Да как сказать :-₽
[00:59:03] <ada_ru> (Oleg) Мне в большинстве случаев нужно две системы - windows server 2016 и red hat
[00:59:31] <ada_ru> (Oleg) И всякие либы я положу если надо куда надо
[01:33:58] <ada_ru> (I_vlxy_I) ну, иногда бывает довольно напряжно какой-нибудь libc подложить нужный 😊
[10:01:29] <ada_ru> (I_vlxy_I) https://github.com/AdaCore/gprbuild/commit/eb94de5bfcc5c5ddd36f701cfd43e542a96c118f
[10:48:50] <ada_ru> (nitrocerber) Гпрбилд зохватет мир!
[10:48:54] <ada_ru> (nitrocerber) Долой мэйки
[11:19:57] <ada_ru> (Sergei)  отвечает (t91x0) на <Странно, что в чате …>
Ада выигрывает при верификации программ. Я разве не говорил?
[11:22:08] <ada_ru> (t91x0)  отвечает (Sergei) на <Ада выигрывает при в…>
Так то её подмножество. Вы-то говорили, но гм... много ли обычных программ, которыми мы пользуемся каждый день, много ли из них являются верифицированными?

Я не пытаюсь гнать на Аду, а как раз стараюсь отыскать аргументы "за".

Для Си, насколько мне известно, существует Frama-C. Но с читабельностью у неё так себе.
[11:24:59] <ada_ru> (Sergei)  отвечает (t91x0) на <Так то её подмножест…>
"много ли из них являются верифицированными?" - мне не известно ни одной. Более того, я приводил сообщение якобы субконтрактников боинг, которые говорили, всё решает тестирование.
Я говорю о потенциально возможном выигрыше, в перспективе, если язык будет развиваться дальше. Других выигрышей мне пока не известно. Точка зрения "для тех, кто не смог осилить программирование на C++", каждый день высказываемая здесь как преимущество для меня является сомнительной.
[11:26:20] <ada_ru> (Sergei) Отдельные разработки отдельных людей, в частности Максима, тем не менее, заслуживают внимание. Но они интересны сами по себе, а не языком.
[11:27:27] <ada_ru> (Sergei) Я совершенно серьёзно сравнивал веру в язык верой в волшебную палочку. Всё решает программист, а не язык.
[11:33:13] <ada_ru> (t91x0)  отвечает (Sergei) на <"много ли из них явл…>
Тут можно зайти со стороны "Аду освоить легче, чем С++, особенно в его нынешнем изводе".
[11:34:21] <ada_ru> (t91x0)  отвечает (Sergei) на <Я совершенно серьёзн…>
То-то PHP стал синонимом говнокода. Да и JS.
[11:37:25] <ada_ru> (I_vlxy_I)  отвечает (t91x0) на <Тут можно зайти со с…>
Ну, ада же сейчас уже не с С++ соревнуется за умы новых программистов.
[11:39:10] <ada_ru> (Sergei)  отвечает (t91x0) на <То-то PHP стал синон…>
Я знаю очень хороших PHP-программистов. В том числе среди тех, кто пишет на C++. Могу привести примеры отличного PHP-стиля - Kohana, Cerberus Helpdesk.
[11:39:29] <ada_ru> (I_vlxy_I) С т.з. человека решающего что бы такое изучить (например плюсиста) Ада то не с плюсами конкурирует.
[11:39:30] <ada_ru> (Sergei) Почему он стал синонимом я не знаю.
[11:40:35] <ada_ru> (Sergei) jQuery является примером того, что даже на JS можно что-то написать
[11:41:29] <ada_ru> (t91x0)  отвечает (Sergei) на <jQuery является прим…>
А NPM стал примером того, что на JS лучше всё ж не писать
[11:42:35] <ada_ru> (t91x0) jquery -это когда было-то. Я не сомневаюсь, что вы знаете хороших специалистов, но подозреваю, что они - первопроходцы.
[11:42:49] <ada_ru> (t91x0) То есть, выдающиеся люди, первые пришедшие в тему
[11:43:17] <ada_ru> (t91x0) А те, кто потянулись за ними - понаписали уже того, что и создало известную репутацию для убемастеров.
[11:44:41] <ada_ru> (I_vlxy_I) Проще ли освоить Аду нежели Rust, Swift, Go, Kotlin?
[11:44:58] <ada_ru> (t91x0) Go проще
[11:45:27] <ada_ru> (t91x0) Rust слегка мозговыносящ, хотя у него ошибки читабельные, а не ужас из темплейтов.
[11:45:46] <ada_ru> (t91x0) Котлин и свифт я вообще не трогал.
[11:46:48] <ada_ru> (nitrocerber) котлин же та же жава + 3 кубика рафинада, не?
[11:46:54] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Проще ли освоить Аду…>
Один раз я предлагал освоить Аду программисту, который интересовался новыми языками, в плане выучить. Когда он услышал "Ада" он сказал - зачем осваивать язык, нацеленный на решение проблем 80-х годов ... методами 80-х годов. Пока я нигде не видел развёрнутого ответа в интернете на этот вопрос, на который я бы мог сослаться когда опять услышу такое мнение.
[11:47:56] <ada_ru> (t91x0) Можно было ему ответить, что Си-то вовсе из 70х, и ничего - пишете и не жалуетесь, хоть и плюётесь слегка.
[11:48:18] <ada_ru> (nitrocerber)  отвечает (Sergei) на <Один раз я предлагал…>
чтобы свалить из сраной рашки (ц) и пахать на дядю сема за много килобаксов. элементарно, ватсон!
[11:48:27] <ada_ru> (Sergei) Чтобы сравнивать Аду с Rust, Swift, Go, Kotlin надо 1) понять, какие проблемы они решили 2) что в Аде по этому поводу успели предложить
[11:48:40] <ada_ru> (t91x0)  отвечает (nitrocerber) на <котлин же та же жава…>
Котлин скорее похож на Скалу для людей, а не для аспирантов.
[11:48:48] <ada_ru> (I_vlxy_I) Си любому просто надо знать. Плюсы - очень желательно уметь хотя бы читать. А вот остальное - можно выбирать.
[11:49:14] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <котлин же та же жава…>
Есть kotlin-native. Без jvm
[11:49:22] <ada_ru> (Sergei)  отвечает (t91x0) на <Можно было ему ответ…>
Это не обоснование. Он сформулировал достаточно грамотно и я , до сих пор. не знаю, что ему мог бы ответить.
[11:49:27] <ada_ru> (I_vlxy_I) И без виртуальной машины вообще
[11:50:18] <ada_ru> (Sergei) Ада была создана для решения проблем, которые были в 80-х годах (а то и в 70-х) - это верно
[11:50:30] <ada_ru> (Sergei) Были предложены лучшие на то время методы - то же верно
[11:51:09] <ada_ru> (t91x0)  отвечает (Sergei) на <Это не обоснование. …>
Его формулировка из серии "я рыбу не ем, потому что потому". Ответить на такое можно только "жрать будешь, что дают". Это вкусовщина.
[11:51:43] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <чтобы свалить из сра…>
Не выйдет :-(
[11:51:44] <ada_ru> (I_vlxy_I) Происхождение не то
[11:51:58] <ada_ru> (nitrocerber) ну не на дядю сэма так на дядю франсуа
[11:52:01] <ada_ru> (nitrocerber) эти берут)
[11:52:12] <ada_ru> (nitrocerber) /s/баксы/евро
[11:54:25] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Это не обоснование. …>
То, что Ада не стоит на месте.
[11:57:02] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <То, что Ада не стоит…>
Да, но если я скажу, что Ада потихонько догоняет, это никого не впечатлит, потому что есть большой выбор среди лидеров.
[11:57:17] <ada_ru> (Sergei) В 80-х она была лидером
[11:57:53] <ada_ru> (Sergei) То есть, никакой мотивации учить второй язык нет, когда так много первых
[11:58:09] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Да, но если я скажу,…>
Догоняет КОГО?
[11:59:54] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Догоняет КОГО?>
Все фичи, которые были введены в стандарт после 83 года появились сначало где-то в другом месте. Мне пока не известны фичи, которые появились первыми и были бы достаточно завлекательными. В верификацию мало кто лазит пока.
[12:00:01] <ada_ru> (I_vlxy_I) Кого и по каким пунктам?
[12:00:26] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Все фичи, которые бы…>
Контракты в Аде раньше появились например
[12:00:37] <ada_ru> (I_vlxy_I) Модули/пакеты тоже
[12:00:53] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Кого и по каким пунк…>
Я абсолютно не хочу заниматься сравнениями языков. Мне это не интересно. См. выше моё мнение "язык - программист". Я говорю, почему не хотят, по моему опыту.
[12:00:58] <ada_ru> (I_vlxy_I) В плюсах модулей в 20х плюсах не будет :-(
[12:01:37] <ada_ru> (t91x0)  отвечает (Sergei) на <То есть, никакой мот…>
Именно поэтому в соседнем чатике @ctodailychat народишко интересуется, как бы так завернуть web-view с их приложением в оболочку, чтобы не писать ничего под айфон, и чтобы apple это пропустила в стор.

А потом у меня на телефоне половина приложений тормозят, потому что они написаны даже не на яве, а именно что являются сайтами, завёрнутыми в оболочку.
[12:02:55] <ada_ru> (I_vlxy_I)  отвечает (t91x0) на <Именно поэтому в сос…>
Поубивал бы
[12:04:42] <ada_ru> (I_vlxy_I)  отвечает (Sergei) на <Я абсолютно не хочу …>
Ну, я потому и рассказывал про эксперимент и спрашивал в каком типе приложений в этом эксперименте Ада покажет себя хорошо, лучше конкурентов.
[12:15:08] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <Ну, я потому и расск…>
Я не хочу заниматься сравнениям по каким-то, на мой взгляд, не значащим мелочам, потому, что когда я захочу верификацию, я возьму Аду. Для всего остального я возьму другие языки.
Верификация - killer feature, зачем сравнивать дальше.
[12:16:23] <ada_ru> (I_vlxy_I) тогда почему тут ада лучше чем Agda/Coq и им подобные?
[12:21:07] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <тогда почему тут ада…>
Ну, во-первых, я их не знаю. Во вторых, я не знаю людей, которые на них программируют. В третьих, всё равно надо изучит опыт Ады, она вроде была раньше, или нет?
Когда говорят о выборе языка с практической точки зрения всегда решают задачу сортировки частично упорядоченного множества, иначе надо было бы делать комбинаторно много сравнений.
[12:21:35] <ada_ru> (Sergei) Не надо выбирать "лучший" язык. Надо выбирать "достаточный"
[12:24:58] <ada_ru> (Sergei) Например, для тех сайтов, что я делал, мне всегда хватало PHP. Лучший ли он язык для web programming?
[12:25:53] <ada_ru> (Satyri0n)  отвечает (t91x0) на <Так то её подмножест…>
С читабельностью? Она вообще не работает.
[12:27:11] <ada_ru> (t91x0)  отвечает (Satyri0n) на <С читабельностью? Он…>
У кого-то вроде работает. Как leksah ide для хаскеля - у некоторых людей оно иногда даже запускалось.
[12:27:27] <ada_ru> (Satyri0n) Это несерьёзно (
[12:28:45] <ada_ru> (I_vlxy_I)  отвечает (t91x0) на <У кого-то вроде рабо…>
я юзал leksah — работало норм. но давно это было 😊
[12:28:49] <ada_ru> (Satyri0n) Для си/си++ coverity static analizis норм работает
[12:32:30] <ada_ru> (I_vlxy_I) вот если бы был вариант, когда можно было бы сказать: "если вы решили делать новый проект на тему Y, и у вас ограниченный бюджет и полтора землекопа, то берите Аду, не ошибётесь", то было бы уже проще.
[12:33:24] <ada_ru> (I_vlxy_I) для других языков я представляю такой совет. Для Ады я пока не знаю, что тут вместо Y подставить.
[12:37:06] <ada_ru> (Sergei) Потому, @I_vlxy_I , что понятие надёжности надо переосмысливать каждые 5 лет. Если Аду сделали "самым надёжным языком" в своё время, надо понимать, как это её свойство развивается со временем. Мы просто недостаточно хорошо её знаем или недостаточно много на ней программируем, хотя, не исключено, есть и другие проблемы.
Использование Ады может быть в комплексе только с какой-то определённой методикой тестирования-верификации.
[12:38:07] <ada_ru> (Sergei) То есть вопрос "если мы решили сделать надёжный проект, какую методику тестирования-верификации Z лучше взять и даст ли выигрышь Ада при использовании Z"
[12:39:20] <ada_ru> (Sergei) Я, например, краем уха слышал про Z= TLA+. Осталось понять "даст ли выигрышь Ада при использовании TLA+"
[12:40:09] <ada_ru> (I_vlxy_I) ага. например по сравнению с другими ЯП. с тем же растом например.
[12:40:10] <ada_ru> (Sergei) Как пример, @I_vlxy_I ,конкретного ответа на твой вопрос.
[12:40:26] <ada_ru> (Sergei) Также при других Z
[12:46:38] <ada_ru> (Sergei) У Ады есть одно интересное свойство - самодостаточность. Она может работать без уровня ОС. Она не требует никаких функций POSIX, может быть урезана до "ограниченных профилей". Некоторые методики верифицирования систем (программно-аппаратных) на ней должны идти лучше.
[12:47:18] <ada_ru> (I_vlxy_I) без уровня ОС дофига что может работать. Си, Раст, Модула, не говоря о плюсах.
[12:49:23] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <без уровня ОС дофига…>
Ну, а многое что не может. Вряд ли java может. А плюсы много что тянуть. Хотя практически можно ограничивать "профиль" - например, без exception, rtti, mutex, но это неочевидно, когда смотришь на программу совсем.
[12:49:44] <ada_ru> (Sergei) ограничена ли она по mutex, например
[12:50:13] <ada_ru> (Sergei) потому как
int foo()
{
 static int boo = 3;
 ...
}

требует mutex-ов
[12:50:25] <ada_ru> (I_vlxy_I) ну, у ады же то же самое - и исключения и мьютексы и так далее. зависит от того, насколько широко рантайм портировали под бареметал.
[12:51:38] <ada_ru> (I_vlxy_I) жабу в бинарь вроде как тоже компиляли. вон, на симкартах тоже жаба крутится, и ничего 😊
[12:51:51] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <ну, у ады же то же с…>
Я просто надеюсь, что там это сделано по-лучше и кто-то здесь это подтвердит. Я часто слышу "равенскар профиль". Предполагаю, что есть некоторое формальное средство конструирования "профиля". Просто предполагаю.
[12:52:34] <ada_ru> (I_vlxy_I) ревенскар профиль - это вроде как предефайненные профили. например без исключений, динамической памяти, без ООП и проч.
[12:52:56] <ada_ru> (Sergei) Ну он как-то же "дефайнится" или только "предефайнится"?
[12:53:12] <ada_ru> (Sergei) Я могу задать какой-нибудь свой "профиль"?
[12:53:20] <ada_ru> (I_vlxy_I) то что я видел - это предефайн. но я тут нуб.
[12:54:13] <ada_ru> (I_vlxy_I) ну и понятно, что вообще ни разу не каждая программа соберется под этот профиль. также как и не каждая плюсатая соберется вот с этим вот набором ключиков, которые, например, отрубают исключения и рантайм.
[12:54:15] <ada_ru> (Sergei) Потом я краем уха слышал про ASIS и что он позволяет очень круто статически анализировать программу. Есть ли такое в других ЯП мне не известно.
[12:54:51] <ada_ru> (I_vlxy_I) кажется у clang инструментарий сейчас как минимум не хуже.
[12:55:12] <ada_ru> (I_vlxy_I) но ASIS был конечно сильно раньше.
[12:56:52] <ada_ru> (I_vlxy_I) насколько я помню, в стандартной библиотеке Go есть сразу инструментарий для анализа кода - там AST построить по исходнику, семантику узлов глянуть. Всякое такое.
[12:57:53] <ada_ru> (I_vlxy_I) https://golang.org/pkg/go/
[12:59:00] <ada_ru> (t91x0)  отвечает (Sergei) на <Потому, @I_vlxy_I , …>
Переосмысливать там особо нечего, потому что человеческая психика не менялась и еще нескоро изменится. Читать нагромождения кода удобнее, когда он состоит не из иероглифов. Какой-нибудь унылый pl/sql похож как раз на Аду, работают с ним далеко не самые выдающиеся разработчики, но если бы им дали &(*(void *) int), оно б вообще не работало.
[13:00:13] <ada_ru> (I_vlxy_I) я всё же придерживаюсь мнения, что понятие надежности не зависит от того кем написана была прога и на каком языке. надежность — штука эмпирическая и может быть измерена в ходе эксплуатации программы.
[13:01:08] <ada_ru> (t91x0)  отвечает (Sergei) на <потому как
int foo()…>
Зачем здесь мьютекс? Изменяем заранее известный адрес в памяти, возвращаем его содержимое. Никакой синхронизации и потокобезопасности здесь в этом коде нет.
[13:01:32] <ada_ru> (Sergei)  отвечает (t91x0) на <Зачем здесь мьютекс?…>
Присваивание boo=3 делает первый поток
[13:01:52] <ada_ru> (Sergei) а не каждый, который зашёл
[13:02:27] <ada_ru> (Sergei) Подставьте вместо "..." boo++
[13:02:33] <ada_ru> (t91x0)  отвечает (Sergei) на <Присваивание boo=3 д…>
А не загрузчик это делает? Кторый отрабатывает до старта всех остальных возможных потоков.
[13:02:47] <ada_ru> (Sergei) Нет
[13:02:57] <ada_ru> (I_vlxy_I) кто первый зашел, тот и делает, да
[13:03:33] <ada_ru> (Sergei) Потому как некоторые части C++ программы, например constructor-ы static переменных, отрабатывают до "загрузчика"
[13:03:47] <ada_ru> (Sergei) В аде есть elaboration order для решения этой проблемы
[13:04:50] <ada_ru> (Sergei) ... и в этих частях программы мы не знаем, что уже инициализировано, а что нет. Для этого и нужны внутрифункционные static
[13:06:33] <ada_ru> (t91x0) Я пытаюсь представить, как бы я это писал на ассемблере. Статик в данном случае для меня выглядит, как заранее выделенная область в .data длиной четыре байта (или восемь, зависит от битности). Вот мы сделали call, внутри вызванного метода я в эту область записываю значение 3. Где здесь мьютексы?
[13:08:17] <ada_ru> (I_vlxy_I) https://godbolt.org/g/2YAhCP
[13:08:27] <ada_ru> (I_vlxy_I) не вижу тут мьютексов
[13:10:08] <ada_ru> (t91x0) Может быть, часть кода искажена или пропущена, и мы говорим о разных задачах.
[13:11:05] <ada_ru> (t91x0) <прислал фото>
[13:11:46] <ada_ru> (t91x0) "У вас тут точечка не там поставлена, заполняйте декларацию заново" (диалог в ФНС)
[13:12:59] <ada_ru> (I_vlxy_I) ну, это ж на уровне того, как написать в Аде and вместо and then
[13:14:12] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <https://godbolt.org/…>
OK, соптимизировало для int, А поставь вместо int класс.
struct Boo { Boo(int) {} };

Boo foo() {
   static Boo bar = 3;
   return bar;
}
[13:18:16] <ada_ru> (I_vlxy_I) ага. появилось всякое
[13:18:17] <ada_ru> (I_vlxy_I) https://manishearth.github.io/blog/2015/06/26/adventures-in-systems-programming-c-plus-plus-local-statics/
[13:24:19] <ada_ru> (Sergei) Практически, чтобы исключить из C++ mutex, exception или rtti надо переписать всю C++ библиотеку. Использовать по частям, скорей всего, не удастся
[13:25:43] <ada_ru> (Sergei) О dynamic allocation (malloc) я забыл из-за очевидности. mutex, exception, rtti, dynamic memory allocation
[13:25:45] <ada_ru> (I_vlxy_I) А в Аде думаешь получится?
[13:26:01] <ada_ru> (Sergei) Ну, они же ограничивают как-то
[13:26:02] <ada_ru> (I_vlxy_I) то есть что останется от Ады без мьютексов, исключений и rtti
[13:26:21] <ada_ru> (Sergei) pragma очевидно какая-то есть чтобы по фиче блокировать
[13:26:26] <ada_ru> (I_vlxy_I) ну, я подозреваю, что там и получается - ада без стандартной либы и пачки языковых конструкций.
[13:26:37] <ada_ru> (I_vlxy_I) так то на таких плюсах я и под msp430 писал 😊
[13:27:18] <ada_ru> (Sergei) Хм. ОК. Я сравниваю C++ которые я, в этом плане, изучил и Аду, в которой, по логике вещей, я предполагаю, что с этим должно быть всё хорошо
[13:27:25] <ada_ru> (Sergei) но не пробовал
[13:27:32] <ada_ru> (Sergei) глупо, согласен
[13:27:37] <ada_ru> (t91x0) Нет никакого смысла в мьютексе в этой конструкции со static struct. Вот зачем он там? Плоская структура, в ней один int, в него засунули значение.
[13:28:34] <ada_ru> (Sergei)  отвечает (t91x0) на <Нет никакого смысла …>
static переменная, по правилам языка, инициализируется только при первом заходе в функцию
[13:28:41] <ada_ru> (Sergei) такое правило
[13:29:01] <ada_ru> (t91x0) А, и надо отличить первый заход от прочих
[13:29:10] <ada_ru> (t91x0) А они могут совершаться из разных потоков
[13:29:14] <ada_ru> (Sergei) Инициализация глобальных переменных ещё может быть не завершена
[13:29:16] <ada_ru> (t91x0) Тогда понятно
[13:29:18] <ada_ru> (Sergei) да
[13:44:48] <ada_ru> (I_vlxy_I) да, даже для msp430 мьютекс есть. хотя это bare metal
[13:45:15] <ada_ru> (I_vlxy_I) туда ось вообще никак не влезет. 😊 128..512 байт озу 😊
[13:47:10] <ada_ru> (Максим)  отвечает (I_vlxy_I) на <ну, это ж на уровне …>
Совсем ни разу ни одно и тоже. s/and/and then/ это как если заменить + на -, а в примере на картинке плохо продуманный синтаксис языка, где одна опечатка превращает правиль ную программу в другую правильную программу с совершенно другим смыслом. В Аде таких опечаток можно сделать минимум
[13:47:57] <ada_ru> (I_vlxy_I) дык если я по привычке понаписал and вместо and then, то вместо одной правильной другую правильную с другим смыслом получу.
[13:49:20] <ada_ru> (Максим) если ты по привычке понаписал + вместо - то тоже. тут ничего не сделаешь. Там где можно было что-то сделать, в аде сделали
[13:49:52] <ada_ru> (I_vlxy_I) ну, с этой точки зрения + и - это также как и ; и ,
[13:50:00] <ada_ru> (I_vlxy_I) расстояние ровно то же самое
[13:51:19] <ada_ru> (t91x0) Разработчик обычно:
а) не выспался
б) работать не хочет, надоело
в) задача ему не ясна
г) платят мало
д) в глазах у него плывёт

Поэтому желательно иметь поменьше столь тонких отличий.
[13:51:26] <ada_ru> (Максим) я так не считаю. это совершенно разные смысловые конструкции
[13:57:02] <ada_ru> (I_vlxy_I) это всё фигня на самом деле. а вот давеча была ошибка у меня (точнее она недавно нашлась, но жила какое-то время в коде).

В общем, упрощенно, была некая структура:
struct Sensor {
  size_t nDets;
  Det* nsDets;
};

/* код, который ниже, он очень далеко от объявления этой структуры - в другом модуле, другом каталоге и в отдельной тулзе */

auto sensor = get_sensor();
if (sensor->nsDets) {
  auto detection = sensor->nsDets[0];
  ...
}

По голове мне дал только clang в итоге. gcc и msvs всё в этом коду было ок.
[13:58:56] <ada_ru> (I_vlxy_I) во, поправил важную деталь
[13:58:58] <ada_ru> (t91x0) А что тут не так? Я может синтаксис уже забыл. В nsDets может быть мусор?
[13:59:09] <ada_ru> (I_vlxy_I) (важная деталь в структуре Sensor)
[14:00:00] <ada_ru> (Максим) sensor->nsDets всегда TRUE?
[14:00:25] <ada_ru> (t91x0) Например, nDets равен нулю
[14:00:58] <ada_ru> (Максим) но if все равно будет True
[14:01:35] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <if (sensor->nsDets) …>
ДА!
[14:01:46] <ada_ru> (I_vlxy_I) опечатка в одной букве!
[14:02:19] <ada_ru> (I_vlxy_I) вот до чего доводит программирование в стиле Си в С++!
[14:02:28] <ada_ru> (I_vlxy_I) Си нужно закопать, надо писать на с++!
[14:02:36] <ada_ru> (Максим) В Аде так не напишешь, надо было бы писать >0 и была бы ошибка
[14:03:07] <ada_ru> (I_vlxy_I) Ада точно и однозначно надежней чем Си. И С++, если на нем пишут как на Си. А на нем так пишут :-/
[14:03:13] <ada_ru> (t91x0) gcc нужно закопать тоже, если он ворнинга не выдавал
[14:03:44] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <В Аде так не напишеш…>
ну, тут > 0 никак не спасло бы ситуацию. в плюсах то. Указатель точно больше нуля 😊\
[14:04:08] <ada_ru> (I_vlxy_I) он же unsigned 😊
[14:04:29] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <ну, тут > 0 никак не…>
В аде это был бы просто массив со встроенной внутре длиной
[14:04:41] <ada_ru> (I_vlxy_I) дык и в с++ тоже!
[14:05:00] <ada_ru> (I_vlxy_I) но это был сишный атавизм в коде.
[14:05:15] <ada_ru> (t91x0) Ну тогда проверка должна выглядеть как if (arr!=null && arr.length>0){...}
[14:05:34] <ada_ru> (I_vlxy_I) в с++ это был бы std::array
[14:05:36] <ada_ru> (t91x0) Вообще похоже на типичную структуру для какого-то внешнего API
[14:05:46] <ada_ru> (t91x0) Сишную, конечно
[14:06:39] <ada_ru> (I_vlxy_I) ну, там это итог работы с внешним сишным API. и в голове пишущего видимо был в тот момент Си
[14:06:57] <ada_ru> (I_vlxy_I) от другого человека там даже коммент стоит: // better use std::array<>
[14:07:14] <ada_ru> (nitrocerber) "...а на %почти-любой-не-сишный-язык% вы не можете такого написать" (ц).
[14:07:28] <ada_ru> (nitrocerber) всё время всё скатывается к старому доброма аккордеону
[14:07:30] <ada_ru> (Максим) "Указатель точно больше нуля" ??? Омг
[14:07:49] <ada_ru> (t91x0) Я такое могу на c# interop написать, но там вообще всё неприятно
[14:09:37] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <"Указатель точно бол…>
большеравен. но в данном случае - больше.
[14:09:44] <ada_ru> (I_vlxy_I) ибо он гарантированно не ноль
[14:10:50] <ada_ru> (I_vlxy_I) а вот clang на такое выдает ОШИБКУ
[14:10:55] <ada_ru> (I_vlxy_I) <source>:3:11: error: ordered comparison between pointer and zero ('int *' and 'int')

   if (a > 0) {}
[14:11:16] <ada_ru> (I_vlxy_I) так что с тех пор я всё через clang прогоняю. точнее, через zapcc.
[14:11:37] <ada_ru> (Максим) Что, правда хорошо, доктор? Доктор - "Хорошо, что не у меня" 😄
[14:15:01] <ada_ru> (Максим) Я заскриптил сборку кросса GNAT для OpenWRT https://github.com/reznikmm/openwrt-gnat
[14:15:51] <ada_ru> (Максим) но не могу собрать, слишком долго строит, docker hub строил 3 часа и забил, а travis ci забил через 50 минут
[14:15:56] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <это всё фигня на сам…>
Строчка программы, не покрытая тестом, есть баг.
[14:16:17] <ada_ru> (I_vlxy_I) покрытие всего кода юниттестами - смерть проекта!
[14:16:32] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <покрытие всего кода …>
почему
[14:16:47] <ada_ru> (I_vlxy_I) ибо костенеет. на эту тему я статейку кидал.
[14:16:55] <ada_ru> (I_vlxy_I) интеграционные тесты руляд!
[14:17:38] <ada_ru> (Максим) тесты не нужны, клиент пришлет баг репорт, если найдёт!
[14:18:01] <ada_ru> (Sergei) Ого. Как все единодушны.
[14:18:41] <ada_ru> (Sergei) В чём проблема написать юнит тесты, если интерфейсы продуманы и имплементация не многословна?
[14:19:07] <ada_ru> (Sergei) И 90% кода реюзается
[14:19:36] <ada_ru> (Sergei) Тут что-то не так не с юнит тестами
[14:20:08] <ada_ru> (Sergei) Зачем, например, изобретать эту структуру, когда можно взять std::vector
[14:21:02] <ada_ru> (I_vlxy_I) возможно потому. что вектор фигачит в кучу?
[14:21:29] <ada_ru> (Sergei) Ну, его аналог, который фигачит не в кучу.
[14:21:39] <ada_ru> (I_vlxy_I) дык, std::array же
[14:21:47] <ada_ru> (I_vlxy_I) там даже коммент стоит 😊
[14:22:36] <ada_ru> (Sergei) Ну например.
Прелесть STL в том, что юнит тесты, написанные для vector за макс. пол часа переделываются для std::array
[14:23:02] <ada_ru> (Sergei) А если пишешь свой контейнер, можно взять готовый тест сет для чего-то существующего и подправить в 2-3 местах
[14:23:31] <ada_ru> (Sergei) Ладно, заболтался я. До новых встречь в эфире.
[14:57:26] <ada_ru> (Sergei) И снова я.
Вообще, странно, когда мы говорим об Аде и её преимуществах в плане надёжности, а потом, оказывается, находим противников юнит-тестирования.
Потому выскажусь тезисно.
1. Надёжные программы надо писать удобными для тестирования.
2. Удобство для тестирования предполагает возможность полного покрытия функций модуля минимальным количеством минимальных юнит-тестов.
3. Тесты должны максимально реюзаться - путём подставления темплейтов или ещё как-то.
4. Одним из наилучших подходов, минимизирующих количество необходимых юнит-тестов темплейтов (для реюзания) является отделение алгоритмов от структур данных и типов элементов данных, принцип, приведший к разработке STL.
5. STL в Аде не может быть реализована в виду ограничений generic семантики, потому для Ады лучший подход мне не известен.
[15:01:10] <ada_ru> (nitrocerber) А объясните мне убогому и не знающему плюсов, чем темплейты круче дженериков?
[15:01:18] <ada_ru> (nitrocerber) Желательно на пальцах, потому что я тупой.
[15:01:46] <ada_ru> (I_vlxy_I)  цитирует (I_vlxy_I)
https://blog.usejournal.com/lean-testing-or-why-unit-tests-are-worse-than-you-think-b6500139a009
[15:01:47] <ada_ru> (I_vlxy_I)  цитирует (I_vlxy_I)
и вот еще https://blog.ndepend.com/unit-testing-affect-codebases/
[15:01:50] <ada_ru> (I_vlxy_I)  цитирует (I_vlxy_I)
и еще: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.304.1723&rep=rep1&type=pdf
[15:03:16] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <А объясните мне убог…>
ими пользоваться примерно также удобно, как вшитыми темплейтами в Аде (это например массивы) 😊 массив ведь параметризуется и типом и размерностями.

то есть на базе шаблонов создаются новые типы которыми пользоваться также просто если бы они были вшиты в язык.
[15:05:08] <ada_ru> (Sergei)  отвечает (nitrocerber) на <А объясните мне убог…>
Это очень сложно объяснить. Надо либо прибегать к сложной математике, которая описывает теорию темплейтов, либо взять и попытаться реализовать std::vector на Аде. Либо почитать Александра Степанова "почему я отказался от реализации SGL на Аде и переписал на C++", который в курсе и первого и второго. Я, в своё время, пошёл по второму пути и потратил достаточно времени, чтобы убедиться в невозможности. Всякий, кто не верит, может попробовать любой из озвученных методов.
[15:06:07] <ada_ru> (nitrocerber) Ну в аде ж есть вектор. Им можно пользоваться вполне. Чего там не хватает-то?
[15:06:28] <ada_ru> (Sergei) С какого-то момента обнаруживается необходимость рекурсивной подстановки generic-ов, если совсем на пальцах.
[15:06:29] <ada_ru> (nitrocerber) что надо написать .Element (Cur) вместо просто (Сur) ?
[15:07:03] <ada_ru> (nitrocerber) Надо пачетать кароче..
[15:07:38] <ada_ru> (Sergei) Всякий, кто хочет убедиться, может скачать реализацию SGL и попытаться писать на нём программы
[15:08:49] <ada_ru> (I_vlxy_I) а потом попробовать реализовать std::variant 😃 ну или хотя бы std::tuple
[15:09:25] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <а потом попробовать …>
Ну, тогда, когда Степанов начал учить С++ вместо Ады, об этом ещё речь даже не шла
[15:10:06] <ada_ru> (Sergei) Элементарные типы - vector, map, list. И generic алгоритм, который принимает реальный тип контейнера как аргумент template
[15:13:41] <ada_ru> (Sergei) В C++ template вам не надо передавать все производные типы, которые используются для объявления переменных в этом алгоритме. Они вычисляются сами.
[15:14:45] <ada_ru> (Sergei) А их там десяток уже при первой инстанциации и с каждой новой добавляется. Они могут быть одни и те же, но называться должны по-разному
[15:16:18] <ada_ru> (Sergei) И вот вы делаете алгоритм для переписывания vector в map и оказывается, что должны определить 30 вспомогательных типов для константного доступа и столько же для неконстантного.
[15:16:45] <ada_ru> (Sergei) В конце концов, там по-моему, доходит до невозможности задать тип вообще
[15:19:22] <ada_ru> (t91x0) А как IEnumerable в C# работает? Без темплейтов
[15:19:39] <ada_ru> (Sergei) То есть, лучшее что можно сделать, это собрать несколько контейнеров и объявить один модуль - "модуль для написания алгоритмов работы с вектором целых и списком строк unbounded". Если надо вектор целых со списком целых - другой модуль
[15:20:07] <ada_ru> (Sergei)  отвечает (t91x0) на <А как IEnumerable в …>
Это runtime
[15:20:40] <ada_ru> (nitrocerber) Ну так да, разные типы - разное название, разные сущности. Для перелива из контейнера в контейнер разных типов наверное и правда неудобно
[15:21:01] <ada_ru> (nitrocerber) зато всё эксплисит, никаких имплиситиз
[15:21:10] <ada_ru> (nitrocerber) хвилософия ады, едрёнть
[15:24:47] <ada_ru> (t91x0)  отвечает (Sergei) на <Это runtime>
Я наверное С++ не знаю. Но, о чём конкретно говорится в  фразе "30 вспомогательных типов"? Да, linq выполняется в runtime, как цепочка итераторов. Но и какой-нибудь foreach по контейнеру также выполняется в runtime.
[15:26:42] <ada_ru> (Sergei)  отвечает (t91x0) на <Я наверное С++ не зн…>
Чтобы немного обозначить проблему, совсем чуть чуть - посмотрите https://en.cppreference.com/w/cpp/container/vector
раздел "Member types". Всё это, как минимум, надо передать параметрами generic  . Как минимум, есть ещё более внутреннее.
[15:26:55] <ada_ru> (t91x0)  отвечает (Sergei) на <Чтобы немного обозна…>
Смотрю
[15:32:45] <ada_ru> (I_vlxy_I) а у Ады нет умолчательный аргументов для дженериков?
[15:33:51] <ada_ru> (Sergei) А они не помогут.

В C++ можно написать

template<class T>
T::const_iterator begin(const T&)

А в Аде - нельзя
[15:34:25] <ada_ru> (Sergei) Потому как в С++ темплейт парсится, когда T известно, а в аде - когда не известно
[15:34:36] <ada_ru> (Sergei) и T::const_iterator должен быть передан
[15:34:45] <ada_ru> (Sergei) параметром темплейта
[15:35:29] <ada_ru> (I_vlxy_I) ээээ... а в Аде нельзя вывести одно из другого как-нибудь? Хотя, если парсится тогда, когда ничего не известно...
[15:36:14] <ada_ru> (Sergei) До определённой степени что-то вывести можно, но чем больше генерализация тем более оно сваливается в (<>) из которого уже ничего не выведешь
[15:36:47] <ada_ru> (Sergei) В Аде очень ограниченный набор определений типов в generic. Далеко не всё.
[15:37:06] <ada_ru> (Sergei) Вроде так: вот вам 5 правил, а если не хватает - пишите (<>)
[15:37:12] <ada_ru> (Sergei) И их не хватает ...
[15:37:57] <ada_ru> (Sergei) Есть же ещё limited типы, которые требуют своих generic типов
[15:38:25] <ada_ru> (Sergei) ну, в общем, оно усложняется с генерализацией в Аде, а в С++ - нет
[15:38:26] <ada_ru> (I_vlxy_I) лимитед - это же те, у которых конструктор копирования = delete?
[15:39:14] <ada_ru> (Sergei) да, они должны определяться как limited, когда упоминаются как аргумент темплейта
[15:39:34] <ada_ru> (Sergei) В C++ отсутствие конструктора выясняется при инстанциации
[15:39:42] <ada_ru> (Sergei) а в аде должно быть продекларировано
[15:40:25] <ada_ru> (nitrocerber) прям ассасинс крид. "ничто не подазумевается, всё декларируется" хД
[15:40:50] <ada_ru> (nitrocerber) я даже что-то понял. пойду лучше работать)
[15:41:14] <ada_ru> (Sergei)  отвечает (nitrocerber) на <прям ассасинс крид. …>
Скажем по-другому - "ничего не выводится из того что дано, всё что я могу понять сам должно быть продублировано для надёжности явно"
[15:41:35] <ada_ru> (I_vlxy_I) а вот в расте есть и шаблоны и мощные макросы (вроде они ближе к лисповым чем к сишным). раст местами звучит очень вкусно.
[15:41:44] <ada_ru> (I_vlxy_I) но код его читать... ну такоэ...
[15:41:54] <ada_ru> (Sergei)  отвечает (nitrocerber) на <я даже что-то понял.…>
Я тоже пойду :)
[15:42:05] <ada_ru> (I_vlxy_I) и дело не в синтаксисе.
[15:42:36] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <и дело не в синтакси…>
А в чём
[15:43:41] <ada_ru> (I_vlxy_I) ну, в моем случае, что мне сильно мешало - это отсутствие разделения на спецификацию и реализацию модулей. всё свалено в куче - спека, реализация, доки по спеке, доки по реализации. сложно ориентироваться.
[15:43:55] <ada_ru> (I_vlxy_I) и приходится очень много листать
[15:45:02] <ada_ru> (I_vlxy_I) и поиск по исходникам часто мало что дает. почему то. в общем, пока у меня руки не заточились под это дело.
[15:46:39] <ada_ru> (I_vlxy_I) пока эксперимент показал, что в плане чтения исходников ада всего то в 2.5 раза хуже чем с++, а вот раст в 3.5 раз хуже!
[15:46:41] <ada_ru> (I_vlxy_I) 😃
[15:52:02] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <пока эксперимент пок…>
"ада всего то в 2.5 раза хуже чем с++"
Гм
[15:52:17] <ada_ru> (t91x0) #IFDEF хрен
#ELSE
[15:52:27] <ada_ru> (I_vlxy_I) ну, этта.. там была сноска, но её не напечатали 😊
[15:52:58] <ada_ru> (I_vlxy_I) сноска: для С++ программиста с 10+ лет опыта разработки на плюсах. И без опыта в Rust & Ada.
[15:54:29] <ada_ru> (t91x0) Моё последнее общение с С++ было приделыванием к https://github.com/usnistgov/NFIQ2/ сишного интерфейса для работы с этим всем из C#
[15:58:32] <ada_ru> (t91x0) В итоге, собрать это под 64 бита мы так и не смогли, и мне оказалось проще сделать связь на стандартных pipe для input и output, между родительским процессом 64бита и несколькими дочерними 32битными, к которым была прилинкована переделанная библиотека
[16:00:30] <ada_ru> (I_vlxy_I) прямо именно собрать не смогли?
[16:16:26] <ada_ru> (I_vlxy_I) у меня собралось. что я делаю не так?
[16:22:56] <ada_ru> (t91x0) Возможно, это не совсем та версия. Ко мне оно попало не с гитхаба, где мои тогдашние коллеги это взяли - я не знаю. Может, там наоборот нужно было под 32 бита собрать, я не помню точно. У нас был основной поперёк себя широкий десктопный солюшн C# со сборкой на bat-файлах (т.е. просто build в студии давал ошибочные результаты), и планировалось к нему приделать эту библиотеку для оценки качества отпечатков, а битность их не совпадала.  В любом случае, проект не особо взлетел, а российский их филиал вообще закрылся, мы, как контракторы, получили деньги и больше этого не касались.
[16:24:04] <ada_ru> (I_vlxy_I) Винда, батники, шарп... Жуть!
[16:27:16] <ada_ru> (t91x0) Да там было как в известном ютубовском ролике "Внедряй!":

"- Что такое проект? Это жопа! И её надо запихнуть в форточку, при этом мы обычно имеем большую жопу и маленькую форточку."
[16:31:28] <ada_ru> (I_vlxy_I) ну, чем больше разница в размерах, тем больше шансов, что такуж жопу еще никто в эту форточку не запихивал! надо занять пустующую нишу!
[16:34:37] <ada_ru> (I_vlxy_I) time to market!
[16:38:32] <ada_ru> (I_vlxy_I) Ада, плюсы.. Молодёжь вон, уже не умеет с клавиатурой обращаться: http://www.asahi.com/ajw/articles/AJ201803290068.html
[16:39:54] <ada_ru> (I_vlxy_I) ой. надеюсь в Аде пока такого не предвидится: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1108r0.html
[17:09:25] <landgraf> vgodunko сейчас наструячит такого легко =)
[17:20:53] <ada_ru> (I_vlxy_I) хром встроит в стандартную либу Ады? 😊
[17:21:55] <ada_ru> (Sergei) Набрёл на подборку цитат Страуструпа, некоторые из них относятся к тому, что мы здесь обсуждаем, например:

"Tom [Cargil]s suggestion with a further idea: Propsers of new [C++] features should be required to donate a kidney. That would - Jim [Waldo] pointed out - make people think hard before proposing, and even people without any sense would propose at most two extensions."

"Nobody should call themselves a professional if they only knew one language."

"Our civilization depends critically on software, and we have a dangerously low degree of professionalism in the computer fields"

"Anybody who comes to you and says he has a perfect language is either naive or a salesman."

"There are more useful systems developed in languages deemed awful than in languages praised for being beautiful - many more."

"Java isn't platform independent; it is a platform"

"A program that has not been tested does not work."

"C++ is designed to allow you to express ideas, but if you don't have ideas or don't have any clue about how to express them, C++ doesn't offer much help."

"To many managers, getting rid of the arrogant, undisciplined, over-paid, technology-obsessed, improperly-dressed etc. programmers would appear to be a significant added benefit"
[17:28:29] <ada_ru> (nitrocerber) поверхностное знание жопитона в добавок к аде катит за "больше одного языка"?)
[17:29:12] <ada_ru> (Sergei) Я не знаю жо и питона, так что, вопрос к знатокам.
[17:31:00] <ada_ru> (Sergei) В классическом программерском образовании образца 1994-2000 годов нам внушали, что мы должны знать хотя бы один процедурный, один функциональный, один логический и один язык системного программирования.
[17:31:01] <ada_ru> (nitrocerber) моя б воля, я б его тоже не знал
[17:31:29] <ada_ru> (Sergei) Ну, не считаю баз данных и связанных с ними
[17:31:35] <ada_ru> (Sergei) ну и математики
[17:31:47] <ada_ru> (nitrocerber) ну тут вопрос что такое "знать". на лиспе я писал лет так 10 назад курсачи, но я не считаю, что я его знаю)) я знаю, что он есть)
[17:32:20] <ada_ru> (Sergei)  отвечает (nitrocerber) на <ну тут вопрос что та…>
Аналогично. Мои познания в лиспе - скромнее некуда, но я продолжаю интересоваться теорией лямбда функций
[17:32:53] <ada_ru> (Sergei) А вот о знании Пролога я ни разу не пожалел
[17:32:59] <ada_ru> (nitrocerber) Он мне даже нравился.. И пролог тоже, пролог вообще огонь язык. Жаль нифига дельного я так на нём и не написал
[17:33:07] <ada_ru> (nitrocerber) Генератор лабиринта сожрал все ресурсы и умер
[17:33:21] <ada_ru> (Sergei)  отвечает (nitrocerber) на <Генератор лабиринта …>
:)
[17:33:23] <ada_ru> (I_vlxy_I) рефал еще полезно поковырять. для кругозору
[17:33:38] <ada_ru> (nitrocerber) Там надо было эвристики струячить, а я честным перебором бахнул...
[17:33:45] <ada_ru> (nitrocerber) Рефал тоже был
[17:33:53] <ada_ru> (nitrocerber) Цепи маркова на максималках)
[17:34:03] <ada_ru> (I_vlxy_I) кстати, рефал еще хорош тем, что его подмножество (а то и его целиком) можно реализовать самостоятельно на той же Аде 😊
[17:34:21] <ada_ru> (nitrocerber) Та его на чём угодно можно реализовать, мне кажется
[17:34:30] <ada_ru> (I_vlxy_I) угу
[17:34:37] <ada_ru> (I_vlxy_I) вон, даже на обероне реализовали!
[17:34:42] <ada_ru> (I_vlxy_I) подмножество
[17:37:00] <ada_ru> (I_vlxy_I) впрочем, лиспа кусок тоже можно.
[17:37:23] <ada_ru> (I_vlxy_I) благо там из всего парсера только лексер нужен по сути 😊
[17:38:06] <ada_ru> (nitrocerber) как там в лиспе называлась богомерзость для интерпретации на ходу? eval?
[17:38:32] <ada_ru> (I_vlxy_I) возможно. оно и в js вроде бы eval
[17:38:48] <ada_ru> (nitrocerber) подарок инъекционистам)
[17:38:53] <ada_ru> (I_vlxy_I) и в перле
[17:39:04] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <подарок инъекционист…>
норкоманам шоле?!
[17:39:22] <ada_ru> (nitrocerber) ну те, кто решат написать лисп-инъекцию, явно что-то упарывают)))
[17:40:25] <ada_ru> (I_vlxy_I) вирус для emacs'a!
[17:59:59] <ada_ru> (Sergei)  отвечает (I_vlxy_I) на <вирус для emacs'a!>
Давно пора. Пишешь программу C++ а он на Аду переделывает
[18:03:57] <ada_ru> (Sergei) Это как-то, по-видимому, соотносится с http://wiki.c2.com/?PrincipleOfLeastPower
[18:29:00] <ada_ru> (no111u3) касательно оторвать исключения и ртти от stl - последние стандарты именно так и делаются
[19:34:24] <ada_ru> (Максим) Интерпретатор Лиспа испоьзудют как Адский туториал 😊
[19:34:35] <ada_ru> (no111u3) увидел прикольный хэштег нынче в ютубе - #большеада
[19:35:17] <ada_ru> (Максим) http://blog.projectpolymath.org/ada-2012-tutorial_01/
[19:35:35] <ada_ru> (no111u3)  отвечает (Максим) на <Интерпретатор Лиспа …>
каждая скольугодно большая программа на С++ представляет собой незаконченную и кривую версию лисп-интерпретатора
[19:35:36] <ada_ru> (no111u3) (с)
[19:39:19] <ada_ru> (I_vlxy_I)  отвечает (no111u3) на <каждая скольугодно б…>
причем в compile time
[19:39:34] <ada_ru> (no111u3) хорошо если так
[19:39:49] <ada_ru> (no111u3) а то некоторые в рантайм подобное тащут
[20:12:01] <ada_ru> (Oleg) Про Клаву не так все плохо - молодёжь ctrl-c ctrl-v отлично освоила
[20:12:40] <ada_ru> (Oleg) Или как там у маководов вместо контрола опт вроде
[20:17:46] <ada_ru> (I_vlxy_I) это молодежь уже не молодежь. новая молодь компами не пользуется!
[20:18:55] <ada_ru> (Oleg) Ага
[20:19:14] <ada_ru> (Oleg) Одним пальцом тычут
[20:21:25] <ada_ru> (Satyri0n) им лишь бы на php говногод писать
[20:21:36] <ada_ru> (Oleg) :-)
[20:22:34] <ada_ru> (Satyri0n) Напомню "нетленку" https://soundcloud.com/viruzzz-kun/kolkhoznyy-frontend
[20:48:44] <ada_ru> (t91x0) Хой жив!
[20:49:02] <ada_ru> (Satyri0n) Панке Хой!
[20:55:59] <ada_ru> (nitrocerber)  отвечает (Satyri0n) на <им лишь бы на php го…>
поновыучат свои похапэ и я... в ...ы (ц)
[20:56:56] <ada_ru> (Satyri0n) Точно!
[22:17:38] <ada_ru> (s4msg)  отвечает (Oleg) на <Или как там у маково…>
Не, для копипасты там “Cmd”
[22:18:49] <ada_ru> (I_vlxy_I) command copy -- вроде логично
[22:19:01] <ada_ru> (I_vlxy_I) command vставка
[22:35:16] <ada_ru> (nitrocerber) Понакупят своих макбуков...))
[22:40:49] <ada_ru> (I_vlxy_I) чоэто? десктопы тоже хороши!
[22:40:54] <ada_ru> (I_vlxy_I) яблочные 🙂
[22:49:49] <ada_ru> (Satyri0n) Угу, iMac за 300т₽
[22:50:25] <ada_ru> (Satyri0n) Да я за такие деньги зайца в поле лопатой убью (с)
[22:50:42] <ada_ru> (t91x0) Для ады нужно покупать Getac. Для соответствия стилю.
[22:50:45] <ada_ru> (I_vlxy_I) мак мини 2012 года за 37 можно добыть. с i7 в 4 ядра. 16 гигами ОЗУ и немалым диском
[22:51:13] <ada_ru> (Satyri0n) Это ещё не топовая модель. Топовая за 600
[22:51:40] <ada_ru> (t91x0) Ну getac примерно столько же стоит.
[22:51:41] <ada_ru> (Satyri0n) Мак мини тормаз
[22:52:18] <ada_ru> (Satyri0n) За 37 можно нормальный комп взять
[22:52:46] <ada_ru> (Satyri0n) Полноценный
[22:52:48] <ada_ru> (I_vlxy_I) мак мини 2012 года - нет. современные - да
[22:52:50] <ada_ru> (t91x0) Одно лишь 32 гб ОЗУ обойдётся в 21 т.р.
[22:53:13] <ada_ru> (I_vlxy_I) на у тут все вместе с 16 гигами озу в 37 🙂
[22:54:17] <ada_ru> (I_vlxy_I) с SSD в 512 + 1 Тб HDD
[22:54:19] <ada_ru> (I_vlxy_I) и норм!
[22:55:49] <ada_ru> (I_vlxy_I) чота десятка как-то чужеродно тут смотрится: https://www.srv-trade.ru/upload/iblock/48c/9.jpg
[22:56:19] <ada_ru> (I_vlxy_I) они б там еще барузер с веселой фермой запустили
[22:56:40] <ada_ru> (t91x0) А как вам марка сама?
[22:56:45] <ada_ru> (I_vlxy_I) хез. надо щупать.
[22:57:14] <ada_ru> (I_vlxy_I) но вообще, это может быть и тема даже вот для наших командировок. когда в поля
[22:57:37] <ada_ru> (t91x0) С таким понтоваться хорошо. Это уж точно не мак, который есть у каждой второй колумнистки (любого пола).
[22:57:39] <ada_ru> (I_vlxy_I) когда вокруг грязища, говнище, техника, а надо прошивку лить и иногда отлаживать
[22:57:46] <ada_ru> (Satyri0n) Линукс быстрее работает на даже маковском железе, а значит оно не нужно. За меньшие деньги по производительности можно на какой-нибудь hp поставить тот же Линукс и будет работать также
[22:58:19] <ada_ru> (I_vlxy_I) кстати, а что у этого ноута с вентиляцией? он насколько гермитичен? тонны пыли внутрь не проникнут?
[22:59:20] <ada_ru> (Satyri0n) У гламурного Маковского ноута обоих полов всё нормально с пылью, всё проникает
[22:59:32] <ada_ru> (t91x0)  отвечает (I_vlxy_I) на <кстати, а что у этог…>
Он самый защищённый из возможных
[22:59:38] <ada_ru> (I_vlxy_I) ну, гетаки вроде разные бывают
[23:00:19] <ada_ru> (t91x0) Может быть новый отечественный Эльбрус его обгоняет, недавно они сделали танкобук новый.
[23:00:34] <ada_ru> (Satyri0n) У девчонок колготки плавятся, когда они на МакБук про компилируют у себя на коленях
[23:00:45] <ada_ru> (I_vlxy_I) вроде там заказ разместили на новый защищенный ноут. слышал новость недавно
[23:01:13] <ada_ru> (I_vlxy_I)  отвечает (Satyri0n) на <У девчонок колготки …>
это небось 15" макбуки -- я помню обжигался о него
[23:01:20] <ada_ru> (I_vlxy_I) у 13" все более вменяемо
[23:01:27] <ada_ru> (I_vlxy_I) но он и послабее конечно
[23:03:04] <ada_ru> (Satyri0n) На 13" видно только одну консольку. Так жить нельзя
[23:03:57] <ada_ru> (Satyri0n) У меня на рабочей консоли второй монитор временно вышел из строя. Так я так страдаю на одном мониторе!
[23:05:14] <ada_ru> (I_vlxy_I) тмух решает!
[23:06:02] <ada_ru> (Satyri0n) Нет(
[23:06:19] <ada_ru> (I_vlxy_I) чойто? я пользуюсь на маке - мне норм
[23:06:25] <ada_ru> (I_vlxy_I) тмуха + вим
[23:06:36] <ada_ru> (Satyri0n) Бог для управления вселенной не использует тмух
[23:06:49] <ada_ru> (Satyri0n) И скрин, тоже
[23:07:32] <ada_ru> (I_vlxy_I) да он походу ваще забил 🙂
[23:07:55] <ada_ru> (I_vlxy_I) fixed
[23:08:50] <ada_ru> (I_vlxy_I) https://www.youtube.com/watch?v=d1acYBrBzqg
[23:08:56] <ada_ru> (I_vlxy_I) прям хватай, беги!
[23:09:51] <ada_ru> (Satyri0n) Тициан, походу, тоже не по fixed price действовал
[23:13:24] <ada_ru> (a) Давно вы либреофисы на генту не собирали ;)
[23:13:26] <ada_ru> (a)  цитирует (Максим)
но не могу собрать, слишком долго строит, docker hub строил 3 часа и забил, а travis ci забил через 50 минут
[23:13:50] <ada_ru> (Satyri0n) Gentoo не нужен
[23:13:54] <ada_ru> (a) Я не так процитировал
[23:14:03] <ada_ru> (Satyri0n) Глючное поделие
[23:14:28] <ada_ru> (a) Надо чаще чатом пользоваться
[23:15:12] <ada_ru> (a) Не глючнее остальных линухов
[23:15:27] <ada_ru> (Satyri0n) Угу...
- а как быть с эти?
- с эти? Чаще мыть надо
[23:16:24] <ada_ru> (a) А при неограниченном времени на пересборку становится очень уютным
[23:16:25] <ada_ru> (Satyri0n) Я давно установил что глючнее и в горе (на серверах) и в радости (на рабочем столе)
[23:17:25] <ada_ru> (Satyri0n) Вы сколько тысяч серверов и рабочих станций под генту админили, позвольте узнать?
[23:17:35] <ada_ru> (Максим)  отвечает (a) на <Давно вы либреофисы …>
Не так уж и давно, месяца 3 назад. :)
[23:18:33] <ada_ru> (Максим) Генту прекрасен!
[23:18:52] <ada_ru> (a) Локалхост года с 2005 го примерно
[23:19:20] <ada_ru> (a) С перерывами
[23:19:31] <ada_ru> (Satyri0n) Локалхост против тысяч машин ничто
[23:19:58] <ada_ru> (t91x0)  отвечает (Satyri0n) на <Угу...
- а как быть …>
Только сегодня пересматривал
[23:20:07] <ada_ru> (Максим) Я когда вижу все дебильные зависимости, которые тянут другие дистры ещё больше его ценю
[23:20:13] <ada_ru> (a) Мне как то ровно на тысячи мух. У меня моя лошадка.
[23:21:09] <ada_ru> (Satyri0n) Когда научитесь оперировать тысячами, тогда поговорим?
Как говорится, давайте обсуждать вкус устриц с теми, кто их ел
[23:22:09] <ada_ru> (Максим) Жалко в нём поддержку ады совсем забросили...
[23:22:14] <ada_ru> (t91x0)  отвечает (Satyri0n) на <Когда научитесь опер…>
Ну это разные же вещи, в самом деле
[23:22:34] <ada_ru> (t91x0) Для тысяч есть убунта
[23:23:32] <ada_ru> (Satyri0n) Я это состояние в 17 прошел
[23:24:14] <ada_ru> (a) Я знаю лично людей которые админят не тысячи но наверное сотни
[23:24:23] <ada_ru> (a) На генту
[23:24:43] <ada_ru> (a) Все зависит от рук
[23:24:53] <ada_ru> (Satyri0n) Давайте почитаем их журналы для начала, TCO
[23:25:03] <ada_ru> (a) И головы
[23:25:26] <ada_ru> (Satyri0n) А потом сравним с TCO на других сборках линупса
[23:26:58] <ada_ru> (a) И не нужно приравнивать все компьютеры к серверам. Ибо задач много и они разные
[23:27:36] <ada_ru> (a) Не все сводится к сайтам и веб
[23:27:56] <ada_ru> (Satyri0n) Да в генту даже флешку люкслванную сразу не открыть. О чём говорить после этого вообще?
[23:28:09] <ada_ru> (Satyri0n) "На десктопе"
[23:29:14] <ada_ru> (a) Я не заморачивался таким. Но кому надо сделали себе все автоматически
[23:29:29] <ada_ru> (Satyri0n) Не работает из коробки
[23:29:41] <ada_ru> (a) Мне от себя люксовать нечего
[23:30:32] <ada_ru> (Satyri0n) Да тебе и компьютер тогда не нужен. Сам если что на бумажке подсчитаешь
[23:31:03] <ada_ru> (a) В этом мире вообще многое из коробки не работает.
[23:31:24] <ada_ru> (Satyri0n) У вас-то точно, из коробки ничего почти не работает
[23:31:33] <ada_ru> (a) И без бумажки посчитаю вообще то
[23:32:45] <ada_ru> (a) В других дистрах тоже не все из коробки
[23:35:15] <ada_ru> (Satyri0n) У гентушников болезнь фанатичная. Ничего кроме генту не знают. Когда знаешь все сборки, используешь подходящий где нужно. Даже генту. Но фанатикам этого не понять. Они с красноглазым упорством пропихивают свой кактус и жестоко страдают от него колючек, но пропихивают дальше.
[23:35:48] <ada_ru> (a) Генту тем и хороша, делаешь как тебе надо и где надо.
[23:36:44] <ada_ru> (t91x0) Господа, в соседнем чате по хаскелю есть мой знакомый гентушник, собственник конторы в Ирландии. Так что...
[23:37:04] <ada_ru> (Satyri0n) И что?)
[23:37:08] <ada_ru> (t91x0) Для себя-то можно пользоваться
[23:37:23] <ada_ru> (t91x0) И будет хорошо.
[23:37:47] <ada_ru> (t91x0) Gentoo hardened например
[23:37:53] <ada_ru> (Satyri0n) Для себя можно и досом пользоваться. C&C отлично шла на пне сотом
[23:38:28] <ada_ru> (t91x0) Давайте ещё новелл нетваре вспомним
[23:38:39] <ada_ru> (t91x0) И кирандию
[23:38:50] <ada_ru> (Satyri0n) Тут не меньше собственников контор. Уж даже поболее, чем "на соседнем канале")
[23:39:05] <ada_ru> (t91x0) Кто, например?
[23:39:43] <ada_ru> (a) Мне то кажется фанатик не я. Я ее один раз настроил и та сборка уже десяток лет работает с периодическим обновлением. Основа с тех лет ещё. Очень консервативно удобно и лампово. И нафиг не надо вайленды системды и прочее дыхание прогресса.
[23:40:04] <ada_ru> (Satyri0n) На других показывать не буду без их позволения. Но я например, председатель совета директоров.
[23:40:32] <ada_ru> (t91x0) Гм, а вакансии у вас есть?
[23:40:52] <ada_ru> (Satyri0n) Вакансии есть
[23:41:14] <ada_ru> (t91x0) (не вакансии гентушников, а вообще)
[23:41:54] <ada_ru> (Satyri0n) Да как раз вакансий гентушников нет за неимением оной на рабочих машинах и серверах
[23:42:19] <ada_ru> (a) А по тону разговора как будто юнец несдержанный, при слове генту,  как фас сказали.
[23:42:24] <ada_ru> (t91x0) А чем занимается ваша организация? Какие клиенты?
[23:42:45] <ada_ru> (Satyri0n) ОКВЭД 62.0
[23:43:12] <ada_ru> (Satyri0n) Клиенты в основном из РФ, остальные заграничные
[23:44:37] <ada_ru> (t91x0) Это как-то очень уж общо. "Софт пишем". Я тоже пишу.
[23:45:12] <ada_ru> (Satyri0n) Да просто несколько бесит то, что 20 лет назад многокоатно опробовали и отринули, а теперь люди без соответствующего опыта, как говорится по-старославянски, форсят за истину в последней инстанции
[23:45:28] <ada_ru> (t91x0) Я имел в виду уклон. Какой-то классический аутсорц, или нечто специализированное?
[23:45:56] <ada_ru> (Satyri0n) По всякому. И то и это, пожалуй
[23:46:45] <ada_ru> (a) Я не помню, чтоб я здесь писал, что для серверов генту мастхэв
[23:46:46] <ada_ru> (Satyri0n) "мы можем всё"
[23:47:09] <ada_ru> (a) Я сказал что она хороша и удобна
[23:47:38] <ada_ru> (Satyri0n) Только TCO, только реальное обсуждение
[23:47:40] <ada_ru> (a) Слакварь например тоже хороша и удобна
[23:48:17] <ada_ru> (t91x0) Просто, если вы находитесь в чате по аде - не самому распространенному языку в наше время, можно предположить, что на ней вы тоже ведете заказную разработку.
[23:48:20] <ada_ru> (Satyri0n) Хорошо, хорошо, оставайтесь с генту и слакой) спорить не буду. Каждому своё
[23:48:25] <ada_ru> (a) Редхат хорош, но дорог
[23:48:41] <ada_ru> (Satyri0n) Да, есть и на ней проекты
[23:49:07] <ada_ru> (Satyri0n) Зачем сразу РХ? А как же центос?
[23:50:04] <ada_ru> (t91x0) Так может, вы напишете, для чего в настоящее время применяют аду? Вчера беседа была, сегодня продолжилась, и никто доводов "за" не привёл.
[23:51:16] <ada_ru> (Satyri0n) Да эта "беседа" постоянно "появления".
Повторю ещё раз: конкретно у нас она используется там, где нужна высокая надёжность и где есть соответствующее финансирование
[23:52:10] <ada_ru> (t91x0) Такое впечатление, что у вас там то ли военка, то ли вы просто говорить не хотите. Ну хорошо.
[23:52:20] <ada_ru> (a) Я его не видел. Мы с вами с разных позиций говорим. Я говорю о удобстве для грамотного пользователя, а вы о удобстве для сисадмина     Гугла. Это разные категории и должны быть разные молотки.
[23:53:30] <ada_ru> (t91x0) Лично мне была бы интересна работа, связанная с чем-то высоко надёжным.
[23:54:41] <ada_ru> (t91x0) Но такие требования встречаются редко, и даже соответствующего опыта и стиля разработки взять особо негде.
[23:54:43] <ada_ru> (a) Для пользователя и разработчика, программиста думаю что удобна конечная система, а не возможность обновить тысячу машин в полчаса
[23:54:49] <ada_ru> (Satyri0n) Даже с т.з. пользователя всё очень неоднозначно. Пока идёт emerge того же oo, с ним работать невозможно, от него куски отваливаются, пока все зависимости подключаются/отключаются в процессе обновления
[23:55:08] <ada_ru> (a) Что?
[23:55:44] <ada_ru> (a) Вы чего то перепутали
[23:55:48] <ada_ru> (Satyri0n) oo := libreoffice
[23:56:18] <ada_ru> (a) Пока пакет не собран все работает
[23:57:09] <ada_ru> (Satyri0n) А библиотеки, которые ещё не загружены им, но находятся в процессе обновления?
[23:58:01] <ada_ru> (Satyri0n) Она уже обновлена, называется по другому, ОО за ней полез, а её уже нет
[23:58:33] <ada_ru> (t91x0) Тут бы снапшоты пригодилис.
[23:58:55] <ada_ru> (a) Вообще то все есть
[23:59:08] <ada_ru> (t91x0) Чтобы изменений не было видно, пока не соберётся всё.
[23:59:30] <ada_ru> (Satyri0n) Хорошо, хорошо, разоряйте гентой своих работодателей)