[07:34:14] <ada_ru> (vasil_sd)  отвечает (Максим) на <https://heisenbugltd…>
Прикольно. Правда там пока только один потоковый алгоритм.
Но классно, что проектов на Ada/Spark всё больше :)
Скоро Ада станет популярной и молодежной :)
[16:36:52] <ada_ru> (Максим) О чём тут воодще речь? Чем снова Ада не удалась? https://www.reddit.com/r/ada/comments/f93n94/avoiding_ada_for_hobby_projects_because_unable_to/
[16:40:03] <ada_ru> (I_vlxy_I) Мокинг вызовов в юниттестах
[16:40:14] <ada_ru> (I_vlxy_I) Мокинг всякого api
[16:40:23] <ada_ru> (Максим) что это?
[16:40:45] <ada_ru> (Максим) нет такого слова в русском языке :)
[16:40:55] <ada_ru> (vasil_sd) Видимо им не хватает функционала gmock...
[16:41:20] <ada_ru> (I_vlxy_I) Ну вот у тебя есть функция которая дёргает API, скажем какого-нибудь SDL, а тебе надо это протестировать без SDL
[16:42:07] <ada_ru> (I_vlxy_I) Для этого ты делаешь мок этого SDL, то есть в точности такой же API по интерфейсам, но с другой (простой) реализацией
[16:42:38] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну вот у тебя есть ф…>
Ну, Ада тут никак не мешает. Если нормально делать юнит-тесты. Под gmock тоже код нужно специальным параметрическим образом писать
[16:42:41] <ada_ru> (I_vlxy_I) Тот же gmock позволяет сделать мокинг простым и немногострочным
[16:43:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Тот же gmock позволя…>
В Аде тоже можно просто сделать. Правда будет немного многострочнее ;)
[16:43:58] <ada_ru> (I_vlxy_I) Каждая лишняя строчка в тесте уменьшает вероятность того, что тест будет написан вообще :-)
[16:44:01] <ada_ru> (vasil_sd) Принципы-то в Аде не поменяются. Без макросов немного побольше писать придётся, но не критично
[16:45:03] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Каждая лишняя строчк…>
Это зависит от дисциплины. Даже в питоне doc-test'ы (казалось бы куда уж проще) и то дааалеко не все используют. И pytest тоже
[16:45:41] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это зависит от дисци…>
Я бы не надеялся на дисциплину.
[16:45:56] <ada_ru> (I_vlxy_I) А вот на лень полагаться можно вполне :-)
[16:46:33] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А вот на лень полага…>
Для ленивых можно сделать прекоммит-хуки на прогон юнит-тестов и оценку покрытия :)
[16:46:51] <ada_ru> (vasil_sd) Либо это на CI повесить
[16:47:13] <ada_ru> (vasil_sd) А ещё полезно прекоммит-хуки на покрытие доками....
[16:47:20] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Для ленивых можно сд…>
Это не работает. Надо сделать разработчикам удобно, а не вводить ограничения и закручивать гайки.
[16:47:58] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Это не работает. Над…>
Я видел где это работало и работало хорошо, вплоть до оценки выхлопа доксигена на прекоммитных проверках
[16:48:14] <ada_ru> (nitrocerber) картинка https://www.ada-ru.org/files/bot/2020-02-25-x41.jpg
[16:49:32] <ada_ru> (nitrocerber) и вообще каким раком язык к тулингу. жаловались бы на тулинг тогда, чтоли
[16:49:44] <ada_ru> (I_vlxy_I) Доксиген- говно. Его доки читаются хуже хедеров. До почти любой выхлоп автодокументации - говно.

