Computer Language Shootout Scorecard

Back to the Language Shootout
Back to Doug's Homepage

[NEWS]   [Editorial]   [FAQ]   [Methodology]   [Performance Tips]   [Download]   [Activity Log]   [Acknowledgements]   [Scorecard]   [Slash-Holed]   [Rules for Benchmark Writers]   [Conclusion]   [Todo]  

Which languages is best? Here's the Shootout Scorecard!

Warning! This page is just for fun :-)

Please bear in mind that this is a work in progress, if you come back tomorrow, everything may be different.

Some people have suggested that I summarize the results, or declare a winner. In order to satisfy this request, I have come up with a unique and subtle quantification system to score languages on their overall performance, which I call the Completely Random and Arbitrary Point System!, or CRAPS![TM], for short. (See bottom of page for a brief description of this analytical marvel).

The scores in the Scores table can reflect CPU, Memory and/or Lines of Code (LOC). The lower a language's measured CPU, Memory, or LOC is for a test, the more points it gets. But the language doesn't get any points if it is missing an entry for a test (an incentive to complete all tests :-). You can choose a multiplier for any of CPU, Memory and LOC scores below. By default, we just show the CPU score alone. Also, each test is weighted, because some tests are more important than others (the default weights in the table below reflect my personal preferences). But you can change the weights and the multipliers however you like, because after all, benchmark results should reflect the priorities of the person viewing them.

Once you have selected the weights and multipliers to your satisfaction, you can recalulate the scores and use the resulting URL on your language advocacy page as the final proof of your favorite language's supremacy! Think of the glory.

Of course, it's also possible that my results are flawed, and playing with this silly CGI is just a waste of time.

Reset

CPU Score Multiplier:   Memory Score Multiplier:
Lines of Code Multiplier:

WEIGHTS
TestWeightTestWeight
Ackermann's Function Array Access III
Count Lines/Words/Chars Echo Client/Server
Exceptions Fibonacci Numbers
Hash (Associative Array) Access Hashes Part II
Heapsort Hello World
List Processing Matrix Multiplication
Method Calls Nested Loops
Object Instantiation Producer/Consumer Threads
Random Number Generator Regular Expression Matching
Reverse a File Sieve of Eratosthenes
Spell Checker Statistical Moments
String Concatenation Sum a File of Numbers
Word Frequency   
SCORES
Language Implementation Score Missing
Cgcc7520
Ocamlocaml7510
SMLmlton7510
C++g++7430
SMLsmlnj7360
Common Lispcmucl7340
Schemebigloo7301
Ocamlocamlb7180
Javajava7030
Pikepike6470
Forthgforth6372
Lualua6152
Pythonpython5780
Perlperl5770
Rubyruby5460
Eiffelse5124
Mercurymercury4898
Awkmawk4566
Haskellghc4505
Lisprep4243
Iconicon4157
Tcltcl4043
Javascriptnjs3975
Schemeguile3960
Forthbigforth37610
Erlangerlang3188
Awkgawk3146
Emacs Lispxemacs3119
Schemestalin20717
PHPphp1979
Bashbash10814
Languages that compile to native code are in Bold Italics.

The CRAPS! point system works thusly:


Back to the Language Shootout
Back to Doug's Homepage
Send me comments or suggestions.