Почему Google не используют исключения в C++?
Если они такие дорогие, то просто не выбрасывать в цикле.
https://google.github.io/styleguide/cppguide.html#Exceptions
IBets
> Почему Google не используют исключения в C++?
Потому что неосиляторы.
Очевидно же.
return [](){};
Там вообще много чего написано. Они также "упростили" документацию разработчика благодаря этому, иначе пришлось бы все нюансы описывать, как и что надо делать в разных случаях.
IBets
Я так понял они его просто не использую в релизе. Исключения не более чем удобны для отладки, а в релизе генерят лишний мусор. По мне, я такую логику поддерживаю, поскольку есть железо и оно в рамках ос может все что надо сгенерить. Лишнего зачем городить?
Где то на эту тему уже было общение по поводу излишек кода при использовании исключений, и как от них избавиться - заменой исключения на передачу выходного/глобального параметра.
IBets
> Если они такие дорогие, то просто не выбрасывать в цикле.
Вот ты сделаешь функцию с генерацией исключения, а я ее буду использовать в цикле. Одним словом просто усложняет разработку.
Могу придумать два случая когда исключения только мешают:
1. Работа с микроконтроллерами, код обработки исключений жирный, а места мало.
2. Работа с легаси библиотеками на С, тогда исключения между разными языками не работают.
А так то не осилили прост.
kvakvs
> Могу придумать два случая когда исключения только мешают:
> 1. Работа с микроконтроллерами, код обработки исключений жирный, а места мало.
> 2. Работа с легаси библиотеками на С, тогда исключения между разными языками не
> работают.
> А так то не осилили прост.
Есть ещё третья и основная причина - если весь код у тебя не компилится в единый бинарник, про исключения можешь забыть.
kvakvs
> 1. Работа с микроконтроллерами, код обработки исключений жирный, а места мало.
есть свидетельства которые утверждают —- google делан на типа тыщи штук домашние компьютеры типа там Pentium4 версии 2000годов , набрали такие —сделали сеть .простейшее оборудование+качественные отказоустойчивые программы. то есть не спец.сервера.
Rikk
> google делан на типа тыщи штук домашние компьютеры типа там Pentium4 версии 2000годов
Это ваш таджикский гугл так "делан".
Ghost2
> Это ваш таджикский
таджики или нетаджики но такие свидетельства существуют.
Есть ещё одна причина не использовать исключения. Дело в том, что Google - компания, пишущая себе серверный код. Который работает в основном на Linux. А на Linux нет системных исключений и необработанное исключение в одном модуле не проталкивается выше по стеку, а приводит к падению программы. Не то, чтобы с этим нельзя было бороться, но это неприятные моменты, "череватые боком".
pda
> Есть ещё одна причина не использовать исключения. Дело в том, что Google -
> компания, пишущая себе серверный код. Который работает в основном на Linux.
недолго работал в конторе, которая писал банкофский софт под Linux, без исключений никака
Rikk
Меньше надо читать желтую прессу и надписи на заборах.
Вдумайся в аббревиатуру ПК и задумайся, зачем они нужны гуглу. У гугла давно кастомное железо в датацентрах.
И если они оптимизируют в своем железе не производительность, а производительность на ватт/доллар,
то это совсем не значит, что на таком же железе чья-то бабушка "просматривает электронную почту".
Ghost2
> то это совсем не значит, что на таком же железе чья-то бабушка "просматривает
> электронную почту".
Конечно не значит - компьютер у бабушки даже круче, есть клава, мышка, корпус навороченный и монитор.
У гугла тупо материнка и шлейф с винтом на четырёх болтах в жестянку запиханы.
Хотя может сейчас и есть что-то кастомное, чтобы вообще выкинуть всё ненужное и цену вообще в ноль увести. Но сама идея изначально и состояла в облаке самых дешевых ширпотребных материнок с винтами, чтобы отказ одного компьютера для всего облака не значил ровным счётом ничего.
Тема в архиве.