И из за них код замусоривается объемными, бессмысленными и устаревшими комментами
[16:49:48] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <>
Ну как и везде, это же нужно тулы изучать.
Я вот до сих пор нормально не взялся помотреть gnattest :)
[16:49:57] <ada_ru> (nitrocerber) и не берись))
[16:50:01] <ada_ru> (nitrocerber) а то я повешусь
[16:50:22] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <а то я повешусь>
Теперь я знаю к кому обращаться, если что? :)
[16:50:44] <ada_ru> (nitrocerber) Ненене, это Макс энтузиаст, а я "с детства ненавижу музыку")
[16:50:58] <ada_ru> (nitrocerber) хотя по мелочи мож чо и подскажу)
[16:51:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Доксиген- говно. Его…>
Его просто нужно уметь готовить :)
[16:51:18] <ada_ru> (nitrocerber) вон, скоро лалтест на гитхабе будет) иожно будет ишью струячить
[16:52:06] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Его просто нужно уме…>
Не. Всегда херня. Вообще всегда. Не люблю доки. Люблю нормальные хедеры.
[16:53:12] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Не. Всегда херня. Во…>
Ага. Весь Яднекс такого же подхода придерживается.
Старые разработчики ушли, проект приходится хоронить, и начинают писать новые аналог.....
[16:53:39] <ada_ru> (nitrocerber) зато все при деле)
[16:54:11] <ada_ru> (nitrocerber) яндекс.транспорт в мае, случаем, не по этой причине закрывается и переоткрывается в картах?)
[16:54:20] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <зато все при деле)>
Ага, нацики так людей ломали - одни откапывали яму, другие шли за ними и закапывали и так по кругу....
[16:54:40] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ага. Весь Яднекс так…>
Ну, ты ж таки не путай. Автогенереная дока - говно и не нужно. Но нужны руками писанные доки про архитектуру и основные концепции в проекте.
[16:54:47] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <яндекс.транспорт в м…>
Тут не знаю. Не инетерсовался
[16:55:07] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <яндекс.транспорт в м…>
Давно хотели сократить число приложений
[16:55:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну, ты ж таки не пут…>
Так доксиген позволяет и нормальную доку писать, сразу проставляя ссылки на код.
[16:55:40] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Так доксиген позволя…>
Только код такими комментами засирать не надо.
[16:55:46] <ada_ru> (nitrocerber)  отвечает (I_vlxy_I) на <Давно хотели сократи…>
ну хазэ, карты дико перегруженные, мне стандалонный транспорт больше нравился
[16:55:58] <ada_ru> (nitrocerber) но наверное дешевле поддерживать 1 вместо двух
[16:56:20] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <ну хазэ, карты дико …>
Скорее всего A/B тестирование показало, что ты не нужен :-)
[16:56:45] <ada_ru> (nitrocerber) в этом-то я даже и не сомневался никогда..)
[16:57:15] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Только код такими ко…>
Там можно отдельно писать странички к проекту с гиперссылками, plantuml и dot диаграммами и пр. И линковать к исходникам и пр. И получается очень классно, когда ты от диздоков можешь прямо до конкретных функций/классов спуститься...
[16:58:04] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Там можно отдельно п…>
Но это вроде и Вики многие позволяют.
[16:58:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Но это вроде и Вики …>
Вики тебе не смогут код нормально с гипертекст с иерархией
[16:59:11] <ada_ru> (vasil_sd) В Яндексе в Arcanum пытаются что-то подобное сделать. Вроде неплохо прогресс шёл
[16:59:48] <ada_ru> (vasil_sd) Когда у тебя и доки и код всё слинковано в большую гипертекстовую сеть
[17:00:13] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Когда у тебя и доки …>
Причём не в статический html. И это хорошо.
[17:00:31] <ada_ru> (I_vlxy_I) Всякие гитхабы тоже что-то такое могут
[17:00:53] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Причём не в статичес…>
Это уже вкусовщина. Лично я ничего против нормальной статики не имею
[17:01:43] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Всякие гитхабы тоже …>
Навигация по коду? Щёлкнул по вызываемой функции и перешёл к её определению?
Пока такого не видел
[17:02:05] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Навигация по коду? Щ…>
В тестовом режиме что-то было
[17:02:33] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <В тестовом режиме чт…>
Может быть и было, но как-то мимо меня прошло. Посмотрю внимательнее
[17:02:49] <subjrs> ctags?
[17:03:18] <ada_ru> (vasil_sd)  отвечает на <(subjrs)
ctags?>
Это если в редакторе. А если нужен сайт с доками по проекту?
[17:04:59] <ada_ru> (I_vlxy_I) Ещё есть woboq
[17:05:58] <ada_ru> (I_vlxy_I) Ну и sourcegraph
[17:07:03] <ada_ru> (vasil_sd) Да я и не сомневаюсь, что сейчас много чего уже. Речь изначально шла про то, что на одних хедерах, как замене сопровождающей документации далеко не уедешь.
[17:16:59] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да я и не сомневаюсь…>
Но я и не видел ничего отвратительнее, чем код жирно обмазанный комментами для дохугена
[17:18:02] <ada_ru> (nitrocerber) код без каких либо каментов вообще)
[17:18:23] <ada_ru> (nitrocerber) отделить зёрна от плевел дорого, но можно. но вот если зёрен нет...
[17:19:17] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <код без каких либо к…>
Такой код часто читается быстрее, проще и не вводит в заблуждение. В отличие от кода с жирными дохуген комментами
[17:19:36] <ada_ru> (nitrocerber) ох не видал ты кода дедушки винсента..
[17:19:38] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Но я и не видел ниче…>
Просто везде нужен разумный подход и нужно уметь пользоваться инструментами.
[17:19:57] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <ох не видал ты кода …>
Ы?
[17:20:14] <ada_ru> (I_vlxy_I) Если код плох, то никакие комменты ему не помогут
[17:21:01] <ada_ru> (nitrocerber) ну когда хотя бы обозначено, ЧТО человек пытался сделать, можно как-то пытаться разрыть, раскрутить, ценой седины в висках и вот этого всего
[17:21:22] <ada_ru> (nitrocerber) Ну да это всё посттравматическое от декадного легаси. Не суть
[17:21:28] <ada_ru> (I_vlxy_I) И вообще, чем богаче язык и высокоуровней, тем меньше нужно писать комменты к коду.
[17:22:26] <ada_ru> (I_vlxy_I) Когда выразительности языка перестаёт хватать для выполнения задачи - тогда появляются всякие паттерны проектирования и комменты в коде.
[17:22:43] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <И вообще, чем богаче…>
Да, но тем лучше должны быть спеки и диздоки :) Ибо лябду от лямбды от лябды в монаде и пр - тяжело сходу понимать :)
[17:23:10] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да, но тем лучше дол…>
Это значит, что этот язык - низкоуровневый
[17:23:43] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Это значит, что этот…>
Я могу написать на хаскеле 10 строк так, что без комментов можно очень долго это понимать
[17:26:02] <ada_ru> (vasil_sd) Есть одна фундаментальная вещь - свойтсва софта не композиционны - то есть свойства композиции двух функций не являются композицией свойств этих функций. И чем больше семантики можно запихнуть в терм языка, тем нелинейнее и неочевиднее может быть свойства композиции термов.
[17:26:57] <ada_ru> (vasil_sd) Как яркий пример - J или APL.  Одна строка может заставить надолго задуматься...
[17:27:13] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Я могу написать на х…>
Ну да. Кто сказал, что Хаскель для любой задачи более высокоуровневый чем Си?
[17:27:56] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Ну да. Кто сказал, ч…>
Ок. Тогда нужно снача договориться о термине "высокоуровневой"
[17:28:17] <ada_ru> (I_vlxy_I) Язык У является низкоуровневым для задачи Х если на этом языке нельзя написать понятный без комментов код для решения этой задачи.
[17:28:28] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Язык У является низк…>
:))))
[17:28:41] <ada_ru> (vasil_sd) Это несерьёзно :)
[17:28:47] <ada_ru> (I_vlxy_I) Низость, высокость - это не степень приближенности к железу :-)
[17:29:23] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Низость, высокость -…>
Я думал это семантическая ёмкость конструкций языка для выражения доменной проблематики в коде
[17:29:51] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <:))))>
Если что, я до твоего коммента это писал :-) это давно устаканившееся мое понимание высоко-низко уровневости
[17:30:27] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Если что, я до твоег…>
Там слишком много неопределяемых терминов, которые слишком субъективны
[17:30:43] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Я думал это семантич…>
А одно в другое перетекает, если подумать :-)

