Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
XP is just a number
 
PerlMonks  

A proposal: new section on Perl Monks.

by Win (Novice)
on Feb 27, 2006 at 12:53 UTC ( #533005=monkdiscuss: print w/ replies, xml ) Need Help??

I would like to propose a new section on Perl Monks. I am not a computer scientist by background and this is a factor behind me proposing this section. This section could be called 'Concise descriptions' or the fuller title of 'Concise English definitions for short pieces of Perl code'. The person submitting the request would submit a piece of Perl code that they are using and offer their own description of the code. Other people would then comment on the description and, in addition, offer their own description or definition. Eventually a set of nodes could achieve a highly concise, easy to understand description of a piece of Perl code. If such a section was popular, this would achieve several benefits. Firstly, it would enable terms that are only taught to computer scientists to gain currency with people of other backgrounds. It would aid those that answer routine questions (under seekers of Perl wisdom) to point to other nodes that contain these definitions, in order that the novice could better understand their suggested code. Thirdly, but not least, it would advance the English language as well as Perl. This benefit could lead to the publication of even better books that detail Perl.

I do think that Perl is a great language and very flexible. But with flexibility comes complexity and this is why I now think that a section like this on Perl Monks is worth considering.

Comment on A proposal: new section on Perl Monks.
Re: A proposal: new section on Perl Monks.
by Corion (Pope) on Feb 27, 2006 at 12:56 UTC

    We already have such a section. It's called Seekers of Perl Wisdom. But even if we added another comparable section with more focus on explaining code, what use would it be? You wouldn't read it anyway.

      The point of this section would be to offer snippets of code in isolation and to offer snippets of code that work. The discussion would not be about the Perl code; the discussion would be about what is the best way of describing the code. i.e. the focus would be on the English rather than the Perl.
        I'm a pretty avid Perl programmer. I have probably coded in Perl for longer than all but a handful of people that show up here, and been in a lot of situations where it might seem like what you're asking for would have arisen.

        But guess what? We don't stand around and do that. The code just does the thing. We don't stand around trying to name it.

        So, I'm guessing that if you create your proposed section, a frequent Perl coder like me would simply be mystified, because it's an activity that I don't find myself engaging in, or even contemplating.

        What problem are you trying to solve by learning how to better describe the code?

        Nobody "discussed" the name of the Schwartzian Transform. Tom named it, and it stuck. Nobody "discussed" the name of "inside-out objects". It got named, and it stuck.

        What exactly do you see as the process in your proposed section?

        -- Randal L. Schwartz, Perl hacker
        Be sure to read my standard disclaimer if this is a reply.

        So, you want something like Perl Idioms Explained for larger snippets of guaranteed-to-be-functional code? This sounds a lot like a Perl-English dictionary. Naturally, because TIMTOWTDI a Perl Thesaurus (Perlsaurus?) might be needed as well.
      I don't think you get what Win means... I'm not sure I do. But get the impression it should be a cross between FAQs AKA Q&A, and the series of "Perl Idioms" in Meditations. I'm not convinced it truely deserves a new section, but my feeling tells me SoPW is not the best place.
Re: A proposal: new section on Perl Monks.
by demerphq (Chancellor) on Feb 27, 2006 at 13:29 UTC

    I think that there already are such books. And I think you are making a fundamental error. Comp-sci has very little to do directly with Perl. Comp-sci is like math. It has various applications in various areas of computing. Such material is not well suited to a site like this. I think that when you find a concept or term that you dont understand you should go to other places to find out what its all about. A perl implementation is just that, a perl implementation of a generic idea. This site is about perl specific materials, not about computer science as practiced by perl programmers.

    Having said that i think some of what you are asking about falls pretty nicely into the tutorial category. We do need more people writing tutorials but creating a new section isnt going to encourage them I should think.

    I suggest that you buy Algorithms In Perl and the perl cookbook as it sounds like they would cover a lot of what you feel you are lacking.

    ---
    $world=~s/war/peace/g

      Comp-sci has very little to do with Perl

      I disagree with this comment. Perl is a language that basically allows you to perform processes that could be described in a mathematical form. They can also be described at some level using English. It strikes me that that is a large part of what Comp-Sci is about.

      Finding the right code to do a task is different from finding the right words to describe a task performed by Perl. All I am suggesting is that there is a section dedicated to this second way of learning about Perl. Maybe somebody could do an English literature PhD on it. Any volunteers?
        Are you looking for Patterns in Perl? Many attempts have been made to collect those and name those, informally and formally. Most people look at the Perl Cookbook as a canonical example. Some have taken pattern names from books like the GangOfFour and applied them to Perl, although such actions are a bit questionable, as the problems that face Perl programmers are typically not aligned with the problems that face C++ programmers (for which the GoF book was written).

        If you're simply looking at pattern names, your section will probably fail, as most Perl programmers don't go about naming things.

        If you're looking for something else, you should attempt to describe it, again, using some different sort of strategy. Maybe an example: put up some code, and then show what the participants would supposedly do.

        -- Randal L. Schwartz, Perl hacker
        Be sure to read my standard disclaimer if this is a reply.

        Perl is a language that basically allows you to perform processes that could be described in a mathematical form. They can also be described a some level using English. It strikes me that that is a large part of what Comp-Sci is about.

        Computer science is generally agreed to be the mathematical analysis, study and synthesis of algorithms. It is language agnostic to the point that the bible of CS (Art Of Programming) uses a language intended to run on a machine that nobody ever built. So you can do comp-sci type stuff in perl, but you can do it just as easily with pseudo code that cannot be processed by a computer. In fact one of the fundamental tenets of comp-sci is that so long as you have a very minimal set of specific computing capabilities you can do anything you can do in any other medium that also has those capabilities.

        finding the right words to describe a task performed by Perl.

        The "right words" will be the ones that the comp-sci community has chosen for the underlying algorithm being used. Occassionally the community will introduce jargon for various language specific constructs as they come up, but the truth is that the ideas all eventually trail back to comp-sci. I think you should get a book on algorithms and study it. Once you have, i think youll find that this request of yours doesnt really fit in with the site. Do we really need a section explaining "divide and conquor", "graph traversal" and the like? Any decent comp-sci algorithm textbook will explain it better than probably anybody here could.

        A new section isn't going to help you in your path to enlightment. You need to go study some books on the right subjects for that.

        ---
        $world=~s/war/peace/g

      I believe that the proposed section would be a great resource to those that are thinking of writing tutorials. I think that it could 'seed' many tutorials. If it doesn't you could just downgrade the importance of the section.
Re: A proposal: new section on Perl Monks.
by tirwhan (Abbot) on Feb 27, 2006 at 14:55 UTC

    There seems to be some difficulty by many here in understanding what it is you want. My own interpretation is that you would like access to a repository of nodes which take apart pieces of code (or algorithm implementations) and explain them in a spoken language, in terms that are understandable by a layman.

    The problem with this IMO is the misconception that code expressed in English would be clearer than the same code expressed in Perl. Spoken languages are unsuitable for explaining algorithms in a concise and unambiguous manner. Think about it, if code could be expressed well in English, don't you think somebody would have written a complier to translate (a limited subset of) English to executable code? Contrary to what you may believe, Perl is not a limited subset of English, rather it is a language designed to express algorithms while achieving a reasonable compromise between a.) translatability of these expressions into machine code and b.) being intuitively understandable and learnable for speakers of natural languages.

    Your problem (I think) is that you haven't made the jump to "thinking in Perl", which is necessary to program anything more than trivial. The translation route "Problem" -> "English description of the solution" -> "Perl implementation of the solution" will only get you so far, you need to get rid of the middle step. Accordingly, a "cheat sheet" translating Perl idioms into English (which I think is what you're after) is only of very limited usefulness and I don't think you'll get too many people excited about it.

    BTW, your update seems rather counterproductive to me, since you are proposing an addition to this site and thus it is is your obligation to explain to people here why you think your idea is a good one, not the other way around.


    All dogma is stupid.
      I think that I would find it difficult to get people that already think in Perl interested. I agree. And these, I guess, are the ones that make big decisions regarding this site. But for those that have not yet eliminated the 'middle' stage you refer to, I believe, such a section would prove useful.

        No it wouldn't, because it's nothing more than an expensive crutch that reinforces bad practice. It is much more helpful to get the concepts across and have people understand what they are doing (or should be doing) than it is to provide a lookup table which appears to make the circuitous route easier but really just impedes understanding.


        All dogma is stupid.
      Maybe those with advanced Perl skills need to step back sometimes and ask themselves 'How easy is this to explain in English'. If this question is not asked then the reputation that Perl has (in some quarters) for being too flexible and lax in structure will get worse. I therefore suggest that the culture change that this proposed section could bring would open up Perl to more programmers and this can only benefit Perl in the long run.

        If your suggestion is aimed at providing a cure for the reputation Perl has for being "too flexible and lax in structure", then I don't see how a "translation in English" would help. Maybe a translation in a less flexible language would do!

        Sad (?) truth is that some idioms are better explained in English, some other are better explained in Perl.

        It's just the same in other fields as well: in Mathematics we use formulas to express concisely concepts that would be next to unitelligible if we tried to verbosely expand them into plain English. But if we tried to express everything only with formulas, as they do in formal language studies, it would be just as unintelligible: in fact some ideas are better expressed verbosely in a natural language. The analogy is not perfect but I think it gives an idea...

      The problem with this IMO is the misconception that code expressed in English would be clearer than the same code expressed in Perl. Spoken languages are unsuitable for explaining algorithms in a concise and unambiguous manner. Think about it, if code could be expressed well in English, don't you think somebody would have written a complier to translate (a limited subset of) English to executable code?
      Does Lingua::Romana::Perligata ring a bell? Ok, it's Latin, not English but...
