Proceed to Safety

Programming Languages: The Internet's Current Opinion    

  total |sucks . . . . . . . debatable . . . . . . . rules| 
   hits +-------------------------------------------------+ 
8.249e9 |                                                 |
        |                                                 |
        |                                               O |
        |                                                 |
2.174e9 |                                                 |
        |                                                 |
        |                                                 |
        |                                                 |
5.732e8 |                                                 |
        |                                                 |
        |                                                 |
        |                                                 |
1.511e8 |                                                 |
        |                                                 |
        |                                                 |
        |                                                 |
3.982e7 |                                                 |
        |                                                 |
        |                                              F  |
        |                                                 |
1.050e7 |                                                 |
        |                                                 |
        |                                                 |
        |                                                 |
2767163 | P                                               |
        |                                                 |
        |                                          C      |
        |                                                 |
 729416 |                                                 |
        |                                   L             |
        |                                                 |
        |                                                 |
 192272 |B                    P              R            |
        |           F                         P   P  C    |
        |   T                                             |
        |                                                 |
  50682 |                                                 |
        |                                           J  M  |
        |                                 J            A  |
        |                                        P        |
  13359 |                                             S   |

      A = AppleScript    B = Basic          C = C and C++     
      C = COBOL          F = forth          F = fortran       
      J = Java           J = JavaScript     L = lisp          
      M = Maple          O = Objective C    P = Pascal        
      P = Perl           P = PHP            P = PostScript    
      P = Python         R = Ruby           S = Smalltalk     
      T = Tcl           

Updated Sun Jul 21 06:49:28 2024 GMT. (s30)

The numbers come from Yahoo queries3. For example, a search for +"JavaScript sucks" will reveal that there are 2930 web pages containing the text 'JavaScript sucks'1. That number, along with the results of queries for 'JavaScript rocks' and 'JavaScript rules', is used to plot the position of the symbol 'J' on the chart. (As you can see, this paragraph rates JavaScript ambiguously — and that reflects rather accurately how I feel about JavaScript :-) The chart is updated daily2.

Languages that appear higher on the chart (like Objective C) appear on a greater total number of web pages. Languages that appear closer to the right side of the chart (like Objective C) have a greater 'rules/sucks' ratio — that is, they appear more often with 'rules' than with 'sucks'. However, you should keep in mind that languages near the bottom of the chart are not mentioned on many web pages, so their horizontal position isn't as accurate an indicator of their true karma.

You might notice that there aren't many popular languages that suck — that is, there are not many languages near the upper-left corner of the chart. This confirms the theory that really sucky languages never become widespread enough to be mentioned on lots of web pages.

On the other hand, there are plenty of unpopular languages that rule (these appear in the bottom-right portion of the chart). In most cases, these are specialized languages — they do some limited job really well, but haven't become popular because they are limited to specific types of tasks. In rare cases, these are new languages that will someday rule the world but currently only rule their early adopters.

Regarding the data collection: As already mentioned, these data points come from search engine results. Some languages, such as Python, require the use of stop words (such as 'monty') to prevent unrealistic results from being plotted. The languages C and C++ both appear on the chart as 'C' because their names make it impossible to search for one without finding the other. Other languages are missing simply because I have overlooked them or do not consider them important. Suggestions are welcome, but will not always be accepted. In particular, I consider particular brands of a language to be insignificant except in cases (like Maple and AppleScript) where the brand is the language. I also don't care much about specialized languages (PHP is an example, but it rules so much I couldn't restrain myself :-)

NOTE: The statistics for Basic actually consist almost entirely of references to Visual Basic. Since there are also a couple other Basics, I decided to lump them all together and call it just "Basic".

NOTE: Prolog, REXX and Haskell are not included because the word rules has a special meaning in those languages (as a plural noun), making the 'rules' counts meaningless.

The vertical scale, which shows the number of hits, is logarithmic. Over the lifetime of this web page (which went live in 2000) the top of this scale has increased from 13359 to its present value. (the old URL was )

This page is inspired by the awesome Operating System Sucks-Rules-O-Meter which you are encouraged to visit if you like this sort of thing. I also have a certain fondness for now-defunct Tool of Objective Truth formerly featured at ZDNet UK.

If you are running Linux (Linux rules) and know Perl (Perl rules even more than Objective C) you might be interested in the source code for the program that generates this page. Note in particular how it recomputes parts of the explanatory text to match the chart. The output it generates is in RHTF (Readable HyperText Format), part of my automated web authoring system.


Raw data from Yahoo Search queries:

                   Language    Sucks    Rules or Rocks                    Language    Sucks    Rules or Rocks
AppleScript 870 21890 Objective C 29600 3820132756
Basic 194000 3745 Pascal 104000 83090
C and C++ 134000 1119000 Perl 20600 137700
COBOL 9050 132800 PHP 3540 18200
forth 111000 33690 PostScript 2970000 105800
fortran 466330 21079000 Python 27500 93800
Java 8110 18140 Ruby 40400 125200
JavaScript 2930 28130 Smalltalk 607 11100
lisp 138900 397240 Tcl 99900 7580
Maple 1300 33480



1 : NOTE: On the first results page, the number of results might be in the millions. This number is a crude estimate and is often completely wrong. But if you proceed to go through the results page by page, the number of results will eventually be computed 'for real'. The lang_srom script gets a more accurate count in a single query by requesting the 1000th results page. This query coerces the server to figure out how many matches there arctually are.

2 : Although the chart is updated daily, most of the queries are performed less often and cached to reduce impact on the search engine.

3 : Before Yahoo, it used AltaVista. You can read about AltaVista'a history in's article about AltaVista by Claire Broadley.

The Programming Languages Internet Opinion Chart is older than Google.

It is based on a similar page for operating systems created by Don Marti.

Both were made possible by

AltaVista® logo

and the present implementation is powered by Yahoo! Search.

Yahoo! Search® is a registered trademark of the Yahoo Company. This site is not endorsed by, sponsored by, or affiliated with Yahoo. AltaVista® and the AltaVista® Logo were trademarks of AltaVista® Company, and are now owned by Yahoo. AppleScript® is a registered trademark of Apple Computer, Inc. JavaTM and JavaScript® are registered trademarks of Sun Microsystems. Linux® is a registered trademark of Linus Torvalds. Maple® is a registered trademark of Waterloo Maple, Inc. PostScript® is a registered trademark of Adobe Systems, Inc. Visual Basic® is a registered trademark of Microsoft Corporation. ZDNet is a trademark of Ziff-Davis Publishing Company.

Robert Munafo's home pages on AWS    © 1996-2024 Robert P. Munafo.    about    contact
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Details here.

This page was written in the "embarrassingly readable" markup language RHTF, and was last updated on 2024 Jul 21. s.30