Я просто указал на то, что непосредственно наблюдает пользователь
[17:31:10] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А одно в другое пере…>
Моё определение можно довести до измеримого, а вот твоё - намного сложнее
[17:31:49] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Моё определение можн…>
Дык программирование то по факту штука субъективная. И очень сильно зависящая как от читателя, так и от писателя
[17:32:13] <ada_ru> (I_vlxy_I) И от наличия общего бэкграунда у них
[17:32:27] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Дык программирование…>
Это смотря как подходить к задачам.
[17:32:53] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это смотря как подхо…>
Как угодно. :-)
[17:33:33] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Дык программирование…>
И да, тут нужно опять тогда договариваться о терминологии. Например "программирование" - что это?
[17:38:31] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <И да, тут нужно опят…>
Процесс создания программ? :-D
[17:38:42] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Процесс создания про…>
:))))
[17:40:41] <ada_ru> (vasil_sd) В общем я сторонник нормального сопровождения проектов и доками и даже картинками, вне зависимости от низости языка :)

Понятно, что люди ленивы, но просто кодячить никак не сопровождая свои поделки - это, на мой взгляд, просто непрофессионально :)
[17:40:43] <ada_ru> (Максим)  отвечает (I_vlxy_I) на <И вообще, чем богаче…>
Поддерживаю! Комментариии, (как и тесты) - для слабаков!
[17:41:37] <ada_ru> (vasil_sd)  отвечает (Максим) на <Поддерживаю! Коммент…>
Ну тогда нужно и с Ады на BF переходить, ибо Ада слишком самодокументируемая :)
[17:42:07] <ada_ru> (vasil_sd) Вот BF - для нормальных пацанов. Только ISK только хардкор :)
[17:42:18] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну тогда нужно и с А…>
Да!
[17:42:24] <ada_ru> (nitrocerber) кароч самый высокоуровневый язык имеет один единственный оператор
[17:42:38] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <кароч самый высокоур…>
Невозможно :(
[17:42:42] <ada_ru> (nitrocerber) "работай_сука". с опциональным параметром "блед!"
[17:43:09] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <"работай_сука". с оп…>
Это уже семейство операторов :) Если трактовать строго
[17:43:12] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <"работай_сука". с оп…>
Только этот язык доступен только владельцам конторы (не директорам!)
[17:43:17] <ada_ru> (nitrocerber) Если высокоуровневость брать по товарищу Веселовскому 😊
[17:43:27] <ada_ru> (Максим) > Make the code as clear as possible to reduce the need for comments.
[17:43:39] <ada_ru> (Максим) Как пишут в моей любимой книге по Аде
[17:43:44] <ada_ru> (Максим) https://en.wikibooks.org/wiki/Ada_Style_Guide/Readability#Comments
[17:44:01] <ada_ru> (vasil_sd)  отвечает (Максим) на <> Make the code as c…>
Да и это одна из вещей, что мне нравится в дизайне Ады
[17:44:40] <ada_ru> (vasil_sd)  отвечает (vasil_sd) на <Да и это одна из вещ…>
Там есть шанс нормально писать самодокументируемый код, который не ломает глазки
[17:44:54] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да и это одна из вещ…>
Дык! Комменты и доки не нужны для идеального кода!

