C++
- Aesthetic Geometry
- 3 out of 10
- Mathematical Elegance
- 7 out of 10
- Linguistic Clarity
- 5 out of 10
- Practitioner Happiness
- 4 out of 10
- Organic Habitability
- 4 out of 10
- Conceptual Integrity
- 5 out of 10
- Total
- 28 out of 60
Character
The gothic cathedral — ornate, imposing, awe-inspiring, occasionally terrifying. Fifty years of features layered onto a C foundation. Template metaprogramming is many things, but visually clean isn't one of them.
Dimension Analysis
Φ Aesthetic Geometry
Template metaprogramming, #include chains, and nested angle brackets (std::vector<std::pair<int, std::string>>) create some of the most visually dense code in any language. Modern C++ is cleaner, but the language's visual floor is very low.
Ω Mathematical Elegance
C++ is Turing-complete at compile time. Template metaprogramming and concepts (C++20) enable powerful abstractions. The mathematical capability is real, but std::transform(v.begin(), v.end(), v.begin(), [](int x){ return x*x; }) vs. Haskell's map (^2) v tells the story, the machinery is always visible.
Λ Linguistic Clarity
Modern C++ is more readable than legacy C++, but the language's accumulated complexity means any line might require knowing 10 different features. Range-based for loops and structured bindings help, but the cognitive load of "which C++ era is this?" persists.
Ψ Practitioner Happiness
Respected for power, rarely enjoyed for developer experience. Build systems, header management, cryptic template error messages, and undefined behavior create constant friction. Developers use C++ because nothing else does what it does, not because they prefer it.
Γ Organic Habitability
Adding a feature to a C++ codebase can require understanding templates, RAII, move semantics, and exception safety simultaneously. The language's complexity makes modification risky. Codebases tend to become more brittle over time as layers of C++ eras accumulate.
Σ Conceptual Integrity
"C with classes" was a clear idea, but 40+ years of committee additions have layered paradigms without full integration. C++11/14 brought more coherence (RAII, value semantics, move), but the language remains a cathedral built by many architects across many centuries.
How are these scores calculated? Read the methodology
Signature Code
RAII + smart pointers
class ResourcePool { std::vector<std::unique_ptr<Connection>> pool_;public: auto acquire() { if (pool_.empty()) pool_.push_back(std::make_unique<Connection>()); auto conn = std::move(pool_.back()); pool_.pop_back(); return std::shared_ptr<Connection>( conn.release(), [this](Connection* c) { pool_.emplace_back(c); } ); }};