LINUX.ORG.RU

Go на пальцах

 


0

4

Объясните ньюфагу что в Go такого крутого, что в последнее время вокруг него такой ажиотаж (я помню когда он только вышел его все обсирали и пророчили ему судьбу языка D)?

Ответ на: комментарий от anonymous

Часть ошибок ты знаешь, часть нет.

речь именно о том, что с unchecked - ты вообще не знаешь даже части возможных факапов - по дефолту (без чтения документации, если она есть, и если там потенциальные исключения перечислены). С cheked - тебе все факапы перечислит компилятор/ide

вот и вся разница

geek ★★★
()
Ответ на: комментарий от DarkEld3r


если это происходит в сторонней либе - так, опять же, к исключениям оно относится весьма опосредовано.

а к чему относится? Если оно выбрасывается как утка и крякает как утка - то что это?

и ещё о ревью

ты много знаешь людей, которые не ошибаются и не ленятся?

я ни одного не знаю

компилятор ошибается значительно реже - почему бы ему эту головную боль не спихнуть?

geek ★★★
()
Ответ на: комментарий от geek

не ты ли мне говорил, что в хороших книжках ты вычитал, что CE - это плохо?

Говорил о том, что такое мнение распространено и подтверждается аргументами.

Потому что одновременно утверждать, что checked exceptions - плохо/неудобно, и что «явность ... является плюсом» - как-то не способствует пониманию

А чего тут понимать? Очевидно, что у разных инструментов разные плюсы/минусы. Иначе (особенно в новых языках) доминировал бы какой-то один вариант. В моём опыте находилось применение и тому и другому. Собственно, даже в го и расте с их «отказом от исключений» всё равно есть паника, которая делает практически то же самое.

такое ощущение, что с приветмиропейсателями общаюсь, чесслово.

Ты бы лучше начинал читать то, что тебе пишут, а не придумывать аргументы за собеседника. Повторяю ещё раз: в любой сторонней библиотеке тебе могут подложить свинью кучей способов. (Неожиданные) исключения тут просто один из множества способов это сделать.

DarkEld3r ★★★★★
()
Ответ на: комментарий от geek

а к чему относится?

К говнокоду.

почему бы ему эту головную боль не спихнуть?

Смотря в каких случаях, потому что исключения тоже имеют свои преимущества. И в некоторых случаях, отказ от них принесёт всю ту же головную боль и заставит писать мусорный код. Checked везде-везде приведёт к уродским нечитаемым сигнатурам и необходимости «обрабатывать» даже то, что мы обрабатывать в 99% случаев не захотим (out of memory как самый очевидный пример).

В стандартной библиотеке плюсов сделано неплохо (в рамках языка) - почти нигде исключения не бросаются, если не попросить явно. При этом у нас нет мусора в сигнатурах так как для реально редких случаев всё-таки применяются исключения.

DarkEld3r ★★★★★
()
Ответ на: комментарий от KRoN73

Нет. Там достаточно ловить «наверху»

А потом разгребать try-catch-else-else-else-else, что же за эксцепшн у тебя вывалился?

Ну ленть чекать err - налабай мидлварь которая будет чекать err и паниковать. И вызывай все через нее.

ioway
()
Ответ на: комментарий от geek

если ты в документации на свою библиотечную функцию ты написал «хоть эта функция и использует кучу сторонних функций, но я гарантирую, что она всегда выполняется» - то ты идиот

Ну, например, ты поменял используемую библиотеку в реализации своей библиотеки. И выяснилось, что новый вызов может кидать чекед исключение. Но твой интерфейс не должен меняться. Что ты будешь делать?

anonymous
()
Ответ на: комментарий от geek

в main вставить catch на всё вообще.

Кто тебе это советовал?

Вообще непонятно, о чем ты.

anonymous
()
Ответ на: комментарий от geek

речь именно о том, что с unchecked - ты вообще не знаешь даже части возможных факапов - по дефолту (без чтения документации, если она есть, и если там потенциальные исключения перечислены).

В документации все есть. Если ты используешь что-то не читая документации, то ты ССЗБ.

С cheked - тебе все факапы перечислит компилятор/ide

Единственный известный мне язык с CE, это java. А в нем есть uncheked, которые точно так же могут прилететь. Так о чем речь?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.