[00:08:42] <ada_ru> (I_vlxy_I) haskell не годится для CS и общей разработки алгоритмов, это факт. даже для прототипирования.
для разработки алгоритмов в условиях FP - годится. но не более того.
[00:10:08] <ada_ru> (insert_reference_here) отвечает (I_vlxy_I) на <haskell не годится д…>
s/.*/Я не осилил Haskell
[00:11:34] <ada_ru> (I_vlxy_I) как раз осилил. и сделал выводы.
[00:11:47] <ada_ru> (I_vlxy_I) уж лучше раст
[00:45:09] <ada_ru> (I_vlxy_I) Опять Ариан-5 https://www.ada-ru.org/files/bot/2019-04-24-x6.jpg
[00:52:15] <ada_ru> (I_vlxy_I) Капец там пафоса.
[00:55:56] <ada_ru> (I_vlxy_I) Это чьё такое?
[00:56:03] <ada_ru> (I_vlxy_I) отвечает (Bot) на <>
Зобанить?
[00:56:23] <ada_ru> (Борис) Одназначно.
[00:57:35] <ada_ru> (Борис) Уже что-то такое залезало.
[07:36:06] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <haskell не годится д…>
кто надо даже потактовый эмулятор процессора на хаскелле сделал, а ты говоришь -- не годится... о_О
[13:18:37] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <кто надо даже потакт…>
не годится. это не разработка алгоритмов в CS.
[13:18:46] <ada_ru> (Максим) отвечает (I_vlxy_I) на <А есть какие-нибудь …>
А смысл в быстрых исключениях? На то они и исключения, чтобы не случаться в нормальной работе. Механизм там тот же, что в С++, как я понимаю - используется unwind, раньше было на setjump/longjump (или как его), сейчас тоже есть, как отдельный рантайм. На Винде через виндовый механизм (SEH?)
[13:19:41] <ada_ru> (I_vlxy_I) отвечает (Максим) на <А смысл в быстрых ис…>
В том, что есть обширный класс "ошибок" которые не понятно ошибки или нет. Не смогли открыть файл - ошибка? Не смогли распарсить xml - ошибка? Не смогли распарсить число из строки - ошибка?
[13:20:58] <ada_ru> (Максим) если это занимает ощутимую часть времени - это не ошибка :)
[13:21:31] <ada_ru> (I_vlxy_I) дык разработчик либы же не знает с какой частотой будет возникать это событие при использовании этой либы
[13:21:51] <ada_ru> (Максим) не нужно использовать механизм исключений для этого
[13:22:09] <ada_ru> (Максим) значит он плохой разработчик :)
[13:22:54] <ada_ru> (Максим) если это либа, нужно делать возможность работы без исключений во всех сомнительных местах IMHO
[13:23:12] <ada_ru> (Максим) будет как в Си :)
[13:25:37] <ada_ru> (I_vlxy_I) отвечает (Максим) на <если это либа, нужно…>
а может лучше просто иметь возможность выбирать реализацию механизма исключений для тех, или иных мест? Типа вот тут - у нас редко (и это знает разработчик аппликации, а не либы) поэтому я не хочу платить за несработавшие исключение, а вот тут - часто, и пусть будет очень малая, но постоянная плата за каждый вызов.
[13:26:03] <ada_ru> (I_vlxy_I) оно там унутре может хоть через коды возврата тогда работать. не прикладного программиста это дело.
[13:27:43] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <В том, что есть обши…>
в таких случаях надо не исключения кидать, а возвращать типы вроде Maybe File, Maybe XML, Maybe Number
[13:27:59] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <в таких случаях надо…>
чем исключения, по семантике, хуже?
[13:28:21] <ada_ru> (I_vlxy_I) как по мне - все эти мейби и монады это костыльный метод реализовать на уровне либы то, что должно быть на уровне языка.
[13:28:48] <ada_ru> (I_vlxy_I) исключения, с их семантикой, прекрасны, нужно лишь по месту выбрать механизм реализации.
[13:28:59] <ada_ru> (I_vlxy_I) и иметь возможность быстро переключать механизм с одного на другой
[13:29:24] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <чем исключения, по с…>
исключение -- это goto за пределы текущей подпрограммы, это даже хуже чем обычный goto, ограниченный текущей подпрограммой
[13:30:00] <ada_ru> (I_vlxy_I) а типа проскок через строчки кода в maybe монаде, это не то же самое? 😊 может еще и сокращенный порядок вычислений убрать?
[13:30:18] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <а может лучше просто…>
зачем это нужно? естественно все будут выбирать реализацию с "я не хочу платить за несработавшие исключение"
[13:30:57] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <зачем это нужно? ест…>
затем, что иногда исключительная ситуация не столь уж и исключительна и срабатывает 10000 раз в секунду в этом конкретном месте. и это нормально. так и задумано.
[13:30:59] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <а типа проскок через…>
нет там никаких goto, if есть, goto нету
[13:31:23] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <затем, что иногда ис…>
ну и зачем тебе такое исключение, когда есть быстрое исключение?
[13:31:34] <ada_ru> (I_vlxy_I) если всё обмазано монадами мейби, или как их там, то оно отлично раскрутит стек проскочив наверх минуя всё. непредсказуемым образом.
[13:31:43] <ada_ru> (I_vlxy_I) ничем от семантики исключений не отличается.
[13:32:00] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <ну и зачем тебе тако…>
которое?
[13:34:58] <ada_ru> (I_vlxy_I) Максим куда там пропосалы для стандарта Ады подают? Как процесс устроен? 😊
[13:37:51] <ada_ru> (I_vlxy_I) заодно попробовать шоле пропосол и в ц++ закинуть.
[13:51:34] <ada_ru> (I_vlxy_I) или это чему-то противоречит в Аде? в смысле, иметь такую явную настройку по месту.
[13:53:54] <ada_ru> (Eugene) отвечает (I_vlxy_I) на <а может лучше просто…>
можно ли из этой фразы сделать вывод, что ты предлагаешь два варианта исключений -- один без оверхеда на несработавшие исключения, а второй с постоянной малой платой?
[13:54:30] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <можно ли из этой фра…>
да. и так делают во всех языках явным или не явным способом. я просто предлагаю более гибкий механизм выбора, а не железобетонный выбор в момент реализации.
[13:55:24] <ada_ru> (Eugene) тогда зачем использовать второй вариант, если есть первый вариант, у которого нет платы за несработавшее исключение?
[13:56:01] <ada_ru> (I_vlxy_I) потому, что исключение может срабатывать в этом месте часто и мы знаем что это будет часто. поэтому мы хотим в совокупности заплатить меньше.
[13:56:48] <ada_ru> (Eugene) то есть ты предполагаешь, что в первом варианте высокая цена в случае срабатывания исключения?
[13:57:59] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <то есть ты предполаг…>
я это просто знаю
[13:58:04] <ada_ru> (Eugene) я думаю, что большинству народа пофиг на цену всех этих исключений, особенно тем, кто делает приложение, а не библиотеку
крайне редко когда гонятся за уменьшением времени исполнения
[13:58:48] <ada_ru> (I_vlxy_I) ценой исключения озабочен именно писатель прикладухи а не либы. то есть пользователь, а не создатель функции, так как все расходы несет пользователь и частоту срабатывания тоже может оценить только он.
[14:00:10] <ada_ru> (I_vlxy_I) поэтому сейчас писатели либ вынуждены делать по два варианта функций. руками.
[14:00:23] <ada_ru> (I_vlxy_I) с ошибками, естественно, ибо руками же делают.
[14:00:43] <ada_ru> (I_vlxy_I) и изобретают свои велосипеды на тему типов ошибок и как их возвращать.
[14:00:59] <ada_ru> (I_vlxy_I) а можно было бы отдать это на откуп компилятора.
[14:01:05] <ada_ru> (I_vlxy_I) и сделать кот единообразным.
[14:02:33] <ada_ru> (I_vlxy_I) хм. среди плюсистов есть поддержавшие мою идею. ну и замечания, что работать не будет. 😊
[14:38:00] <ada_ru> (Максим) отвечает (I_vlxy_I) на <затем, что иногда ис…>
В АдаКоре часто используют исключения, на мой взгляд, где надо и где не надо. Я в свое время попад под влияние Вадима и теперь считаю, что исключения это зло 😊 И в отладчике это неудобно ужастно.
[14:38:48] <ada_ru> (Максим) отвечает (I_vlxy_I) на <Максим куда там проп…>
http://www.ada-auth.org/standards/aarm12_w_tc1/html/AA-0-3.html
[14:39:13] <ada_ru> (Максим) 58/1 Instructions for Comment Submission
[14:39:28] <ada_ru> (Максим) по допотопному у них там всё пока
[14:42:28] <ada_ru> (Борис) Исключения имеют смысл только тогда, когда действительно полный финиш настал, типа отвалился жёсткий диск, грубо говоря (да и то). Ну то есть дальнейшее выполнение большей части программы потеряло смысл вообще. А когда это вместо лишней ветки IF применяется, уводя в какие-нибудь "новые *****" по коду, то прав Евгений — хуже goto.
[14:42:57] <ada_ru> (Максим) с этим согласен
[14:47:19] <ada_ru> (Eugene) цитирует (olegcher)
картинка https://www.ada-ru.org/files/bot/2019-04-25-x7.jpg
[14:48:55] <ada_ru> (I_vlxy_I) это только издалека так видится 😊 на самом деле плюсовики не в курсе про джаву, а джавится как от огня от плюсов бегут.
[14:49:04] <ada_ru> (I_vlxy_I) но это не мешает в одном проекте юзать и то и другое.
[14:49:34] <ada_ru> (I_vlxy_I) отвечает (Борис) на <Исключения имеют смы…>
когда пишешь библиотеку ты не знаешь настал полный финиш, или нет.
[14:49:47] <ada_ru> (I_vlxy_I) это может решить только автор приложения, а не ты.
[14:52:01] <ada_ru> (Борис) А... к хаосу, даже спорить не хочу. Работать надо.
[14:52:30] <ada_ru> (I_vlxy_I) отвечает (Борис) на <А... к хаосу, даже с…>
<прислал наклейку> 😝
[14:53:03] <ada_ru> (Eugene) <прислал наклейку> 😳
[14:56:31] <ada_ru> (I_vlxy_I) отвечает (Максим) на <В АдаКоре часто испо…>
А в отладчике разве нельзя поставить бряку на исключения?
[14:56:48] <ada_ru> (I_vlxy_I) ну и вообще, есть же мнение, что пошаговая отладка, это зло 😊
[14:57:18] <ada_ru> (Eugene) неправильный код не должен компилироваться!!!111
[14:57:35] <ada_ru> (I_vlxy_I) отвечает (Eugene) на <неправильный код не …>
а это правильный код. исключения — это не про ошибку в коде.
[14:58:25] <ada_ru> (I_vlxy_I) картинка https://www.ada-ru.org/files/bot/2019-04-25-x8.jpg
[14:59:18] <ada_ru> (Eugene) отвечает (Борис) на <А... к хаосу, даже с…>
<прислал наклейку> ❤
[14:59:20] <ada_ru> (Eugene) хаос вызывали?
[15:00:34] <ada_ru> (I_vlxy_I) (gdb) catch throw
[15:01:28] <ada_ru> (I_vlxy_I) сорян, это для плюсов
[15:01:35] <ada_ru> (I_vlxy_I) для Ады:
(gdb) catch exception
[15:01:40] <ada_ru> (Максим) отвечает (I_vlxy_I) на <А в отладчике разве …>
Можно поставить на все исключения, но если они генерятся во всём коде, то толку мало, устанешь пропускать ненужные. Неудобно также - ты делаешь next на вызове подпрограммы, а внутри исключение, твой next идёт к чертям
[15:01:52] <ada_ru> (I_vlxy_I) Ada exceptions may be caught:
catch exception - all exceptions, when raised
catch exception <name> - a particular exception, when raised
catch exception unhandled - all unhandled exceptions, when raised
catch assert - all failed assertions, when raised
[15:02:04] <ada_ru> (Максим) отвечает (I_vlxy_I) на <ну и вообще, есть же…>
а мне нравится! не люблю трейсы и не умею их готовить
[15:02:06] <ada_ru> (I_vlxy_I) отвечает (Максим) на <Можно поставить на в…>
Можно на конкретные исключения же. См. выше
[15:02:37] <ada_ru> (Максим) я это всё знаю
[15:02:47] <ada_ru> (I_vlxy_I) даже вот конкретно не пойманные исключения, покидающие фрейм можно брякать
[15:34:59] <ada_ru> (I_vlxy_I) отвечает (Максим) на <я это всё знаю>
и не помогает?
[15:39:40] <ada_ru> (Максим) С этим конечно лучше чем без этого, но дебажить всё равно не удобно
[15:40:14] <ada_ru> (I_vlxy_I) мне кажется, что это должно лечиться допилом дебаггера.
[15:40:53] <ada_ru> (I_vlxy_I) Кстати, я же правильно понимаю, что именно из за формата дебажных символов невозможно шагать по выражениям/стейтментам, и возможно только по строчкам?
[16:04:08] <ada_ru> (I_vlxy_I) https://habr.com/en/company/yandex/blog/449270/
Про деньги!
[16:07:31] <ada_ru> (I_vlxy_I) отвечает (I_vlxy_I) на <Плюсист должен страд…>
Должен страдать! https://www.ada-ru.org/files/bot/2019-04-25-x9.jpg
[16:34:18] <ada_ru> (I_vlxy_I) Хорошо это хоть не по Москве такая стата.
[16:57:26] <ada_ru> (Vinpuh) "больше половины всех объявлений на рынке адресована специалистам с опытом работы от года до трёх." - набор гребцов на шлюпки и галеры.
[17:00:26] <ada_ru> (I_vlxy_I) занедорого
[17:03:27] <ada_ru> (I_vlxy_I) на самом деле, так пишут потому, что опытных хрен найдешь. поэтому стараются снизить порог в вакансии.
[17:04:09] <ada_ru> (Eugene) раскопки про ариан-5
https://forum.oberoncore.ru/viewtopic.php?f=152&t=5972&p=107686&sid=652d7ef7ad97f4fb7c7ad48720c94232#p107683
[17:05:34] <ada_ru> (I_vlxy_I) ой, да закопайте вы эту ракету уже.
[17:42:55] <ada_ru> (I_vlxy_I) цитирует (zamazan4ik)
Как это не развит?
- здравствуйте
- Здравствуйте
- я рекрутерша эйчаровна, мы ищем людей на ит вакансии наши рога и копыто
- хм, хорошо. А какой стек вас интересует? Я пишу на хаскеле
- а, извините. Мы разработчиков ищем. Всего доброго
[20:19:11] <ada_ru> (Борис) отвечает (Eugene) на <раскопки про ариан-5…>
Кому там разборов про Ариан? :)
...Во-первых, Ada тут не причем...
https://forum.oberoncore.ru/viewtopic.php?p=107687#p107687
[20:42:59] <ada_ru> (nitrocerber) отвечает (I_vlxy_I) на <ой, да закопайте вы …>
Вот +100500
[20:43:01] <ada_ru> (nitrocerber) Как с писаной торбой..
[20:44:44] <ada_ru> (I_vlxy_I) вокруг столько новых интересных аварий происходит, а они всё Ариан-5 насилуют.
[20:49:44] <ada_ru> (Борис) отвечает (I_vlxy_I) на <вокруг столько новых…>
А ты почитай. Это во-первых.
Во-вторых, носятся с Арином-5, по списку, ты, Влад и Евгений. Вас почему-то эта тема всё время возбуждает. А это просто проходной пример.
[20:50:03] <ada_ru> (I_vlxy_I) да он проходной уже хз по какому кругу
[20:54:37] <ada_ru> (Борис) Потому что надо не до примера домахиваться, который разбирается по существу, а теперь ещё и в деталях, а слушать контекст. И если есть, что возразить по существу темы — вот тут другой вопрос, можно обсуждать.