И все должны стремиться к идеалу
[17:45:25] <ada_ru> (I_vlxy_I) Если код обильно покрыт доками и комментами - значит он, очевидно, плох и воняет!
[17:45:47] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Если код обильно пок…>
:)
[17:46:19] <ada_ru> (I_vlxy_I) А комменты - это как газетка которой попытались прикрыть воняющую и растекающуюся кучу
[17:47:49] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А комменты - это как…>
:) У нас видимо существенно разный жизненный опыт по отношению к комментам и докам
[17:49:40] <ada_ru> (nitrocerber) Не, ты прост ещё не привык к троллической сущности одмена этого канала))
[17:50:05] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <Не, ты прост ещё не …>
Да я тоже троллю, если чо :)
[17:50:07] <ada_ru> (anisimkov)  отвечает (I_vlxy_I) на <А комменты - это как…>
И так тоже бывает.
[17:50:41] <ada_ru> (nitrocerber) переименовывайте канал в adatololang
[17:51:03] <ada_ru> (I_vlxy_I) Хороший коммент - редко когда больше одной строчки занимает. В крайнем случае - это будет линк на доку с описанием алгоритма
[17:52:03] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <Хороший коммент - ре…>
Ну примерно так и  есть. Хотя иногда некоторые моменты я расписываю и на несколько строк, чтобы потом по докам не бегать.
[17:53:47] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <переименовывайте кан…>
Канал аццкого троллинга?
[17:55:14] <ada_ru> (vasil_sd) Вот хороший пример идеальных комментов: https://www.anekdot.ru/id/1079928/
[18:17:26] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Вот хороший пример и…>
Идеально!
[21:38:19] <ada_ru> (Максим) Это, конечно, прекрасно, пока пишешь один. Но когда приходит начальник и берётся переделаывать Ада ленгвидж сервер на SPARK, прямо вот по живому, то пердак рвёт ацки, и бумажка не поможет 😕
[21:39:21] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Это, конечно, прекра…>
Вау! РЕАЛЬНО?!
[21:40:19] <ada_ru> (Максим) Шаг первый - избавиться от ссылочных типов!
[21:40:36] <ada_ru> (Максим) ну указателей т.е.
[21:41:26] <ada_ru> (I_vlxy_I) Ыыыыы
[21:41:45] <ada_ru> (I_vlxy_I) Шаг второй - переписать на расте
[21:44:12] <ada_ru> (Максим) я подозреваю, это его первое знакомство с SPARK (и последнее). А нам останется изувеченный код
[21:46:20] <ada_ru> (Максим) Ладно бы это было зачем-то нужно. Но ALS сам по себе ведь ничего не решает. Он стоит на таких столбах инженерного искусства, как libgpr, gnatcoll, libadalang наконец, начал бы с них 😄
[21:46:52] <ada_ru> (geniepro) начинать надо с малого, а там и фундамент перетрясёте ))
[21:47:59] <ada_ru> (I_vlxy_I) rustRustRUST!
[21:50:14] <ada_ru> (Максим) Может это месть, за то, что я его не стал писать на питоне, как предлагалось изначально
[21:50:46] <ada_ru> (I_vlxy_I) Если упарываться, то по полной?
[22:01:30] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <Может это месть, за …>
А я вот уже третий день программирую на cmake.. и даже кодогенерация на нем. И один cmake запускает другой cmake, сгенерировав для него скрипт, и этот, другой cmake, генерирует уже c++ код, который использует сгенерированный c++ код протобафом.
[22:58:01] <ada_ru> (geniepro)  отвечает (I_vlxy_I) на <А я вот уже третий д…>
ты ведь понимаешь, что за такие извращения тебе суждено гореть в аду? о_О
[23:00:19] <ada_ru> (I_vlxy_I)  отвечает (geniepro) на <ты ведь понимаешь, ч…>
*в Аде
[23:06:26] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <А я вот уже третий д…>
Правильно! Чем больше извращений на cmake, плюсах и пр - тем больше людей будут с них уходить и, возможно даже, на Ада :)
Главное, чтобы те, кто это потом поддерживать будут не повесились раньше :)
[23:07:19] <ada_ru> (I_vlxy_I) будто в Аде меньше ада с котогенерацией 🙂
[23:07:41] <ada_ru> (I_vlxy_I) и вообще: https://github.com/offa/cmake-ada
[23:08:07] <ada_ru> (vasil_sd)  отвечает (Максим) на <Это, конечно, прекра…>
А вы пробовали ему задавать вопрос, зачем он это делает?
Мне сложно себе представить мотивацию, кроме как у него других задач нету и поэтому мсье решил заняться извращениями...
[23:08:27] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <А вы пробовали ему з…>
тряхнуть стариной!
[23:08:49] <ada_ru> (nitrocerber) Я вот анализирую адский код и генерю к нему ещё адского кода. Адскими средствами ^_^ И строится это потом билдером, написанным на аде. Отакой.
[23:08:56] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <будто в Аде меньше а…>
Кодогенераторы для Ады, должны быть написаны на Аде :)
[23:09:24] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <Я вот анализирую адс…>
Вот. Правильный подход
[23:09:48] <ada_ru> (I_vlxy_I) ну, так то цмаке тоже на ц++ написан 🙂
[23:09:58] <ada_ru> (nitrocerber) мне ещё за это и платят😎
[23:10:29] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <мне ещё за это и пла…>
пятиминутка рекламы работы в АдаКоре 🙂
[23:10:35] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <мне ещё за это и пла…>
Да, в нашем деле это самое главное ;)
[23:11:52] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <пятиминутка рекламы …>
Реклыма была бы если бы было: "платят много и часто". ;)