Re: A proposal: new section on Perl Monks.
by rinceWind (Monsignor) on Feb 27, 2006 at 16:35 UTC

    I don't think that this needs a new section, I think what you are looking for is better indexing and searching on the existing nodes. A single page containing an index of useful snippets would not be particularly useful or maintainable (and would balloon out of all proportion potentially). Something hand-crafted would be guaranteed to be out of date and incomplete. Much better is the output from search or super search.

    The Monastery Guidelines go a long way to suggesting how people should make node titles friendly to the search facilities. Granted newbies won't generally reach for search or super search (or Google for that matter), without some prompting.

    Maybe integrating the keyword notelet with (super)? search might be a way to start, but there's still the issue of getting people to use it to classify the nodes.

    --

    Oh Lord, won’t you burn me a Knoppix CD ?
    My friends all rate Windows, I must disagree.
    Your powers of persuasion will set them all free,
    So oh Lord, won’t you burn me a Knoppix CD ?
    (Missquoting Janis Joplin)

      Funny... I'm a little new here and was just reading about how the janitors have to clean up really bad node titles to make them sensible and searchable. Faced with (very roughly) similar issues in handling the differences between what “regular folks” and “professionals” call things in the world of public libraries, we also employ trained database janitors to mind our metadata.

      Perhaps what the OP really wants (better context for programming newbies, is my guess) might best be implemented as a new kind of metadata for all nodes? I'm not suggesting this is needed or easy to do (in fact I know it could come only through considerable ongoing effort), but imagine a clickable thingy other than Reply that would allow privileged monks to add controlled keywords and subject phrases to a node (and perhaps even an abstract) to make it more searchable. Controlled metadata, edited by pros, usually beats the pants off of keyword searching, at least for data sets of nontrivial size.

      Then again perhaps accurate titles and other existing navigational features really are totally sufficient in the PM environment. I'm finding everything that I need, anyway, and the point raised about real newbs not even knowing how to search in the first place is ceratainly valid too. I guess the bottom line in my view is that the ability to ask a monk for help any time day or night pretty much obviates the need to go to great lengths to cater to newbies in the search interface.

