Abstract
In this paper we propose a new method for measuring shittiness of
programming languages, which is a quality inversely proportional
to usefulness of a programming language.
Background
Google is a popular ``search engine'', i. e. a tool which allows an
internet user to make queries and see how often the requested words
appear in publications.
Programming languages are designed to be used by humans, thus looking
at the amount of disgrunted users should accurately describe the level
of shittiness of a particular language: the better the language, the
less negative statements are posted about it.
Methods
Data was collected by following this simple algorithm:
1. Go to
http://google.com/
2. For programming language in languages: make a query of the form
"unfortunately it was written in %s" (substitute %s with the name
of the programming language)
3. Look at the top of the page where it says ``about
X results
(Y seconds)''.
X will be the exact level of shittiness.
Exact order of queries is not important, which makes this algorithm
highly parallelizable.
Analysis
This metric lets us categorize languages into a small number of
categories, or
tiers, according to data extracted from Google
using our algorithm.
-
GOD TIER:
-
Lisp = 0 (``
No results found for "unfortunately it is
written in lisp"'').
-
Scheme = 0.
-
Haskell = 0.
-
COBOL = 0.
- OK tier (purely functional languages with one notable exception):
-
Scala = 2, which allows us to make an educated guess that
it is severely inferior to Haskell.
-
JavaScript = 1, which is expected because JS in its core
is a dialect of Scheme and inherits almost all of its virtues
while keeping itself small, clean and consistent.
-
CoffeeScript = 1, because it is exactly the same as
JavaScript. This illustrates the validity of our method.
-
OCaml = 8, vastly inferior to both Haskell and Scala.
The only language in this list that can be referred to as
le, e. g.
le OCaml.
-
Common Lisp = 2, because it is well known that CLISP is
much shittier than Scheme. CL is an inconsistent mess, and in
all honesty it should have been in the Shit tier. Apparently
its overwhelming feature-set makes up for the shittiness.
-
Ruby = 9 which is a surprising result because according
to general consensus Ruby must appear in the Shit tier with
other dynamic imperative languages for retards such as Perl, PHP
or Python. This must be caused by Ruby being, in fact, a great
language (compared to Python).
- Shit tier (poorly designed dynamic languages with no type system
and dumb scoping rules):
-
Perl = 20500. Perl is a well-known write-only language
created by a mentally challenged non-atheist. It is roughly
10000 times shittier than Common Lisp, a dynamically typed lisp
which can and should replace Perl in every niche.
-
Python = 67900, about 3.5 times shittier than Perl, which
confirms findings about Python usability made by perl-monks.
-
PHP = 70400. PHP is the shittiest of these three by a
slight margin, as it has all the drawbacks of Python, and adds a
couple more of its own.
-
ABYSMAL SHIT TIER:
-
C = 194000, nothing comes close to having to juggle
pointers and having to do manual memory management like it's
still 1960's.
-
Java = 141000, more tolerable than C due to lack of
manual memory management. Unfortunately for Java, its other
qualities such as being
ENTERPRISE drove it into this tier.
Conclusion
In this paper we have demonstated that Haskell and Scheme, along with
a few other languages, belong to the God Tier. We have proven
expreimentally that PHP, Python and Perl are of comparable shittiness,
better than C and Java but being orders of magnitude more shitty than
purely functional programming languages.
We have also shown that Python is roughly 7500 times shittier than
Ruby, which we hope will settle the Python-vs-Ruby debate once and for
all.
We expect other teams to replicate our results and thus help us
reaffirm the validity of this metric.
Acknowledgements
Who should I thank? My so-called ``colleagues,'' who laugh at me
behind my back, all the while becoming famous on my work? My
worthless graduate students, whose computer skills appear to be
limited to downloading bitmaps off of netnews? My parents, who are
still waiting for me to quit ``fooling around with computers,'' go to
med school, and become a radiologist? My department chairman, a
manager who gives one new insight into and sympathy for disgruntled
postal workers?
If I thought anyone cared, if I thought anyone would even be reading
this, I'd probably make an effort to keep up appearances until the
last possible moment. But no one does, and no one will. So I can
pretty much say exactly what I think.
Oh, yes, the acknowledgements. I think not. I did it. I did it all,
by myself.
References
- Google, Inc.
http://google.com/
Appendix A: Raw data
Data is given in the popular JSON format.
{
"python": 67900,
"javascript": 1,
"haskell": 0,
"cobol": 0,
"php": 70400,
"ruby": 9,
"c": 194000,
"java": 141000,
"scala": 2,
"lisp": 0,
"ocaml": 8,
"common lisp": 2,
"perl": 20500,
"coffeescript": 1,
"scheme": 0
}