Sim, mas no seu caso, acho que você gosta tanto de C++ que não está conseguindo ver aos olhos das pessoas que nunca mexeram.
Para quem tá acostumado com outras linguagens, essas barreiras somadas fazem a pessoa desistir. A C++ por si só exige que pessoa entenda de memória e etc, aí com esses extras fazem com que muita gente prefira trabalhar com outras linguagens e deixam C++ de lado.
Tipo, wxString tem seus motivos para existir. Mas, se std::string
fosse bom o suficiente, wxString não precisaria existir. E aí, se a pessoa tiver mexendo com wx e outra lib qualquer, ela ainda vai ter que transformar wxString para outra coisa. Se o padrão fosse mais forte, acho que todo mundo usaria só std::string.
Cmake é bom. Mas, dependendo da IDE, a pessoa tem que registrar os .cpp e .h na mão. Outras linguagens nem tem isso. Imagina a frustração da pessoa que não precisa fazer isso agora precisa? Sem falar que aqueles #define HEADER_H
ou #pragma once
deixam a pessoa que não tá acostumada doida.
Aí tem outro ponto: a maioria das pessoas não se importa com a desempenho do código delas. Se funcionou e tá "rápido suficiente", tá bom. Daí por mais que tenha várias otimizações que C++ faz, tanto faz para a maioria.
Eu sou fã de C++, mas acho que linguagem nunca vai ter uma "fanbase" tipo de Rust por coisas assim. Tipo, Rust não sofre com vários desses problemas citados.