История изменений
Исправление vbr, (текущая версия) :
Почему дерьмо-то? Как минимум для самообразования норм, поглядеть паттерны. Мне вроде ок.
Да там всё странное. В целом моя главная претензия это переизбыток шаблонов. Что приводит к огромным простыням сообщений об ошибках, долгой компиляции. Меня в целом стандартная библиотека C++ раздражает. Те же IO streams это прям умудриться надо было придумать - оператор битового сдвига для ввода-вывода. Какой в этом смысл? Никакого. Ноль смысла. Адски тормозной IO получился, ко всему прочему. Простой и понятный printf("%.2f\n", f)
превращается в cout << fixed << setprecision(2) << f << endl
. У проектировавшего это нет никакого эстетического вкуса. Даже что-то вроде stdout.float(f, 2).nl()
было бы удобней, а я это просто родил из головы на месте.
К примеру в Rust стандартные коллекции куда удобней в использовании. Функциональный API для коллекций это стандарт-де факто в современных языках и STL на этом фоне выглядит неприглядно. Вроде в последних стандартах стало получше, но ядро STL никуда не делось.
ETL дает всякие строки-векторы-очереди с ограничением размера и без хипа (с фиксированным буфером под капотом), это критично для эмбедов. Лучше доку глядеть, я не великий мастер объяснять такие вещи.
Это полезный и нужный функционал. И, кстати, наглядный камень в сторону STL. Который такой весь из себя гибкий, с кучей шаблонных параметров, но при всём при этом такой очевидный функционал не поддерживает.
Исправление vbr, :
Почему дерьмо-то? Как минимум для самообразования норм, поглядеть паттерны. Мне вроде ок.
Да там всё странное. В целом моя главная претензия это переизбыток шаблонов. Что приводит к огромным простыням сообщений об ошибках, долгой компиляции. Меня в целом стандартная библиотека C++ раздражает. Те же IO streams это прям умудриться надо было придумать - оператор битового сдвига для ввода-вывода. Какой в этом смысл? Никакого. Ноль смысла. Адски тормозной IO получился, ко всему прочему. Простой и понятный printf("%.2f\n", f)
превращается в cout << fixed << setprecision(2) << f << endl
. У проектировавшего это нет никакого эстетического вкуса.
К примеру в Rust стандартные коллекции куда удобней в использовании. Функциональный API для коллекций это стандарт-де факто в современных языках и STL на этом фоне выглядит неприглядно. Вроде в последних стандартах стало получше, но ядро STL никуда не делось.
ETL дает всякие строки-векторы-очереди с ограничением размера и без хипа (с фиксированным буфером под капотом), это критично для эмбедов. Лучше доку глядеть, я не великий мастер объяснять такие вещи.
Это полезный и нужный функционал. И, кстати, наглядный камень в сторону STL. Который такой весь из себя гибкий, с кучей шаблонных параметров, но при всём при этом такой очевидный функционал не поддерживает.
Исходная версия vbr, :
Почему дерьмо-то? Как минимум для самообразования норм, поглядеть паттерны. Мне вроде ок.
Да там всё странное. В целом моя главная претензия это переизбыток шаблонов. Что приводит к огромным простыням сообщений об ошибках, долгой компиляции. Меня в целом стандартная библиотека C++ раздражает. Те же IO streams это прям умудриться надо было придумать - оператор битового сдвига для ввода-вывода. Какой в этом смысл? Никакого. Ноль смысла. Адски тормозной IO получился, ко всему прочему. Простой и понятный printf("%.2f\n, f)
превращается в cout << fixed << setprecision(2) << f << endl
. У проектировавшего это нет никакого эстетического вкуса.
К примеру в Rust стандартные коллекции куда удобней в использовании. Функциональный API для коллекций это стандарт-де факто в современных языках и STL на этом фоне выглядит неприглядно. Вроде в последних стандартах стало получше, но ядро STL никуда не делось.
ETL дает всякие строки-векторы-очереди с ограничением размера и без хипа (с фиксированным буфером под капотом), это критично для эмбедов. Лучше доку глядеть, я не великий мастер объяснять такие вещи.
Это полезный и нужный функционал. И, кстати, наглядный камень в сторону STL. Который такой весь из себя гибкий, с кучей шаблонных параметров, но при всём при этом такой очевидный функционал не поддерживает.