Herald: Python surpasses Perl in popularity!

Discussion in 'Perl Misc' started by Xah Lee, Nov 25, 2008.

  1. Xah Lee

    Xah Lee Guest

    herald: Python surpasses Perl in popularity!

    According to
    “TIOBE Programming Community Index for November 2008†at

    it seems that Python has surpassed Perl in popularity this month!

    Good for Python!

    From my own personal experience in the programing industry, i find it
    hard to believe that Python actually surpassed Perl in terms of use in
    companies. Python is used in, Google, as everybody knows, but where
    else? Perl is used in, umm, about every company except Google (and
    probably Google too! in fact).

    A quick search in monster.com, i find that perl returns 2673 results,
    and Python returns 879 results. Perlers, you still safe!

    Looking at other lang popularity site,
    it indicates that it's pretty much a tie.

    So, i think it's not all peaches and cream for Python yet.

    However, am pretty sure it'll be so in the next couple of years.

    (btw, for those perlers who wishes to learn Python, see a comparative

    • Xah's Perl and Python Tutorial

    ∑ http://xahlee.org/

    Xah Lee, Nov 25, 2008
    1. Advertisements

  2. Xah Lee

    Xah Lee Guest

    Re: Python surpasses Perl in popularity?

    On Nov 25, 2:47 pm, Jorgen Grahn <> wrote:
    > On Mon, 24 Nov 2008 20:25:51 -0500, <> wrote:
    > > QuotingXahLee<>:

    > >> herald: Python surpasses Perl in popularity!

    > >> According to
    > >> ?TIOBE Programming Community Index for November 2008? at
    > >>http://www.tiobe.com/content/paperinfo/tpci/index.html

    > >> it seems that Python has surpassed Perl in popularity this month!

    > > Interesting topic !

    > Hard to take a popularity index seriously when Logo is at #19 and
    > Bourne shell at #32 ... and then they suggest that their readers can
    > use it "to make a strategic decision about what programming language
    > should be adopted when starting to build a new software system".

    your remark is a bit overzealous. After all, we all know that site is
    websearh based. Although it not some kinda scientific report, but it
    does give some good indication of language popularity, however you
    define that.

    it is conceivable that logo is somewhat used more than bourne shell.

    first of all, Logo is a lisp dialect. (it's one of the rare lisp sans
    the parens.) The most famous logo book is the triology titled
    something like Computer Science Logo Style, by Brian Harvey, who
    teaches at UC Berkeley and now and then still post to
    “comp.lang.schemeâ€. (who, like some many veteran Scheme Lisp
    dignitaries, cries out against the utter fuckup Scheme 6 (aka R6RS))

    Bourne Shell, is pretty much replaced by Bash since several years ago.
    For example, as far as i know, linuxes today don't have Bourne Shell
    anymore. “sh†is just a alias to bash with some compatibility
    parameter. That immediately wipe out a huge sector of unixes that
    lives on Bourne Shell. This is a good thing. In about 2000 i called
    for this. The fucking asshole Sun Microsystems insists on installing
    at least 3 versions of shell utilities in several directories... (and
    the BSD unixes insist on their inferior stupid versions of shell

    To be sure, Logo is very much a academic lang, mostly for teaching and
    for younsters. Much of its code is about drawing graphics. Some other
    major use of Logo is in robotics, much associated with the Lego
    robotics toys.

    While Bourne Shell, as far as i can venture a guess, is still the
    primary startup scripts in various unixes.

    It is hard to put down exactly which is “popularâ€. We have to first
    define what we mean by popular, of course. Is it number of programers/
    users? Popularity in the sense of awareness? Number of software using
    them out there? etc.

    However, as mentioned before, all things considered, it is conceivable
    that Logo is more popular than sh. For one thing, for any use of shell
    script other than the machine startup scripts, people don't use bourne
    shell anymore. They use bash, maybe tcsh, and probably vast majority
    of unix/server shell oriented installation scripts are done in Perl or
    python today.

    For those interested in languages, see:

    • Proliferation of Computing Languages

    It would be fruitful to actually set aside some 3 hours in some
    weekend, to read thru these and the Wikipedia articles linked. You'll
    get a survey of today's languages, what they are, what they do, their
    nature, their field, and where the landscape of languages might be

    plain text version follows.

    Back to Computing and Its People.
    Proliferation of Computing Languages

    Xah Lee, 2008-07, 2008-11

    There is a proliferation of computer languages today like never
    before. In this page, i list some of them.

    In the following, i try to list some of the langs that are created
    after 2000, or become very active after 2000.

    Functional langs:

    Erlang↗. Functional, concurrent. Mostly used in a telecomunication
    industry for corcurrency and continuous up-time features.
    Haskell↗ Oldish, classic functional lang.
    Mercury↗. Logic, functional.
    Q↗. Functional lang, based on term rewriting. To be replaced by Pure↗.
    Oz↗. Concurrent. Multiparadigm.
    ML Family:

    Alice↗. Concurrent, ML derivative. Saarland University, Germany.
    F#↗. Microsoft's functional lang.
    Lisp family or similar:

    Mathematica↗. Computer algebra system background. Used mostly for math
    and research.
    NewLisp↗. Lisp scripting style.
    Arc↗. Paul Graham squeezing juice out of his celebrity status.
    Qi↗. Common Lisp added with modern functional lang features.
    Clojure↗. A new lisp dialect on Java platform.
    Scheme↗, notably PLT Scheme↗. Used mostly for teaching.
    (Dead. Dylan↗. Apple's re-invention of lisp for industrial programers,
    active in the 1990s.)
    Computer Algebra and Proof systems:

    Coq↗. For formal proofs.
    For much more, see Category:Computer algebra systems↗ and Automated
    theorem proving↗.
    Perl Family or derivative:

    PHP↗. Perl derivative for server side web apps. One of the top 10 used
    langs post 2000.
    Ruby↗. Perl with rectified syntax and semantics.
    Perl6↗. Next gen of perl.
    Sleep↗. A scripting lang, perl syntax. On Java platform.
    On Java Virtual Machine:

    Scala↗. A FP+OOP lang on Java platform as a Java alternative.
    Groovy↗. Scritping lang on Java platform.
    C derivatives:

    ObjectiveC↗. Strict superset of C. Used as the primary language by
    Apple for Mac OS X.
    C#↗. Microsoft's answer to Java. Quickly becoming top 10 lang with
    Microsoft's “.NET†architecture.
    D↗. Clean up of C++.
    2D graphics related.

    Scratch↗. Derived from SmallTalk + Logo.
    Adobe Flash↗'s ActionScript↗. 2D graphics. Quickly becomes top 10 lang
    post 2000 due to popularity of Flash.
    Processing↗. 2D graphics on Java platform. Primarily used for art and

    Linden_Scripting_Language↗. Used in virtual world Second Life.
    Lua↗. Scripting.
    Tcl↗. Scripting, esp GUI.
    JavaScript↗. Web browser scripting.
    Some Random Thoughts

    Following are some random comments on comp langs.

    Listing Criterion and Popularity

    In the above, i tried to not list implementations. (e.g. huge number
    of Scheme implemented in JVM with fluffs here and there; also e.g.
    JPython, JRuby, and quite a lot more.) Also, i tried to avoid minor
    derivatives or variations. Also, i tried to avoid langs that's one-
    man's fancy with little followings.

    In the above, i tried to list only “new†langs that are born or seen
    with high activity or awareness after 2000. But without this
    criterion, there are quite a few staples that still have some user
    base. e.g. APL↗, Fortran↗, Cobol↗, Forth↗, Logo↗ (many variants),
    Pascal↗ (Ada, Modula, Delphi). And others that are today top 10 most
    popular langs: C++, ObjectiveC, Visual Basic.

    The user base of the langs differ by some magnitude. Some, such as for
    example PHP, C#, are within the top 10 most popular lang with active
    users (which is perhaps in order of hundreds of millions). Some
    others, are niche but still with huge users (order of tens or hundreds
    of thousands), such as LSL, Erlang, Mathematica. Others are niche but
    robust and industrial (counting academic use), such as Coq (a proof
    system), Processing, PLT Scheme, AutoLisp↗. Few are mostly academic
    followed with handful of experimenters, Qi, Arc, Mercury, Q,
    Concurrent Clean are probably examples.

    For those of you developers of Java, Perl, Python for example, it
    would be fruitful to spend a hour or 2 to look at the Wikipedia
    articles about these, or their home pages. Wikipedia has several pages
    that is a listing of comp langs, of which you can read about perhaps
    over 2 hundreds of langs.

    Why The List

    I was prompted to have a scan at these new lang because recently i
    wrote a article titled Fundamental Problems of Lisp, which mentioned
    my impression of a proliferation of languages (and all sorts of
    computing tools and applications). Quote:

    10 years ago, in the dot com days (~1998), where Java, Javascript,
    Perl are screaming the rounds. It was my opinion, that lisp will
    inevitably become popular in the future, simply due to its inherent
    superior design, simplicity, flexibility, power, whatever its existing
    problems may be. Now i don't think that'll ever happen as is. Because,
    due to the tremendous technological advances, in particular in
    communication (i.e. the internet and its consequences, e.g. Wikipedia,
    youtube, youporn, social networks sites, blogs, Instant chat, etc)
    computer languages are proliferating like never before. (e.g. erlang,
    OCaml, Haskell, PHP, Ruby, c#, f#, perl6, arc, NewLisp, Scala, Groovy,
    Goo, Nice, E, Q, Qz, Mercury, Scratch, Flash, Processing, ..., helped
    by the abundance of tools, libraries, parsers, existence of
    infrastructures) New langs, basically will have all the advantages of
    lisps or lisp's fundamental concepts or principles. I see that,
    perhaps in the next decade, as communication technologies further hurl
    us forward, the proliferation of langs will reduce to a trend of
    consolidation (e.g. fueled by virtual machines such as
    Microsoft's .NET.).

    Creating A Lang Is Easy

    In general, creating a lang is relatively easy to do in comparison to
    equivalent-sized programing tasks in the industry (such as, for
    example, writing robust signal processing lib, a web server (e.g.
    video web server), a web app framework, a game engine ...etc.).
    Computing tasks typically have a goal, where all sorts of complexities
    and nit-gritty detail arise in the solving process. Creating a lang
    often is simply based on a individual's creativity that doesn't have
    much fixed constraints, much as in painting or sculpting. Many langs
    that have become popular, in fact arose this way. Popularly known
    examples includes Perl, Python Ruby, Perl6, Arc. Creating a lang
    requires the skill of writing a compiler though, which isn't trivial,
    but today with mega proliferation of tools, even the need for compiler
    writing skill is reduced. (e.g. Arc, various langs on JVM. (10 years
    ago, writing a parser is mostly not required due to existing tools
    such as lex/yacc))

    Some lang are created to solve a immediate problem or need.
    Mathematica, Adobe Flash's ActionScript, Emacs Lisp, LSL would be good
    examples. Some are created as computer science research byproducts,
    usually using or resulting a new computing model. Lisp, Prolog,
    SmallTalk, Haskell, Qi, Concurrent Clean, are of this type.

    Some are created by corporations from scratch for one reasons or
    another. e.g. Java, Javascript, AppleScript, Dylan, C#. The reason is
    mostly to make money by creating a lang that solves perceived problems
    or need, as innovation. The problem may or may not actually exist. (C#
    is a lang created primarily to overrun Java. Java was created first as
    a lang for embedded devices, then Sun Microsystems pushed it to ride
    the internet wave to envision “write once run everywhere†and
    interactivity in web browser. In hindsight, Java's contribution to the
    science of computer languages is probably just a social one, mainly in
    popularizing the concept of a virtual machine.)

    Infinite Number Of Syntaxes And Semantics

    Looking at some tens of langs, one might think that there might be
    some unifying factor, some unifying theory or model, that limits the
    potential creation to a small set of types, classes, models. With
    influence from Stephen Wolfram book “A New Kind of Scienceâ€(see:
    Notes on A New Kind of Science) , i'd think this is not so. That is to
    say, different languages are potentially endless, and each can become
    quite useful or important or with sizable user base. In other words, i
    think there's no theoretical basis that would govern what languages
    will be popular due to its technical/mathematical properties. Perhaps
    another way to phrase this imprecise thought is that, languages will
    keep proliferating, and even if we don't count langs that created by
    one-man's fancy, there will still probably be forever birth of
    languages, and they will all be useful or solve some niche problem,
    because there is no theoretical or technical reason that sometimes in
    the future there would be one lang that can be fittingly used to solve
    all computing problems.

    Also, the possibilities of lang's syntax are basically unlimited, even
    considering that they be practical and human readable. So, any joe,
    can potentially create a new syntax. The syntaxes of existing langs,
    when compared to the number of all potentially possible (human
    readable) syntaxes, are probably a very small fraction. That is to
    say, even with so many existing langs today with their wildly
    differing syntax, we probably are just seeing a few pixels in a
    computer screen.

    Also note here all langs mentioned here are all plain-text linear
    ones. Spread sheet and visual programing langs↗ would be example of2D
    syntax... but i haven't thought about how they can be classified as
    syntax. (nor do i fully understand the ontology of syntax↗ )

    This post is posted to:

    ∑ http://xahlee.org/

    Xah Lee, Nov 26, 2008
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Norm Matloff

    STL popularity?

    Norm Matloff, Apr 22, 2005, in forum: C++
    Gerry Quinn
    Apr 24, 2005
  2. Alex Martelli
    Terry Reedy
    Nov 12, 2003
  3. Replies:
    Rene Pijlman
    Nov 3, 2003
  4. Stewart Midwinter
  5. Replies:
    Harry George
    Dec 4, 2006
  6. Replies:
    Carl Banks
    Dec 6, 2007
  7. Xah Lee
    Jorgen Grahn
    Dec 5, 2008
  8. walterbyrd

    Python's popularity

    walterbyrd, Dec 22, 2008, in forum: Python