Então, mas se for parar pra pensar C++ não traz somente mudanças perceptíveis pra nós, como qualidade de vida e recursos, ele traz uma gama de correções, e melhorias de desempenho (sim ainda hoje inventam formas de compilação mais eficiente em C++), inclusive processamento em tempo de compilação que aumenta a cada nova versão. Isso tudo junto a desings de conceitos modernos adaptados para a realidade de C++ tipo lambdaz e corrotinas. Eu estou pessoalmente muito satisfeito com o avanço que vem sendo mostado (nem consigo estudar tudo oque sai de novo kkkk).
Sobre as libs, eu entendo sua dor, vendo que muita gente sofre por sequer saber adicionar uma lib, mas pegando de exemplo a boost, muitas coisas que deram certo lá se tornaram padrão da linguagem em algum momento (veja sobre std::move e os similares), além disso, tipos que "ofuscam" os tipos já existem, como wxString e entre outros tem seus motivos de implementação para existir.
Tratando de uix, provavelmente esses tipos trazem mutabilidade e reatividade, o que não esta e nunca estará presente em, por exemplo std::string. Mesmo que a certo ponto de vista, em algum momento existirá um inferno de namespaces o qual você tera de lidar, e isso é ruim, más acredito que os modulos da versão mais recente de C++ venham justamente para ajudar a mitigar esses problemas (não cheguei a estudar a fundo módulos c++).
Sobre Cmake, cara, cmake me parece um projeto muito bom, e com força o suficiente pra fazer eu não argumentar sobre precisar algo nativo. Ele simplesmente faz o trabalho muito bem, por que se preocupar em implementar isso sobre trazer outras coisas que foquem nos pontos fracos? Acho que os mantenedores da linguagem também pensam assim.
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.