(This was to be a response to another post, but decided to start a new thread.)

I'm a language/buzzword addict, always looking for reasons to learn a new language, or more accurately, afraid of missing something great in a new language: php, python, ruby, etc...

This by itself is fine, and I'll continue to explore new languages. But I recently realized that there is no panacea in any language: if we're learning a language in the hope that it will somehow just solves our problems, we'll be disappointed. Beyond the simplest examples, I always find myself facing almost exactly the same problems in any language. And in those circumstances, I always resort to google, mailing lists and code repositories, in other words, asking the community for help.

This led me to the conclusion: ultimately it's the community that makes a language useful, it's the ticking of time that allows both the language and the community to mature. In this regard, perl and CPAN have a good head start. For the same reason, other languages will likely catch up if there is enough following. How many times have we complained about a shortcoming in a language and only to be told that it's resolved two versions ago? the same applies to perl itself.

Replies are listed 'Best First'.
Re: It's the community, stupid.
by zshzn (Hermit) on Sep 11, 2005 at 23:37 UTC
    A good head start? Heck, Perl is halfway through the race! I do agree that community and documentation are very important to the usability and popularity of a language, and I don't think all other popular languages will just 'catch up' with time. For example, C predates Perl by a long time, yet is still very distributed, and greatly lacks the unity of Perl's community. Perl has both CPAN and perldoc, very strong resources. For a language to catch up to Perl in terms of community, leaders will have to implement the structure for a community, and not just expect time to lay it in place.
Re: It's the community, stupid.
by monarch (Priest) on Sep 12, 2005 at 05:21 UTC
    Admittedly a good support community can assist any language because it reduces the work required to produce a result.

    In fact, this is why we all use standard power sockets in any one country - compatibility and reuse. Often there are different ways of doing something, yet we settle on one particular way, and the gains we get from all sharing a particular standard or technique outweighs the potential benefits from a better more customised solution.

    IPv4 is another example of an older protocol for which potentially superior alternatives exist (e.g. IPv6). The trouble is, in the time it has taken for the world to mumble over whether to switch over to IPv6, the IPv4 protocol has had a number of bolt-ons (NAT, diffserv, MPLS) to work-around existing limitations.

    When something has enough inertia that a major change is terrifically painful (e.g. IPv4->IPv6, changing driving on the right side of the road to the left, Perl5->Perl6) often the existing method is hacked to get around the problems.

    This leads to the concept of evolution vs revolution - taking something existing and relied upon, and incrementally changing it as required..

    So Perl has an incredible community; that does make it difficult for any new language to enter the world with payoffs comparable to what can be performed by Perl. Tis the way of the world.

    Yet it's not impossible - over time Linux has evolved from an experiment to a major force. Times change and small ideas can gain momentum. But it takes a while.

    And Perl is quite a good language anyway; perhaps that attracts those that makes the Perl community such a strong one (although Bush is running America, which proves that it doesn't take something good to amass a large support base).

Re: It's the community, stupid.
by spiritway (Vicar) on Sep 12, 2005 at 04:57 UTC

    You have hit it right on the head. Perl does offer a great deal, but what made the difference to me was the community. If I have a question (and I have plenty), I know I can come here and ask. Provided I do some work and ask something halfway intelligent, I am likely to get a bunch of reasonable, useful answers. I've never seen this with other languages. I've never found, say, a C++ community. This is one of the most important things about Perl that makes it so useful. It's the people who are using it, who are willing to help others learn it.

      Actually, on that point, I suspect that the Perl community is sufficiently small to have a common gathering point (e.g. perlmonks), and large enough to make that community a strong force.

      I suspect the C++ user-base, on the other hand, is a magnitude in size larger and hence has many segmented communities. Newsgroups have commonly been a community gathering point for many well-established languages, and some excellent user manuals have been written by language developers in the 80s and 90s for the likes of C and C++.

      There exist, nowadays, some other web site based forums although few of these are well designed - most rely heavily on graphics to "look cool" while significantly detracting from functionality - perlmonks is a very functional, almost twiki-like, site -- and this really makes this a great gathering point.

Re: It's the community, stupid.
by johnnywang (Priest) on Sep 12, 2005 at 00:23 UTC
    agreed, actually this is a very interesting question many people want to find out: how do communities form and prosper? Will and can, say java, produce a community site like PM? is it the people, or the language, or both? (the site structure can be, and have been, copied.)
Re: It's the community, stupid.
by gargle (Chaplain) on Sep 12, 2005 at 11:28 UTC

    It's more than just the community I think. In 2000-2001 I used a lot of perl. Later on I moved to python and even tried ruby beginning this year.

    I came back to perl. Why? Well, using python and or ruby was like reinventing the wheel. I knew I already did all the stuff the python and ruby books taught me.

    --
    if ( 1 ) { $postman->ring() for (1..2); }