А так-то много где платят... ;)
[23:12:21] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Реклама была бы если…>
платят за программирование на Аде. можно работать удаленно 🙂

А теперь найди у АдаКоры конкурентов 🙂
[23:13:16] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <платят за программир…>
Тут зависит от регулярности и объёма платежей :)

А удалённо скоро много где можно будет работать, ибо коронавирус поспособствует :)
[23:13:56] <ada_ru> (I_vlxy_I) чот я сомневаюсь. там скорее просто текущих разработчиков перестанут выпускать из бункера
[23:14:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <чот я сомневаюсь. та…>
Ну, есть и такой вариант ;)))
[23:14:16] <ada_ru> (nitrocerber) Ну.. в сбербанке за джаву платят больше. Но там надо в офисе сидеть каждый день от звонка и до упора. И командировок в Париж немае.
[23:14:20] <ada_ru> (nitrocerber) Ну и на джаве писать надо
[23:14:28] <ada_ru> (nitrocerber) это, пожалуй, самый большой минус
[23:14:36] <ada_ru> (nitrocerber) по крайней мере для меня
[23:15:01] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <это, пожалуй, самый …>
Да ладно, всяко приятнее плюсов :)
[23:15:09] <ada_ru> (I_vlxy_I) да ладно бы на джаве, там небось j2ee, а это значит, что программируешь ты не на джаве, а на xml'ях, на анотациях и спринге
[23:15:28] <ada_ru> (nitrocerber) на 4ом курсе писал корешу курсовую по системе массового обслуживания на джаве, мне хватило
[23:15:56] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да ладно, всяко прия…>
пффф. когда в джаву завезут отделение спецификации от реализации модуля, тогда и поговорим!
[23:15:58] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <на 4ом курсе писал к…>
Ну семантически java ближе к Аде чем плюсы.
[23:16:03] <ada_ru> (nitrocerber) Я хз чем они там занимаются, я его терминов не понимаю, он моих. Так что мы обсуждаем обычно отвлечённые темы)
[23:16:35] <ada_ru> (nitrocerber) Ну на плюсах я писал последний раз на 2ом курсе... И стараюсь не вспоминать об этом)
[23:16:37] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Я хз чем они там зан…>
ЛЮБОЙ БИДОН ПРАЙМАРИ!
[23:16:45] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <пффф. когда в джаву …>
Там много чего другого интересного
[23:16:58] <ada_ru> (nitrocerber) Я тока помню мемес про кукарек кококо
[23:17:15] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Там много чего друго…>
когда завезут дженерики хотя бы как в Аде, а не ту пустышку, что сейчас там присутствует, тогда и поговорим!
[23:17:50] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <когда завезут дженер…>
Берёш скала - и вроде норм. И с оригинальной явой хорошо дружит.
[23:17:54] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Я тока помню мемес п…>
https://www.youtube.com/watch?v=OULbMirer8E
[23:18:26] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Берёш скала - и врод…>
дык мы ж про яву говорили 🙂 а скалу взять просто так да в большом проекте не дадут. тем более в банке
[23:18:47] <ada_ru> (nitrocerber) Вы вот размахиваете темплейтами крестовыми и дженериками тут часто. Я, конечно, чешка, но в реальном мире за 8-9 лет, ничего кроме контейнеров из дженериков мне нужно не было. Они реально так часто используются на практике в могучих индустриальных проектах?
[23:19:42] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Вы вот размахиваете …>
ну, просто там где можно без них - лучше без них. но там где они нужны (а они обязательно будут нужны) - без них вилы
[23:19:46] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <дык мы ж про яву гов…>
Ну вот. И мощные дженерики оттуда подальше не зря убрали. Ибо нужно тупо писать дешёвый код большим объёмом не слишком квалифицированных программеров (ибо квалифицированные - будет дорого)
[23:19:59] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну вот. И мощные дже…>
<прислал наклейку> 😳
[23:20:41] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <Вы вот размахиваете …>
К сожалению, встречаются. Причём часто не по причине надобности, а просто разработчикам приспичило повелосипедить....
[23:21:00] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Вы вот размахиваете …>
алсо в плюсах шаблонами и подобным мы часто добавляем compile time проверки на некоторые проект-специфичные вещи/типичные ошибки
[23:21:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <>
Да и этот с той же целью. И весьма неплохо этой цели достиг
[23:21:57] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <алсо в плюсах шаблон…>
Это если грамотно используются. Чаще шаблоны используются по принципу почему кот лижит яйца....
[23:22:00] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да и этот с той же ц…>
тут один чел попробовал Го недавно - говорит говно, вы посмотрите какой ущербный синтаксис массивов там! плюс язык форсит единый кодинг стайл для всех! Фу прямо!
[23:22:17] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Это если грамотно ис…>
у нас такое не пройдет котревью просто
[23:22:19] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <тут один чел попробо…>
И для крупный проектов - это супер!
[23:22:51] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <И для крупный проект…>
для мелких тоже супер. ибо экосистема вся у языка получается единообразная
[23:23:04] <ada_ru> (I_vlxy_I) а не как в плюсах и сях, где у каждой либы свой стиль и свои закидоны
[23:23:07] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <у нас такое не пройд…>
Код ревью не всегда спасает от фигни в проде.
[23:23:46] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <для мелких тоже супе…>
Да, но в мелких это не так критично. Только если мелкие тащишь в крупный ;)
[23:29:18] <ada_ru> (I_vlxy_I) в мелкий тащишь крупные обычно 🙂
[23:29:42] <ada_ru> (I_vlxy_I) ну, не копированием исходников конечно, а через зависимости
[23:30:54] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Код ревью не всегда …>
ну, кстати, у нас бывают повторные кодревью. вплоть до повторного аудита и отката изменений по итогам.
[23:31:22] <ada_ru> (I_vlxy_I) мы таки в регулируемой области работаем. это вам не веб, где никто ни за что не отвечает
[23:36:54] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <мы таки в регулируем…>
если бы серьёзно к делу подходили - взяли бы Аду ;)
[23:37:49] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <если бы серьёзно к д…>
ну, Ада плохо подходит для стартапов даже сейчас, а в 98 году не подходила вовсе
[23:38:06] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <ну, кстати, у нас бы…>
У меня есть мнение, что при грамотном подходе к организации процессов разработки и сопровождения, код ревью практически никогда не нужно
[23:38:47] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <У меня есть мнение, …>
эээ... ну, это примерно из той же серии, что и у моё "документация не нужна, если нужна документация, значит код - говно"
[23:38:49] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <ну, Ада плохо подход…>
Да ладно. Только по одному критерию - дефицит разработчиков на рынке.
[23:39:14] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Да ладно. Только по …>
дефицит адекватных инструментов на рынке в те года
[23:39:33] <ada_ru> (I_vlxy_I) А Ада-проектов высокая детская смертность.
[23:39:58] <ada_ru> (I_vlxy_I) сложно Ада-проекту дорости до размеров таких, чтобы использование Ады начало приносить профит
[23:40:02] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <эээ... ну, это приме…>
Тут вопрос смысла код-ревью. Если посмотреть на цели, которые ставятся при этом, то почти все из них достижимы другими способами и более эффективно
[23:40:19] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <дефицит адекватных и…>
А, ну да 98...
[23:40:37] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Тут вопрос смысла ко…>
хм.. а как еще познакомить коллег со своим кодом?
[23:41:19] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <хм.. а как еще позна…>
А зачем? Коллег нужно знакомить с диздоками, спеками, API и тому подобным. С кодом - это редко и мало когда нужно.
[23:41:58] <ada_ru> (I_vlxy_I) после моей внезапной смерти от трамвая и масла на рельсах, кто этот код будет саппортить?
[23:44:16] <ada_ru> (nitrocerber) Я чот сомневаюсь, что от 5 минут, потраченных на просмотр перед влеплением +2/замечанием очевидного косяка, per commit, кто-то через два месяца вспомнит, что ты там писал
[23:44:23] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <после моей внезапной…>
Гы. Вот в Яндексе обязательное у нас было прекомит-ревью. Разработчик одного небольшого сервиса ушёл и два других разраба, которые его код ревьюили не могли нормально поддерживать проект всего спустя 3 месяца.... Про что я и говорил начальству изначально...
Зачем доки, зачем спеки, нужно код читать.... :)))
Я чуть ли ни в голос тогда ржал на совещании, где эти два ревьюера жаловались на код, который они ревьюили :)))
[23:45:02] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <Я чот сомневаюсь, чт…>
эмм.. у нас народ до нескольких часов на ревью может потратить.

