Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 25.05.2020 в Сообщения

  1. 5 баллов
    Исключения скрыты в дебрях кода, и по сигнатуре функции не понятно, возможна там ошибка или нет. noexcept с этим особо не помогает... В расте же функция возвращает `Result<T, E>` — ты обязан обработать ошибку, через `.unwrap`, `match`, или `?` Есть. В расте нет (в safe коде). То же знаковое целочисленное переполнение, которое в си/плюсминус является UB, в расте нормально обрабатывается (в debug проверка, в release wrapping), при этом можно явно указать какое поведение тебя интересует: `checked`, `wrapping`, `overflowing`, `saturating`. Покажи мне такое в Си++ В C++20 добавили концепты (по сути трейты из раста, только убого реализованные), рейнжи (итераторы из раста), модули (серьезно, 30 лет не могли сделать нормальную систему модулей вместо препроцессорных костылей, раст же изначально проектировался с модулями) и много других жизненно необходимых фич, если отбрасывать их ущербность. Теперь покажи кто в продакшене на C++20 перешел? там дай бог C++11 и переписывать никто не собирается, язык стал другим А на расте что, нельзя? Чем это он принципиально отличается от си++? тот же системный язык, только с гарантиями. Вон даже ось пишут, или модули для ядра. Ну например, инициализировать переменную можно 18 различными способами.. те же выражения бывают в 5 вариантах: rvalues, lvalues, xvalues, glvalues, и prvalues... а шаблонную наркоманию порой вообще невозможно прочесть, особенно когда дело доходит до ошибок компиляции.
  2. 2 балла
    Согласен, исключения в плюсах убогие, тем более замедляют код и заставляют разбухать бинарь, они легко вызывают утечки памяти и ресурсов без блока finally, я уже давно сделал вывод что плюсы - это си после таксидермиста, убогое чучело набитое соломой. Кучи способов инициализации, кто такое придумал и зачем? int a = {0}, int a {0}; Даже не смотря на убогую наркоманию в шаблонах - они безумно медленно компилируются, последний раз я использовал библиотеку sol2, - это враппер для луа, красивый, весь такой, шаблонный, подключив хедер и создав стейт, сей файл уже начал собираться ~7 секунд, а это было 30 строк кода и 5 из них обращения к библиотеке.
  3. 1 балл
    "Дело было вечером, Делать было нечего." С. В. Михалков Писал я себе спокойно программы на Java, но захотелось мне изучить C++. С этим я легко справился и подумал - что бы мне такое написать для практики? Решил написать что-нибудь с использованием какой-нибудь интересной библиотеки. Например Lua. Тут я и вспомнил про OC и решил накодить эмулятор. Не буду про него ничего писать - просто оставлю ссыль на реп - вот. Там в ридми все разжевано. Эмулятор написан на C++ с использованием библиотек lua и SDL. Код писал полностью сам, кроме поддержки юникода - библиотеку для этого я нашел на гитхабе и Crl+C Ctrl+V (ну лень было разбираться в этих кодировках). Эмулятор еще написан не до конца, но OpenOS на нем работает. Сейчас пишу поддержку интернет-карт. Да, я знаю о том, что этих эмуляторов уже хоть пруд пруди, но вдруг кому-то мой покажется лучше. В общем, пользуйтесь на здоровье.
  4. 0 баллов
    К сожалению так и не услышал, чем именно. Мне вот, например, в Rust механизм обработки ошибок не нравится. А в C как будто нет? А зачем обновлять если и так уже есть все что нужно? А в продакшене его используют, еще как. Rust и C/C++ не всегда предназначены для одних и тех же вещей - на C/C++ ты можешь делать все - десктопные приложения, мобильные приложения, да хоть драйвера пиши.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...