... склонны применять сообщения об ошибках в функциональном стиле и кодировать ошибки в возвращаемый тип ... почему более новые языки наподобие Rust или Go не позволяют применять исключения.
В новых языках есть фичи, которыми они гордятся, но их невозможно корректно реализовать при наличии исключений (конструкций, которые принципиально меняют логику выполнения кода), и из-за чего основная киллер фича языка становится тыквой. Поэтому было придумано обоснование, почему обработку ошибок нужно делать именно так (в функциональном стиле), а отнюдь не потому, что это удобно, идеологически правильно и т.д., а просто потому что по другому не получается.
Ну и с самими исключениями все не так просто. Обработка ошибок с помощью исключений, это классика их использования. Тем не менее, исключение, это одна из алгоритмических конструкций, реализованная в многих языках программирования, и которая может использоваться для любых целей, в том числе и для реализации основой логики приложения (например, как в статье), хотя используются её преимущественно в классическом варианте для обработки ошибок.
Ну ок. Так может быть вы поделитесь информацией, что это такое за супер приложение, без которого нельзя обойтись и которое обязательно требует логина и пароля на Госуслугах, но не умеет использовать стандартный API для авторизации?
А разве нельзя вместо этого залогиниться на Госуслуги в нормальном браузере, чтобы была актуальная сессия и только после этого повторно зайти в эту прогу?
Обратился в поддержку Госуслуг - они сказали, что это целиком ответственность пользователя - что он сообщает третьим приложениям, и служба безопасности Госуслуг не будет этим заниматься.
Вам ответили совершенно правильно. Если кто-то у вас требует "логин-пароль от Госуслуг" и вы его дает, то вы ССЗБ и Госуслуги тут совершено не причем.
Так вам и написали, что ваш технический комментарий про язык С справедлив, тогда как при разговоре про С++ вы вспоминаете стюардессу, хотя у С++ уже давно есть механизмы безопасной работы с памятью (решающие проблемы, как описанная вами для С). Вот только их не хотят использовать (потому что сложно и не хотят разбираться и т.д.). Хотя переписать все на совершенно новом языке будет еще значительно сложнее.
Внезапно оказалось, что С++ имеет собственные механизмы безопасного управления памятью, вот только их или не используют и они плохо стыкуются с большим объемом старого легаси кода.
Но тут появляется Rust как панацея, с предложение все переписать на нем "потому что безопасно". Вот только тут проблема в слове переписать. Если переписать все старые исходники на С++ с безопасным управлением памятью, то будет ничуть не хуже, чем на Rust.
Я не вижу смысла в третий раз отвечать на одни и те же аргументы. А так как вы даже не потрудились перечитать мою переписку выше с @BugM (в которой, кстати, мы хоть и не убедили друг друга, но как бы пришли к одному знаменателю, что каждый по своему может быть прав), но я не вижу смысла начинать туже самую переписку по новой.
А так как вы с самого начала начали мешать в одну кучу терминологию и разные понятия, то я не вижу смысла в дальнейшем обсуждении с вами этого вопроса.
В новых языках есть фичи, которыми они гордятся, но их невозможно корректно реализовать при наличии исключений (конструкций, которые принципиально меняют логику выполнения кода), и из-за чего основная киллер фича языка становится тыквой. Поэтому было придумано обоснование, почему обработку ошибок нужно делать именно так (в функциональном стиле), а отнюдь не потому, что это удобно, идеологически правильно и т.д., а просто потому что по другому не получается.
Ну и с самими исключениями все не так просто. Обработка ошибок с помощью исключений, это классика их использования. Тем не менее, исключение, это одна из алгоритмических конструкций, реализованная в многих языках программирования, и которая может использоваться для любых целей, в том числе и для реализации основой логики приложения (например, как в статье), хотя используются её преимущественно в классическом варианте для обработки ошибок.
Ну ок. Так может быть вы поделитесь информацией, что это такое за супер приложение, без которого нельзя обойтись и которое обязательно требует логина и пароля на Госуслугах, но не умеет использовать стандартный API для авторизации?
А разве нельзя вместо этого залогиниться на Госуслуги в нормальном браузере, чтобы была актуальная сессия и только после этого повторно зайти в эту прогу?
Как написали в комментариях ниже:
Вы всегда вводите реквизиты банковской карты или персональные данные, когда вас об этом просят?
Вам ответили совершенно правильно. Если кто-то у вас требует "логин-пароль от Госуслуг" и вы его дает, то вы ССЗБ и Госуслуги тут совершено не причем.
Так вам и написали, что ваш технический комментарий про язык С справедлив, тогда как при разговоре про С++ вы вспоминаете стюардессу, хотя у С++ уже давно есть механизмы безопасной работы с памятью (решающие проблемы, как описанная вами для С). Вот только их не хотят использовать (потому что сложно и не хотят разбираться и т.д.). Хотя переписать все на совершенно новом языке будет еще значительно сложнее.
Это две последнии стадии из 4 этапов обучения
Точно! "ИИ сделай хорошо", и он так - оппа и сделал :-)
Внезапно оказалось, что С++ имеет собственные механизмы безопасного управления памятью, вот только их или не используют и они плохо стыкуются с большим объемом старого легаси кода.
Но тут появляется Rust как панацея, с предложение все переписать на нем "потому что безопасно". Вот только тут проблема в слове переписать. Если переписать все старые исходники на С++ с безопасным управлением памятью, то будет ничуть не хуже, чем на Rust.
Вот только кто за такое переписывание возьмется?
Вот только его SafeC++ кажется нифига не С++ :-)
С его предложениями, это получается уже не С++. И становится проще на Rust переписать, чем делать мешанину старого и нового кода
Кастомную фотку на пластик не интересно. Это много у кого есть.
Тем не менее, я бы такую прикольную карту взял :-)
Так перегрузка реализуется на уровне синтаксиса языка для C++20 и становится его частью, я ведь правильно понял?
Библиотека вроде бы полезная, но перегружать для нее оператор побитового ИЛИ в синтаксисе самого языка, так себе идея.
Я не вижу смысла в третий раз отвечать на одни и те же аргументы. А так как вы даже не потрудились перечитать мою переписку выше с @BugM (в которой, кстати, мы хоть и не убедили друг друга, но как бы пришли к одному знаменателю, что каждый по своему может быть прав), но я не вижу смысла начинать туже самую переписку по новой.
А так как вы с самого начала начали мешать в одну кучу терминологию и разные понятия, то я не вижу смысла в дальнейшем обсуждении с вами этого вопроса.
Ну предположим, что у Notion супер классное e2ee шифрование из коробки. Как вам это поможет, если у вас нет самого облака?
Ключевое слово "удалённо". Хорошо хоть так предложили.
Скорее тут проблема не в шифровании, а что это чужие "облака"
https://syncthing.net/downloads/