Actually, the fact that C++ has both more and less aesthetically pleasing subsets is a big problem. It means that different people prefer different ways of doing things for purely visual reasons rather than reasons of overall simplicity and maintainability, and that creates needless conflict and churn.
In contrast, Python has very little variation in aesthetic pleasingness. It's all the same Dutch Utilitarian Modernist, perfectly OK if unexciting to look at (@ metaprogramming is an exception.)
And a contrast in the other direction: nobody ever spent a lot of time tweaking their FORTRAN deck for aesthetics.
Just to pick something on my screen at the moment, consider this C++ from mc-stan:
namespace stan {
namespace math {
namespace {
class cos_vari : public op_v_vari {
public:
explicit cos_vari(vari* avi) : op_v_vari(std::cos(avi->val_), avi) {}
void chain() { avi_->adj_ -= adj_ * std::sin(avi_->val_); }
};
} // namespace
there's like 5 things that irritate me about it. So many underscores!But the big problem is that aesthetic choices interact in complicated ways with architectural decisions. For example, using operator << as syntactic sugar over .add() is motivated by aesthetics, but it affects how you do encapsulation.
A good language lets you choose your architecture, and then write an aesthetically pleasing program to match.