Haskell vs C++: 30 Metrics Comparison

Haskell vs C++

Haskell

Haskell is a Functional, Pure programming language first appeared in 1990, designed by Haskell Committee. Main use cases: Functional Programming, Academic Research, Type-Safe Applications.

C++

C++ is a Procedural, Object-Oriented, Generic programming language first appeared in 1985, designed by Bjarne Stroustrup. Main use cases: Systems Programming, Embedded, Performance-Critical Applications.

30 Metrics

Metric Haskell C++
GitHub Stars 43551 65302
Stack Overflow Tags 566327 832809
TIOBE Rank 69 7
RedMonk Rank 59 11
PYPL Rank 71 9
Average Salary (USD) 101476 128124
Job Postings 28477 43598
Benchmarks Score 0.74 1.05
Learning Curve Medium Hard
Community Size Large Very Large
Documentation Quality 7 10
Ecosystem Maturity 7 10
Industry Adoption 8 10
Type System Complexity 5 7
Concurrency Support 8 10
Performance - Execution Speed 9 9
Performance - Memory Usage 9 8
Performance - Startup Time 9 7
Tooling Quality 5 10
Package Manager Quality 5 10
IDE Support 5 10
Debugging Experience 5 10
GitHub Stars Rank 53 5
Stack Overflow Tags Rank 56 11
Average Salary Rank 52 13
Job Postings Rank 55 5
Benchmarks Rank 42 2
Learning Curve Score 6 3
Community Size Score 7 10
AHP Score 6.6 8.5

AHP Score

  • Haskell: 6.6 (#41)
  • C++: 8.5 (#1)
Haskell         | ####### 6.6
C++             | ######## 8.5

When to choose Haskell

Functional Programming, Academic Research, Type-Safe Applications. Haskell is a Functional, Pure programming language first appeared in 1990, designed by Haskell Committee. Main use cases: Functional Programming, Academic Research, Type-Safe Applications.

When to choose C++

Systems Programming, Embedded, Performance-Critical Applications. C++ is a Procedural, Object-Oriented, Generic programming language first appeared in 1985, designed by Bjarne Stroustrup. Main use cases: Systems Programming, Embedded, Performance-Critical Applications.

Hello World Example

Haskell:

main = putStrLn "Hello, World!"

C++:

#include <iostream>
int main(){ std::cout << "Hello, World!"; }

Other languages