если изменения совсем уж тривиальные, то 5 минут, да
[23:45:22] <ada_ru> (nitrocerber)  отвечает (I_vlxy_I) на <эмм.. у нас народ до…>
и эти люди жалуются, что на аде писать долго...)
[23:45:35] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <эмм.. у нас народ до…>
Они тогда неделями ревьюили. Десятки итераций были :))))
[23:45:44] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <и эти люди жалуются,…>
Ага :)
[23:45:59] <ada_ru> (I_vlxy_I)  отвечает (nitrocerber) на <и эти люди жалуются,…>
дык там не в языке дело же. проект объемный. CAD же
[23:46:12] <ada_ru> (I_vlxy_I) медицинский CAD 🙂
[23:46:19] <ada_ru> (nitrocerber) ну если коммитится мегабайт исходного кода, его что читай, что не чита
[23:46:35] <ada_ru> (nitrocerber) за такие коммиты убивать надо...
[23:46:52] <ada_ru> (nitrocerber) *сказал он, готовя комит на многие тысячи строк кода*
[23:46:58] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <ну если коммитится м…>
Ну там не мегабайты были, там были споры относительно шаблонов :)
[23:48:27] <ada_ru> (vasil_sd) В общем, мой опыт работы в Яндексе говорит о том, что код-ревью зачастую бесполезная практика, которой пытаются компенсировать недостатки в сопровождении проектов (точнее его отсутсвия).
[23:49:25] <ada_ru> (nitrocerber) Ну у меня ловили несколько раз очевидные тупаки. А ща api одно на соглосовании. Которую неделю и пачсет...
[23:49:33] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Ну там не мегабайты …>
ну, говноспорщиков надо расстреливать.

