Interesting Quote (anthropology and language)

Michael Halcrow mike at halcrow.us
Fri Aug 12 20:36:52 MDT 2005


On Fri, Aug 12, 2005 at 09:51:04AM -0600, Hans Fugal wrote:
> Leverage your language/API design such that things are so easy it
> seems like magic. Perl 6 looks like a good language.

Ladies and Gentlemen, may I invoke... The Wisdom of Crowds:

http://sourceforge.net/softwaremap/trove_list.php?form_cat=160

So I (ironically) whipped up a Perl script to parse and sort this list
as it is copied-and-pasted from my web browser to my EMACS editor:

---
#!/usr/bin/perl
while(<>) {
    if ($_ =~ /\s*(.*)\s\((\d+)\sprojects\)/) {
        push(@proj_array, {num=>$2, name=>$1});
    }
}
@sorted_array = sort {$b->{num} <=> $a->{num}} @proj_array;
foreach $h (@sorted_array) {
    print "$h->{name}: $h->{num}\n";
}
---

Of course, this could have been done using shells+pipes w/ sed, sort,
etc., and some of the Perl nuts on this list could rewrite that
program in a more concise and less esoteric manner, but let's try to
stay on task here. :-)

The most popular (top 20) results are:

C++: 16018
Java: 15739
C: 15326
PHP: 11500
Perl: 6001
Python: 4240
C#: 2620
JavaScript: 2512
Visual Basic: 2131
Delphi/Kylix: 1852
Unix Shell: 1755
Assembly: 1577
PL/SQL: 1115
Tcl: 889
Objective C: 702
ASP: 546
Ruby: 363
Pascal: 339
Lisp: 317
Object Pascal: 268

Okay, so what does this mean? I would argue that when people choose to
write something ``Just For Fun'', they tend to choose a language that
they have a personal affinity toward. I would imagine that the
majority of projects on SourceForge constitute ``Just For Fun'' type
projects (with openCryptoki and eCryptfs being notable exceptions
;-).

Much to my chagrin, C++ and Java both seem to trump C (but not by
much).

Perl is used about a third of the time that either C++, Java, or C are
used.

PHP quantitatively spanks Perl, with almost double the number of
projects.

Python is a respectable second to Perl, given their relative maturity.

Visual Basic ranks 9th, threatening the legitimacy of this entire list
in the first place. ;-)

What's this? Pascal trumps Lisp??

And Objective Caml doesn't even make the list... it has a measly 40
projects to its name and ranks #40 (coincidence? I think not!).

In my compiler theory course last semester, my professor really had a
thing for Lisp. He just couldn't stop extolling its virtues. So I
pulled up this list and called him on it right in the middle of one of
his Lisp diatribes. ``If Lisp is so great, why is it that Lisp only
has 300-some-odd projects on SourceForge, whilst C, C++, and Java,
respectively, have 15,000-some-odd projects?''

He stammered a little, and then gave an answer along the lines of,
``Uh... well... it has to do with momentum. These other languages are
just so popular that other, clearly more superior languages, like
Lisp, just don't stand a chance! And then schools fail to teach this
great language, and the cycle continues...'' The skeptic in me
stirs... Lisp has been around much longer than Java. If Lisp is so
much better, why did Java trump it so decidedly in the marketplace,
being such a relatively new player on the field?

We can start a laundry-list of reasons. Marketing, support, libraries,
etc. But I tend to subscribe to the concept that we humans are ``Meme
Machines.'' We have templates for our concepts, and any language that
templatizes most effectively is adapted and transmitted from mind to
mind in the competitive human ``idea-space.'' This is why ``objects''
have been such a popular concept in programming; they naturally
reflect our ontological perceptions.

So thus any language that merges most intuitively with the human
experience is the best. Any language that requires radical departure
from human thought patterns or -- if you will -- templates, while
theoretically more efficient for implementing certain algorithms, are
simply incompatible with our natural way of thinking. Thus, less
capable languages may be better fit for use by mere mortals.

I know there's a research topic in here somewhere. Maybe I'll see if I
can't get a paper accepted to WMSCI 2006.

And now for a reading list of anthropological works that you may find
relevant to the topic at hand:

http://www.amazon.com/exec/obidos/ASIN/019286212X/qid=1123900398/sr=2-1/ref=pd_bbs_b_2_1/103-0212459-3427815

http://www.amazon.com/exec/obidos/ASIN/0465006965/qid=1123900420/sr=2-1/ref=pd_bbs_b_2_1/103-0212459-3427815

http://www.amazon.com/exec/obidos/ASIN/0385503865/qid=1123900450/sr=2-1/ref=pd_bbs_b_2_1/103-0212459-3427815

http://www.amazon.com/exec/obidos/ASIN/1578517095/qid=1123900474/sr=2-1/ref=pd_bbs_b_2_1/103-0212459-3427815

Mike
.___________________________________________________________________.
                         Michael A. Halcrow                          
       Security Software Engineer, IBM Linux Technology Center       
GnuPG Fingerprint: 419C 5B1E 948A FA73 A54C  20F5 DB40 8531 6DCA 8769

"The Bible tells us, 'The fool hath said in his heart, There is no   
God.'  There is another kind of fool, who says, 'There is only one   
God, and it is the God that I worship.'"                             
 - Joseph Campbell 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 481 bytes
Desc: Digital signature
Url : http://plug.org/pipermail/plug/attachments/20050812/f233bed7/attachment.bin 


More information about the PLUG mailing list