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
signature.asc
Description: Digital signature
.-----------------------------------. | This has been a P.L.U.G. mailing. | | Don't Fear the Penguin. | | IRC: #utah at irc.freenode.net | `-----------------------------------'
