В каждой ОС есть удобные для разработчика способы настроить окружение: например, для C++ это
- conan.io, brew (linuxbrew) и checkinstall на онтопике
- brew (homebrew) на полутопике
- vcpkg (для Visuals C++) или pacman (в составе MinGW) на оффтопике.
Во всяких нодах и питонах есть свои npm и pip.
Есть известные требования современных хипстеров:
- Если Javascript, то надо поставить свежий Node.js, настроить linter, настроить автофоматирование, настроить Google Closure Compiler
- Если Typescript, то примерно как JS, только вместо Google Closure Compiler будет компилятор Javascript
- Если C++, то надо поставить свежий GCC или Clang + разобраться с линковкой STL (желательно линковать статически), накатить серию библиотек (типа boost, glm, SDL2 и т.д.), настроить себе clang-format и clang-tidy
- И ко всему бы ещё поднять continious integration где-нибудь в Jenkins или Travis
Да вот беда, когда начинаешь разбираться что к чему настроить, вылезает куча древних руководств, которые в огромных талмудах, часто разбитых на десятки страниц, льют воду о вещах, не нужных хипстеру. И на выходе какое-нибудь старое окружение, например без C++17 и без линтеров. Или сайты с такой ужасной вёрсткой, что даже очки в толстой оправе не спасут и хочется просто закрыть их навсегда.
А встречались ли нормальные, хипстерские туториалы или воркшопы? Из разряда: здесь у нас будет окружение для $LANGUAGE_NAME, так оно будет выглядеть, такие входные требования к системе/окружению, вот серия статей, где модуль за модулем мы будем настраивать всё это. Не хочешь ставить отдельный модуль - пропускаешь статью и читаешь дальше.
Пока видел только такой воркшоп: Continuous integration для C++ разработчика. Там сразу понятно что на входе, на выходе и как это будет выглядеть.
Ну или хороший воркшоп по libFuzzer: Modern fuzzing of C/C++ Projects
Не то чтобы я новичок и нуждаюсь в пошаговых указаниях, но полгода назад самому пришлось разбираться, как нормально собрать себе свежий Clang и CMake для экспериментов с C++17 (в итоге написал небольшой shell-скрипт для сборки и для запуска checkinstall).
А сейчас на оффтопе так же разбираюсь с MinGW, который как оказалось существует в трёх вариациях (MinGW, MinGW-w64 и TDM GCC), из которых первая ещё и самая зашкварная (в ней даже заголовок <mutex> не работает, вот стыдоба-то).