LINUX.ORG.RU

История изменений

Исправление dimgel, (текущая версия) :

А в чём «платность» паттерн матчинга? Только чур сравнивать эквивалентный код, а не switch по инту со сложным матчем.

Если сравнивать эквивалентный код, то результат будет эквивалентен. :) Я про то, что PM по классу требует RTTI. Сам я RTTI вообще нигде не использую, так что у меня тот самый switch по инту (точнее enum-у). Классов, по подклассам которых нужна динамическая диспетчеризация – доля процента, а RTTI генерируется для всех классов вообще, и в итоге моя жаба смотрит на размер бинарника, потом смотрит внуть его – и давит.

Кто-то случайно в либе впилил abort и до свидания.

Нет. В плюсовой либе я вместо abort() кину из вспомогательной функции на глубоком уровне вложенности исключение – и точно также забуду про него. Мне не надо помнить на всех предыдущих уровнях про то, что у меня тут может быть ошибка: при обычном плюсовом кодинде RAII вывезет автоматом, даже задумываться не нужно. Кто-нибудь наверху да поймает.

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

Это примерно как жаверы вместо того, чтобы пердолиться, прописывая throws IOException, ..., ... в каждом методе, либо тупо пишут throws Exception вообще везде (что тоже бьёт по глазам, хотя привыкнуть можно), либо бросают ТОЛЬКО unchecked (в т.ч. заворачивают в unchecked приезжающие из стандартной либы checked), либо юзают аннотацию @lombok.SneakyThrows чтобы checked в unchecked не заворачивать (мой любимый способ на жаве), либо переезжают на скалу (авторы которой, посмотрев на эту дичь, сознательно отказались от checked).

Мне тоже интересно откуда взялось fun.

Так. Теперь мне тоже стало интересно, и я-таки нашёл: оно вообще не из раста взялось. Сорри. :) Глупо было читать два туториала по разным языкам одновременно.

Исправление dimgel, :

А в чём «платность» паттерн матчинга? Только чур сравнивать эквивалентный код, а не switch по инту со сложным матчем.

Если сравнивать эквивалентный код, то результат будет эквивалентен. :) Я про то, что PM по классу требует RTTI. Сам я RTTI вообще нигде не использую, так что у меня тот самый switch по инту (точнее enum-у). Классов, по подклассам которых нужна динамическая диспетчеризация – доля процента, а RTTI генерируется для всех классов вообще, и в итоге моя жаба смотрит на размер бинарника, потом смотрит внуть его – и давит.

Кто-то случайно в либе впилил abort и до свидания.

Нет. В плюсовой либе я вместо abort() кину из вспосогательной функции на глубоком уровне вложенности исключение – и точно также забуду про него. Мне не надо помнить на всех предыдущих уровнях про то, что у меня тут может быть ошибка: при обычном плюсовом кодинде RAII вывезет автоматом, даже задумываться не нужно. Кто-нибудь наверху да поймает.

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

Это примерно как жаверы вместо того, чтобы пердолиться, прописывая throws IOException, ..., ... в каждом методе, либо тупо пишут throws Exception вообще везде (что тоже бьёт по глазам, хотя привыкнуть можно), либо бросают ТОЛЬКО unchecked (в т.ч. заворачивают в unchecked приезжающие из стандартной либы checked), либо юзают аннотацию @lombok.SneakyThrows чтобы checked в unchecked не заворачивать (мой любимый способ на жаве), либо переезжают на скалу (авторы которой, посмотрев на эту дичь, сознательно отказались от checked).

Мне тоже интересно откуда взялось fun.

Так. Теперь мне тоже стало интересно, и я-таки нашёл: оно вообще не из раста взялось. Сорри. :) Глупо было читать два туториала по разным языкам одновременно.

Исходная версия dimgel, :

А в чём «платность» паттерн матчинга? Только чур сравнивать эквивалентный код, а не switch по инту со сложным матчем.

Если сравнивать эквивалентный код, то результат будет эквивалентен. :) Я про то, что PM по классу требует RTTI. Сам я RTTI вообще нигде не использую, так что у меня тот самый switch по инту (точнее enum-у). Классов, по подклассам которых нужна динамическая диспетчеризация – доля процента, а RTTI генерируется для всех классов вообще, и в итоге моя жаба смотрит на размер бинарника, потом смотрит внуть его – и давит.

Кто-то случайно в либе впилил abort и до свидания.

Нет. В плюсовой либе я вместо abort() кину из вспосогательной функции на глубоком уровне вложенности исключение – и точно также забуду про него. Мне не надо помнить на всех предыдущих уровнях про то, что у меня тут может быть ошибка: при обычном плюсовом кодинде RAII вывезет автоматом, даже задумываться не нужно. Кто-нибудь наверху да поймает.

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

Это примерно как жаверы вместо того, чтобы пердолиться, прописывая «throws IOException, …, …» в каждом методе, либо тупо пишут «throws Exception» вообще везде (что тоже бьёт по глазам, хотя привыкнуть можно), либо бросают ТОЛЬКО unchecked (в т.ч. заворачивают в unchecked приезжающие из стандартной либы checked), либо юзают аннотацию @lombok.SneakyThrows чтобы checked в unchecked не заворачивать (мой любимый способ на жаве), либо переезжают на скалу (авторы которой, посмотрев на эту дичь, сознательно отказались от checked).

Мне тоже интересно откуда взялось fun.

Так. Теперь мне тоже стало интересно, и я-таки нашёл: оно вообще не из раста взялось. Сорри. :) Глупо было читать два туториала по разным языкам одновременно.