472,374 Members | 1,377 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,374 software developers and data experts.

googling for fun (and profit...? naah!-)


(Note: you need to download & install Mark Pilgrim's pygoogle, see
http://diveintomark.org/projects/pygoogle/ , get a personal license to the
google api, see http://www.google.com/apis/ , save it in a file such as
"googlekey.txt" in your home directory [pygoogle looks in several places,
see http://diveintomark.org/projects/pygoogle/readme.txt for the list]).

So, a little script such as...:

#! /usr/local/bin/python2.3
# programming languages popularity web-survey

import google
import time

def quoter(xs): return ['"%s"'%x for x in xs]
langs = '''
python ruby perl caml java haskell lisp eiffel sml scheme
fortran ada forth apl javascript ecmascript vbscript vba sql
bash awk tcsh csh zsh ksh autolisp elisp occam intercal basic
abc algol applescript assembly befunge beta chill cobol dylan
erlang pascal delphi idl limbo smalltalk squeak m4 matlab logo
foxpro turing tcl snobol simula setl self rexx rebol postscript
php oz modula ml miranda mercury mumps oberon sather stackless
functional procedural parallel hpf agile extreme database
relational rpg
'''.split() + quoter([
'visual basic', 'object pascal', 'objective c', 'c++', 'c#', 'c',
'stackless python', 'object oriented',
])

# ensure all duplications are removed
langs = dict.fromkeys(langs).keys()

print 'examining %d terms' % len(langs)
results = []
for i, lang in enumerate(langs):
while True:
print '%2d: %20s' % (i, lang.strip('"'), ),
try: data = google.doGoogleSearch(lang + ' programming')
except Exception:
print "... likely internal server error, we wait & retry... "
time.sleep(0.5)
else:
results.append((data.meta.estimatedTotalResultsCou nt, lang))
print '%9d' % data.meta.estimatedTotalResultsCount
break
results.sort()
results.reverse()
print
print
print '%20s %9s' % ("Language", "# of hits")
print

for numb, lang in results:
print '%20s %9d' % (lang.strip('"'), numb)
Gives me the following results:

Language # of hits

c 4980000
database 3750000
basic 3750000
java 3320000
self 2000000
php 1880000
c++ 1860000
perl 1640000
sql 1150000
logo 1070000
parallel 1030000
javascript 1030000
functional 997000
object oriented 944000
visual basic 847000
beta 745000
python 729000
scheme 693000
assembly 687000
forth 591000
extreme 572000
c# 506000
relational 377000
delphi 354000
fortran 344000
pascal 329000
postscript 297000
tcl 277000
abc 259000
lisp 220000
procedural 204000
ml 201000
ada 196000
vbscript 181000
cobol 171000
foxpro 137000
vba 123000
matlab 111000
smalltalk 101000
ruby 97900
bash 87400
mercury 86800
rpg 81600
oz 78500
turing 72200
rexx 66100
agile 62700
eiffel 58300
idl 58100
haskell 55100
awk 53100
mumps 49800
chill 47600
objective c 44900
modula 39000
apl 38800
csh 31700
dylan 31500
simula 30600
erlang 29900
m4 28000
squeak 24400
miranda 24300
applescript 24000
object pascal 23900
algol 21000
ksh 17900
tcsh 17600
sml 16000
oberon 15400
caml 15300
hpf 11900
limbo 11400
rebol 10800
occam 10300
elisp 8780
ecmascript 7080
zsh 5640
autolisp 5430
sather 4260
snobol 3900
intercal 2700
setl 2010
stackless 1040
befunge 951
stackless python 431

of course there are quite a few anomalies here -- e.g. i think there is
no automatic way to "clean" the C hit count from the hits for objective c,
c++, c# -- basic from visual basic -- and so on. But then, this is for
fun, not a scientific query, which is why i've mixed other catchwords
with the programming languages as I thought of them.

Doing some "eyeball cleanup" we can see that c, net of c++, c# etc, must
be a little below Java; basic, net of visual basic, ditto. 'self' is
alas too unlikely to refer to that little-known though interesting
language:-). similarly for 'logo', 'beta', ... -- and 'sql' is likely
to be mixed up with many other languages too.

So, I think the top ten places, in order, for actual languages, are really:
java
c (not objective/c++/c#)
basic (not visual)
php
c++
perl
javascript
visual basic
python
scheme

not too surprising, I guess. One could explore a bit more of course
(e.g. specifically look for 'basic -visual' etc etc) but I'm running
a bit short of my daily 1000 searches so I'm gonna leave that fun to
you, o readers. Points to ponder: the preponderance of visual basic
over python, and of python over scheme, is really small; the latter
may perhaps be explained by some occurrences of 'scheme' as an ordinary
word rather than the language name, and the former by the fact that the
typical web usage of many visual basic programmers is unlikely to include
writing websites about VB, compared to the web usage of Pythonistas.

If scheme's apparent popularity does turn out to be an artefact, then
forth (or is it an artefact from "go forth" etc...?-), assembly (but IS
that used in the programming sense...?), and C# are the other possible
contenders for the coveted tenth place. After the contenders for the
top places we have a (to me!) somewhat surprising bunch -- delphi,
fortran, pascal, postscript (!), tcl, abc (!?), lisp, ml, ada, and
vbscript in this order. Wow -- how are the mighty fallen! -- cobol
is BELOW this second bunch...!

Coming to buzzwords that aren't programming languages, other
surprises await: "functional" edges out "object oriented", "extreme"
is WAY more popular than "procedural" (yeah right:-), "agile"
programming isn't as popular a term as I'd have thought (but still,
more than eiffel...:-).

Plenty of other food for flamewars here -- can mercury AND oz
really be THAT much more popular than haskell, erlang, caml -- the
latter badly outscored even by OLD miranda -- and ML so WAY more
popular than ALL other pure functional languages & dialects (and
indeed even more than ada, vbscript, cobol, foxpro, vba, matlab,
smalltalk, ruby, bash...)...?!

googling sure IS plenty of fun!!!-)
Alex

Jul 18 '05 #1
0 1258

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: darren.brierton | last post by:
Hi! We've been building a pretty big web app here for internal use. SMS text messages come in from an aggregator and are stored in a MySQL 4 db. Our operators then deal with them using a web...
0
by: Jonathan Trevor | last post by:
Hi, Spent nearly 8 hours googling and trying code on this yesterday without much success. I'd like to write a .NET application (using .NET primitives, older Win32 calls, or WMI etc) to work out...
1
by: Samuel Checker | last post by:
We're trying to automate inserting system DSNs using a .reg file. The file works up to a point, but so far I have not found a way to insert the proper password. The authentication method is SQL...
20
by: ishmael4 | last post by:
hello everyone! i have a problem with reading from binary file. i was googling and searching, but i just cant understand, why isnt this code working. i could use any help. here's the source code:...
81
by: Matt | last post by:
I have 2 questions: 1. strlen returns an unsigned (size_t) quantity. Why is an unsigned value more approprate than a signed value? Why is unsighned value less appropriate? 2. Would there...
4
by: Phil | last post by:
k, here is my issue.. I have BLOB data in SQL that needs to be grabbed and made into a TIF file and placed on the client (could be in temp internet dir). The reason we need it in TIF format is...
4
by: azrael | last post by:
hy guys i've been googling and got several posts, but nothing that is a satisfaction in my eyes. can someone tell me a nice uml diagram tool with python export (if possible nice gui), or at...
3
by: BLUE | last post by:
Only SQL Server 2005 or also DB2, Oracle and MySQL? Thanks, Luigi.
4
by: =?Utf-8?B?SHVnaA==?= | last post by:
Hi there I have a Propertygrid in a C# project that has a number of IP addresses displayed. What I would like to do is to a) Edit them in-place as the 4 octets, ie edit them as xxx.xxx.xxx.xxx...
2
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was proposed, which integrated multiple engines and...
0
Oralloy
by: Oralloy | last post by:
Hello Folks, I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA. My problem (spelled failure) is with the synthesis of my design into a bitstream, not the C++...
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
1
by: ezappsrUS | last post by:
Hi, I wonder if someone knows where I am going wrong below. I have a continuous form and two labels where only one would be visible depending on the checkbox being checked or not. Below is the...
0
by: jack2019x | last post by:
hello, Is there code or static lib for hook swapchain present? I wanna hook dxgi swapchain present for dx11 and dx9.
0
DizelArs
by: DizelArs | last post by:
Hi all) Faced with a problem, element.click() event doesn't work in Safari browser. Tried various tricks like emulating touch event through a function: let clickEvent = new Event('click', {...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.