История изменений
Исправление DarkEld3r, (текущая версия) :
Отсутствие исключений уже существенный минус.
А какое отношение это имеет к синтаксису/нечитаемости? Я так понял, что претензия была именно к нему.
А вообще, растовая паника - практически исключения. Ведь деструкторы вызываются, передавать можно любой тип, а не только строки, да и перехватить можно, правда только на границе потоков. Так что я не удивлюсь, если потом и «нормальные исключения» поверх этого прикрутят. Более того - недавно появилась функция catch_panic, которая примерно это и делает. Осталось разве что упростить вытаскивание типа «исключения» и всё.
Разбивать все на интерфейсную часть и реализацию не слишком удобно, да и читается такой разрозненный код хуже, чем код цельного класса.
В плюсах есть хедеры и цпп файлы - тоже своего рода разделение. Плюс такие «паттерны» как пимпл и т.д. В шарпе, опять же, напридумывали partial-классы и регионы. По моему, это всё как раз говорит о том, что разделять интерфейс/реализацию удобно.
Да и растовые трейты - практически, обычное ООП. Разве что осталось наследование прикрутить и всё. Ну записывается по другому, но смысл остаётся тот же.
Дженерики слабее шаблонов
Нет. Они как раз мощнее.
а на макросах код писать сложнее, чем на шаблонах
Опять нет. Для написания простых вещей (например, контейнеров и алгоритмов) растовые макросы как раз не нужны - достаточно дженериков. А если мы возьмём что-то «более сложное», вроде, метапрограммирования в бусте, то растовые макросы уже совсем не сложнее получаются.
Лайфтаймы в явном виде - издевательство над программистом, их должен выводить компилятор самостоятельно, по крайней мере в подавляющем числе случаев.
Вообще-то, так и происходит.
Нет разделения управления памятью, управлением временем жизни и непосредственной логикой программы.
Можно немного подробнее?
Вкусовщину комментировать не буду. Мне вот с растом разбираться интересно.
Исходная версия DarkEld3r, :
Отсутствие исключений уже существенный минус.
А какое отношение это имеет к синтаксису/нечитаемости? Я так понял, что претензия была именно к нему.
А вообще, растовая паника - практически исключения. Ведь деструкторы вызываются, передавать можно любой тип, а не только строки, да и перехватить можно, правда только на границе потоков. Так что я не удивлюсь, если потом и «нормальные исключения» поверх этого прикрутят. Более того - недавно появилась функция catch_panic, которая примерно это и делает. Осталось разве что упростить вытаскивание типа «исключения» и всё.
Разбивать все на интерфейсную часть и реализацию не слишком удобно, да и читается такой разрозненный код хуже, чем код цельного класса.
В плюсах есть хедеры и цпп файлы - тоже своего рода разделение. Плюс такие «паттерны» как пимпл и т.д. В шарпе, опять же, напридумывали partial-классы и регионы. По моему, это всё как раз говорит о том, что разделять интерфейс/реализацию удобно.
Да и растовые трейты - практически, обычное ООП. Разве что осталось наследование прикрутить и всё. Ну записывается по другому, но смысл остаётся тот же.
Дженерики слабее шаблонов
Нет. Они как раз мощнее.
а на макросах код писать сложнее, чем на шаблонах
Опять нет. Для написания простых вещей (например, контейнеров и алгоритмов) растовые макросы как раз не нужны - достаточно дженериков. А если мы возьмём что-то «более сложное», вроде, метапрограммирования в бусте, то растовые макросы уже совсем не сложнее получаются.
Лайфтаймы в явном виде - издевательство над программистом, их должен выводить компилятор самостоятельно, по крайней мере в подавляющем числе случаев.
Вообще-то, так и происходит.
Нет разделения управления памятью, управлением временем жизни и непосредственной логикой программы.
Можно немного подробнее?
Вкусовщину комментировать не будут. Мне вот с растом разбираться интересно.