Re: A proposal: new section on Perl Monks.
by GrandFather (Cardinal) on Feb 27, 2006 at 20:36 UTC

    There are a number of suites in the Monastery that provide this sort of information:

    • Seekers of Perl Wisdom: questions people have asked and answers they have received.
    • Tutorials: Introductory (and not so introductory) materials covering Perl and Perl idioms, and much more
    • Snippets Section: snippets of code that solve specific problems in an interesting or elegant fashion
    • Cool Uses For Perl: full blown (by generally small) Perl solutions to various problems that demonstrate cool ways to do stuff with Perl
    • Code Catacombs: large scale Perl applications and modules that solve high level problems using Perl
    • Categorized Questions and Answers: a FAQ sorted by category with in depth answers to questions covering many different areas of Perl use

    I don't think that adding yet another wing to the building is going to make the trail to find an answer to any particular question any shorter. A good way to save shoe leather and search all the material here is to use super search. Super search is your friend!


    DWIM is Perl's answer to Gödel
Re: A proposal: new section on Perl Monks.
by chromatic (Archbishop) on Feb 27, 2006 at 20:47 UTC
Re: A proposal: new section on Perl Monks.
by jdporter (Canon) on Feb 27, 2006 at 23:10 UTC
Re: A proposal: new section on Perl Monks.
by Chady (Priest) on Feb 28, 2006 at 08:34 UTC

    I think that you want: "Someone to explain algorithms and constructs in plain english."

    Seeing as you clearly states that you have no computer science background, it's clear that this is what you are asking for in order to learn, when in fact there are plenty of material already available in books and on the net and ready for consuming.

    I can see where this proposed new section can help you - and others like you - but this is a Perl site, not programming 101.

    I'm not saying that this place doesn't teach programming (heck, I learned most of what I know from here) but I don't imagine that for someone who wants to learn programming, visiting perlmonks would be a very obvious choice.

    Just my 2 cents


    He who asks will be a fool for five minutes, but he who doesn't ask will remain a fool for life.
    Chady | http://chady.net/
    Are you a Linux user in Lebanon? join the Lebanese GNU/Linux User Group.
Re: A proposal: new section on Perl Monks.
by Anonymous Monk on Feb 28, 2006 at 09:27 UTC
    It would aid those that answer routine questions (under seekers of Perl wisdom) to point to other nodes that contain these definitions, in order that the novice could better understand their suggested code
    You mean like the manual or previous questions? You don't read those now

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: monkdiscuss [id://533005]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2014-04-19 19:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (483 votes), past polls