но частенько реально проблемы в коде на ревью находят. и видно, что люди шарят в этом коде и понимают что изменение дает
[23:50:20] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <ну, говноспорщиков н…>
Эти проблемы нужно ловить на тестах, стат-анализе, стайлинге и формальщине. Полагаться на код-ревью - это такое...
[23:52:20] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Эти проблемы нужно л…>
а как ты всеми этими штуками отловишь проблему, которая очевидно возникнет при следующей фазе рефакторинга? а ловить её надо на текущей фазе
[23:52:48] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <а как ты всеми этими…>
А для этого моделирование динамики архитектуры нужно.
[23:52:51] <ada_ru> (nitrocerber) ну код ревью это человеческий фактор против человеческого фактора)) Может найти косяк, в который машины ещё не умеют. А может проглядеть очевидную плюху, на раз выкупаемую регрессионными тестам
[23:53:22] <ada_ru> (vasil_sd)  отвечает (nitrocerber) на <ну код ревью это чел…>
Именно. Что никакой стабильности. Пришёл ревьюер невыспавшийся и всё.
[23:53:43] <ada_ru> (I_vlxy_I) а тесты и всё прочее - это да, это хорошо и полезно. но и котревью никто не отменял.

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

или просто пишет - "я тут ничего не понял". и это означает, что код плох и его надо переделать
[23:54:08] <ada_ru> (I_vlxy_I) вот в яндексе пишут на кодревью такое? 🙂
[23:54:34] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <а тесты и всё прочее…>
Если после нормально диздоки и спек код на уровне "ятутничегонепонял" то это опять же проблема в процессах.
[23:55:13] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <вот в яндексе пишут …>
Там много чего пишут. Но это не помогает потом нормально поддерживать проекты, когда основные разрабы уходят :)))
[23:55:45] <ada_ru> (I_vlxy_I) есть такой подход "literate programming", так вот - он частенько приводит к тому, что имеем хорошую доку, а код превращается в полную жесть непонятную
[23:55:47] <ada_ru> (vasil_sd) В Яндексе там вообще странные практики, которые иногда шли вразрез даже со здравым смыслом...
[23:56:23] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <есть такой подход "l…>
Отличный подход. Но как и всё остальное нужно просто уметь им пользоваться.
[23:56:25] <ada_ru> (I_vlxy_I) ибо зачем писать понятный код, когда вот дока же, где описано как оно работает!
[23:57:01] <ada_ru> (Oleg) Ого вы тут настрочили
[23:57:16] <ada_ru> (Oleg) А я вот напейсал говнокода пачку
[23:57:27] <ada_ru> (Oleg) С говнодокументацией
[23:57:30] <ada_ru> (vasil_sd) Проблема в том, что многие вместо того, чтобы рационально думать, пытаются найти серебряную пулю для всего. Кто-то начинает на код-ревью молиться, кто-то на доки :)
[23:58:23] <ada_ru> (vasil_sd)  отвечает (I_vlxy_I) на <ибо зачем писать пон…>
Если нормально пишешь в literate-style, тяжело говнокод написать. Это стараться нужно ;)
[23:58:33] <ada_ru> (Oleg) Сегодня американцы попросили поправить туннель, поправил, кричали чрочно.......
[23:58:39] <ada_ru> (Oleg) Поднялся сенсор....
[23:58:45] <ada_ru> (Oleg) down time 154 days
[23:58:48] <ada_ru> (Oleg) 😊
[23:58:55] <ada_ru> (Oleg) Нам б.... срочно!
[23:59:37] <ada_ru> (vasil_sd)  отвечает (Oleg) на <Нам б.... срочно!>
Ну это часто так. Поэтому нужно немного подождать было - вдруг отменят... :)
[23:59:55] <ada_ru> (I_vlxy_I)  отвечает (vasil_sd) на <Если нормально пишеш…>
ага, ага. "нормально делай, нормально будет!"

так вообще любую практику и инструмент можно оправдать 🙂