Обновить

ncpp: Как создать самодостаточную экосистему на С++98 в 2026 году, которая запустится даже на железе со свалки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели15K
Всего голосов 17: ↑14 и ↓3+13
Комментарии10

Комментарии 10

Всё ещё не понятно, зачем? Зачем брать железо со свалки и linux 2.6 в 2026 году и страдать, вместо нормальных инструментов? Неужели ваше время настолько дёшево, что оно дешевле нормального железа?

В России живём, сам понимаешь. Как только закончится нормальное железо, придётся на старых вёдрах работать, и дауншифтинг может помочь адаптироваться к ситуации, когда и работающая, и производимая внутри страны техника по мощности достигает уровня девяностых годов.

Попробуйте мыслить шире обычной коммерческой выгоды.

Допустим, по какой-то причине я решил, что мне не нужна коммерческая выгода. Допустим, я решил, что вместо покупки дешёвого и современного железа целесообразнее потратить больше денег на закупку устаревшего железа. И всё же, что заставит меня страдать со старыми языками вместо современных инструментов? Что заставит меня взять не оптимальное железо? Сейчас даже микроконтроллеры за десяток центов могут запустить код на Rust или на современном C++ 20.

Глянул репозиторий. Не знаю как остальным - мне не понравилось. Смотрел файлы из подкаталога net. Много кода в одну строку, это стиль такой? Дальше логика замешана с абстракциями разных платформ, WIN32 и Linux - все одной сплошной стеной, в одном файле.
Кстати, почему только Linux, а где BSD, MacOS? И epoll не всегда лучший вариант - по мне правильнее было бы предоставить пользователю выбрать какой мультиплексор ему больше подойдет.
PS. Move для C++98 пишется не так - текущая реализация просто опасна. Пример хорошей реализации move-семантики для C++98/03 cм. здесь.

Согласен по поводу стиля. Не люблю придираться по этому поводу, но увы, он ужасен.

Ещё мне непонятен момент включения .cpp файлов как заголовочных. А если расписать все нюансы репозитория то получится текст больше чем эта статья.

Было бы любопытно услышать расширенный список “нюансов”, если конечно будет время и желание.

Начните со стиля.

проект же предлагает использовать CamelCase для более удобного восприятия кода

Если верить некоторым исследованиям, то snake_case требует чуть меньше зрительных усилий, чем CamelCase. Особенно хорошо это демонстрирует пример с IHateIbm (i_hate_ibm).

Зачем вшивать opengl32.dll в бинарник? Просто положите его рядом.
Если, вдруг кому-то надо решить проблемы совместимости, он либо положит свой opengl32.dll, либо навесит hook на загрузку dll и пропатчит реализацию нужных функций.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации